{
  "title": "Partial Test Result Cat B Schema",
  "type": "object",
  "definitions": {
    "vehicleDetails": {
      "properties": {
        "schoolCar": {
          "$ref": "#/definitions/schoolCar"
        },
        "dualControls": {
          "$ref": "#/definitions/dualControls"
        }
      },
      "additionalProperties": false
    },
    "schoolCar": {
      "$ref": "../common/index.json#/definitions/schoolCar"
    },
    "dualControls": {
      "$ref": "../common/index.json#/definitions/dualControls"
    },
    "eyesightTest": {
      "$ref": "../common/index.json#/definitions/eyesightTest"
    },
    "faultComments": {
      "$ref": "../common/index.json#/definitions/faultComments"
    },
    "manoeuvre": {
      "$ref": "../common/index.json#/definitions/manoeuvre"
    },
    "manoeuvreOutcome": {
      "$ref": "../common/index.json#/definitions/manoeuvreOutcome"
    },
    "manoeuvreIndicator": {
      "$ref": "../common/index.json#/definitions/manoeuvreIndicator"
    },
    "controlledStop": {
      "additionalProperties": false,
      "properties": {
        "fault": {
          "$ref": "#/definitions/manoeuvreOutcome"
        },
        "faultComments": {
          "$ref": "#/definitions/faultComments"
        },
        "selected": {
          "$ref": "#/definitions/manoeuvreIndicator"
        }
      },
      "type": "object"
    },
    "instructorDetails": {
      "additionalProperties": false,
      "description": "Details about the candidate's driving instructor",
      "properties": {
        "registrationNumber": {
          "description": "The instructor's registration number",
          "maximum": 9999999,
          "minimum": 0,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "manoeuvres": {
      "additionalProperties": false,
      "type": "object",
      "description": "The manoeuvres that were carried out during the test and any faults recorded against them",
      "properties": {
        "forwardPark": {
          "$ref": "#/definitions/manoeuvre"
        },
        "reverseParkCarpark": {
          "$ref": "#/definitions/manoeuvre"
        },
        "reverseParkRoad": {
          "$ref": "#/definitions/manoeuvre"
        },
        "reverseRight": {
          "$ref": "#/definitions/manoeuvre"
        }
      }
    },
    "testData": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "eyesightTest": {
          "$ref": "#/definitions/eyesightTest"
        },
        "controlledStop": {
          "$ref": "#/definitions/controlledStop"
        },
        "testRequirements": {
          "$ref": "#/definitions/testRequirements"
        },
        "manoeuvres": {
          "$ref": "#/definitions/manoeuvres"
        },
        "vehicleChecks": {
          "$ref": "#/definitions/vehicleChecks"
        }
      }
    },
    "testRequirements": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "angledStart": {
          "description": "Indicates whether or not this test requirement was carried out",
          "type": "boolean"
        },
        "hillStart": {
          "description": "Indicates whether or not this test requirement was carried out",
          "type": "boolean"
        }
      }
    },
    "questionResult": {
      "$ref": "../common/index.json#/definitions/questionResult"
    },
    "vehicleChecks": {
      "additionalProperties": false,
      "description": "Details of the Show Me and Tell Me questions asked during the test",
      "properties": {
        "showMeQuestion": {
          "$ref": "#/definitions/questionResult"
        },
        "showMeTellMeComments": {
          "$ref": "#/definitions/faultComments"
        },
        "tellMeQuestion": {
          "$ref": "#/definitions/questionResult"
        }
      },
      "type": "object"
    }
  },
  "properties": {
    "instructorDetails": {
      "$ref": "#/definitions/instructorDetails"
    },
    "testData": {
      "$ref": "#/definitions/testData"
    },
    "vehicleDetails": {
      "$ref": "#/definitions/vehicleDetails"
    }
  },
  "additionalProperties": false,
  "required": []
}