{
	"title": "Test Result Cat DM Schema",
	"type": "object",
	"definitions": {
		"code78Present": {
			"description": "Indicate presence of code 78 (automatic) on candidates license",
			"type": "boolean"
		},
		"schoolCar": {
			"description": "Indicates whether the vehicle belongs to a driving school",
			"type": "boolean"
		},
		"dualControls": {
			"description": "Indicates whether or not the vehicle has dual controls fitted",
			"type": "boolean"
		},
		"userExitedApp": {
			"description": "User disabled ASAM and exited the app",
			"type": "object",
			"properties": {
				"exitReason": {
					"description": "Reason why the user has exited the app",
					"type": "string"
				},
				"exitFlag": {
					"description": "Flag to indicate if the user has exited the app",
					"type": "boolean"
				}
			},
			"additionalProperties": false,
			"required": [
				"exitFlag"
			]
		},
		"testData": {
			"additionalProperties": false,
			"description": "Data associated with the test",
			"properties": {
				"drivingFaults": {
					"$ref": "#/definitions/drivingFaults"
				},
				"seriousFaults": {
					"$ref": "#/definitions/seriousFaults"
				},
				"dangerousFaults": {
					"$ref": "#/definitions/dangerousFaults"
				},
				"eco": {
					"$ref": "#/definitions/eco"
				},
				"ETA": {
					"$ref": "#/definitions/ETA"
				},
				"testRequirements": {
					"$ref": "#/definitions/testRequirements"
				},
				"manoeuvres": {
					"$ref": "#/definitions/manoeuvres"
				},
				"uncoupleRecouple": {
					"$ref": "#/definitions/uncoupleRecouple"
				}
			},
			"type": "object"
		},
		"manoeuvre": {
			"additionalProperties": false,
			"description": "Data needs capturing for a manoeuvre competency",
			"properties": {
				"controlFault": {
					"$ref": "#/definitions/manoeuvreOutcome"
				},
				"controlFaultComments": {
					"$ref": "#/definitions/faultComments"
				},
				"observationFault": {
					"$ref": "#/definitions/manoeuvreOutcome"
				},
				"observationFaultComments": {
					"$ref": "#/definitions/faultComments"
				},
				"selected": {
					"$ref": "#/definitions/manoeuvreIndicator"
				}
			},
			"type": "object"
		},
		"manoeuvreOutcome": {
			"description": "The possible outcomes of any manoeuvre performed during the test",
			"enum": [
				"DF",
				"S",
				"D"
			],
			"type": "string"
		},
		"examiner": {
			"description": "The examiner details",
			"type": "object",
			"properties": {
				"staffNumber": {
					"description": "The examiner's DSA staff number",
					"type": "string",
					"maxLength": 10
				},
				"individualId": {
					"description": "The individual ID of the examiner",
					"type": "number"
				}
			},
			"additionalProperties": false,
			"required": [
				"staffNumber"
			]
		},
		"testCentre": {
			"description": "Details of the test centre",
			"type": "object",
			"properties": {
				"centreId": {
					"description": "Identifer for the test centre",
					"type": "integer"
				},
				"costCode": {
					"description": "Cost centre code for the test centre",
					"type": "string",
					"maxLength": 6
				},
				"centreName": {
					"description": "Name of the test centre",
					"type": "string",
					"maxLength": 50
				}
			},
			"additionalProperties": false,
			"required": [
				"centreId",
				"costCode"
			]
		},
		"name": {
			"description": "Details of the individual's name",
			"type": "object",
			"properties": {
				"title": {
					"description": "The individual's title",
					"type": "string",
					"maxLength": 7
				},
				"firstName": {
					"description": "The individual's forename",
					"type": "string",
					"maxLength": 50
				},
				"secondName": {
					"description": "The individual's second name",
					"type": "string",
					"maxLength": 50
				},
				"thirdName": {
					"description": "The individual's third name",
					"type": "string",
					"maxLength": 50
				},
				"lastName": {
					"description": "The individual's surname",
					"type": "string",
					"maxLength": 50
				}
			},
			"additionalProperties": false
		},
		"address": {
			"description": "Details of the address",
			"type": "object",
			"properties": {
				"addressLine1": {
					"description": "First line of address",
					"type": "string",
					"maxLength": 255
				},
				"addressLine2": {
					"description": "Second line of address",
					"type": "string",
					"maxLength": 100
				},
				"addressLine3": {
					"description": "Third line of address",
					"type": "string",
					"maxLength": 100
				},
				"addressLine4": {
					"description": "Fourth line of address",
					"type": "string",
					"maxLength": 100
				},
				"addressLine5": {
					"description": "Fifth line of address",
					"type": "string",
					"maxLength": 255
				},
				"postcode": {
					"description": "The address postcode",
					"type": "string",
					"maxLength": 255
				}
			},
			"additionalProperties": false
		},
		"candidate": {
			"description": "Details of the candidate booked into the test slot",
			"type": "object",
			"properties": {
				"candidateId": {
					"description": "The id of the test candidate",
					"type": "integer"
				},
				"candidateName": {
					"$ref": "#/definitions/name"
				},
				"driverNumber": {
					"description": "The candidate's driver number, typically (though not always) 16 characters if UK, or 8 digits if NI",
					"type": "string",
					"maxLength": 24
				},
				"dateOfBirth": {
					"description": "The candidate's date of birth, formatted as an ISO 8601 date (YYYY-MM-DD)",
					"type": "string",
					"minLength": 10,
					"maxLength": 10
				},
				"gender": {
					"$ref": "#/definitions/gender"
				},
				"candidateAddress": {
					"$ref": "#/definitions/address"
				},
				"primaryTelephone": {
					"description": "The candidate's primary telephone number, if any (and consent to leave voicemail has been given)",
					"type": "string",
					"maxLength": 20
				},
				"secondaryTelephone": {
					"description": "The candidate's secondary telephone number, if any (and consent to leave voicemail has been given)",
					"type": "string",
					"maxLength": 20
				},
				"mobileTelephone": {
					"description": "The candidate's mobile telephone number, if any (and consent to leave voicemail has been given)",
					"type": "string",
					"maxLength": 30
				},
				"emailAddress": {
					"description": "The candidate's email address, if any",
					"type": "string",
					"maxLength": 100
				},
				"prn": {
					"description": "The candidate's ADI PRN (potential register number), if an ADI test",
					"type": "integer"
				},
				"previousADITests": {
					"description": "The number of previous test attempts, if an ADI test",
					"type": "integer"
				},
				"ethnicityCode": {
					"description": "A character between A and G representing different categories of ethnicity",
					"type": "string",
					"minLength": 1,
					"maxLength": 1
				},
				"businessAddress": {
					"$ref": "#/definitions/address"
				},
				"businessName": {
					"$ref": "#/definitions/businessName"
				},
				"businessTelephone": {
					"$ref": "#/definitions/businessTelephone"
				}
			},
			"additionalProperties": false
		},
		"applicationReference": {
			"description": "The full application identifier, including applicationId, bookingSequence and checkDigit",
			"type": "object",
			"properties": {
				"applicationId": {
					"description": "Unique identifier for each test application",
					"type": "integer"
				},
				"bookingSequence": {
					"description": "Booking sequence number of the test application",
					"type": "integer"
				},
				"checkDigit": {
					"description": "Reference checksum for the test application",
					"type": "integer"
				}
			},
			"additionalProperties": false,
			"required": [
				"applicationId",
				"bookingSequence",
				"checkDigit"
			]
		},
		"initiator": {
			"description": "The reason for the previous test cancellation",
			"type": "string",
			"enum": [
				"Act of nature",
				"DSA"
			],
			"maxLength": 15
		},
		"testSlotAttributes": {
			"description": "The additional attributes of the test slot such as Slot Id, Category, Start Time, etc.",
			"type": "object",
			"properties": {
				"slotId": {
					"description": "Unique identifier for the journal test slot",
					"type": "integer"
				},
				"start": {
					"description": "Start time of the test slot",
					"type": "string",
					"minLength": 19,
					"maxLength": 19
				},
				"vehicleTypeCode": {
					"description": "A short alpha (and sometimes numeric) code describing the vehicle type in vehicle slot type",
					"type": "string",
					"minLength": 1,
					"maxLength": 2
				},
				"welshTest": {
					"description": "Whether the test is to be conducted using the welsh language",
					"type": "boolean"
				},
				"specialNeedsCode": {
					"description": "Special needs code",
					"type": "string",
					"enum": [
						"NONE",
						"YES",
						"EXTRA"
					]
				},
				"specialNeeds": {
					"description": "Whether the candidate has any special needs that require the D255 form to be completed",
					"type": "boolean"
				},
				"specialNeedsArray": {
					"description": "The special needs",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"specialNeedsExtendedTest": {
					"description": "Whether the candidate requires an extended test due to special needs",
					"type": "boolean"
				},
				"extendedTest": {
					"description": "Whether this is an extended test",
					"type": "boolean"
				},
				"examinerVisiting": {
					"description": "Whether the examiner conducting the test slot is visiting a test centre that's not their home test centre",
					"type": "boolean"
				},
				"entitlementCheck": {
					"description": "Indicates whether the examiner needs to check the candidates entitlement evidence(e.g. test application has not been checked with DVLA)",
					"type": "boolean"
				},
				"fitMarker": {
					"description": "Indicates whether the candidate has previously had a fraud marker set against them",
					"type": "boolean"
				},
				"fitCaseNumber": {
					"description": "The integrity case number associated to the candidate",
					"type": "string"
				},
				"categoryEntitlementCheck": {
					"description": "Indicates whether the examiner needs to check the candidates entitlement based on new legislation around booking vocational categories",
					"type": "boolean"
				},
				"previousCancellation": {
					"description": "The details of any previous test cancellations",
					"type": "array",
					"items": {
						"$ref": "#/definitions/initiator"
					}
				},
				"slotType": {
					"description": "A description of the types of test intended to be conducted in this slot (e.g. Standard Test / Extended Special Needs Test)",
					"type": "string"
				}
			},
			"additionalProperties": false,
			"required": [
				"slotId",
				"start",
				"vehicleTypeCode",
				"welshTest",
				"specialNeeds",
				"extendedTest"
			]
		},
		"journalData": {
			"description": "Data brought through from the journal",
			"type": "object",
			"properties": {
				"examiner": {
					"$ref": "#/definitions/examiner"
				},
				"testCentre": {
					"$ref": "#/definitions/testCentre"
				},
				"testSlotAttributes": {
					"$ref": "#/definitions/testSlotAttributes"
				},
				"candidate": {
					"$ref": "#/definitions/candidate"
				},
				"applicationReference": {
					"$ref": "#/definitions/applicationReference"
				}
			},
			"additionalProperties": false,
			"required": [
				"examiner",
				"testCentre",
				"testSlotAttributes",
				"candidate",
				"applicationReference",
				"candidate"
			]
		},
		"eyesightTest": {
			"type": "object",
			"properties": {
				"complete": {
					"type": "boolean"
				},
				"seriousFault": {
					"description": "Whether the candidate has failed the eyesight test",
					"type": "boolean"
				},
				"faultComments": {
					"$ref": "#/definitions/faultComments"
				}
			},
			"additionalProperties": false
		},
		"signature": {
			"description": "Base 64 encoded binary data representing a PNG image of the candidates signature",
			"type": "string"
		},
		"communicationMethod": {
			"description": "The method of communication by which the candidate agrees to receive their results",
			"type": "string",
			"enum": [
				"Email",
				"Post",
				"Support Centre",
				"Not provided"
			]
		},
		"conductedLanguage": {
			"description": "The language in which a candidate agrees to perform a test",
			"type": "string",
			"enum": [
				"English",
				"Cymraeg",
				"Not provided"
			]
		},
		"communicationPreferences": {
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"updatedEmail": {
					"description": "The email address that the candidate agrees their results can be sent to",
					"type": "string",
					"maxLength": 100
				},
				"communicationMethod": {
					"$ref": "#/definitions/communicationMethod"
				},
				"conductedLanguage": {
					"$ref": "#/definitions/conductedLanguage"
				}
			},
			"required": [
				"conductedLanguage"
			]
		},
		"preTestDeclarations": {
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"insuranceDeclarationAccepted": {
					"description": "Whether or not the candidate has declared that their test vehicle has a valid insurance policy",
					"type": "boolean"
				},
				"residencyDeclarationAccepted": {
					"description": "Whether or not the candidate has declared that they have lived in the UK for a period acceptable for taking the test",
					"type": "boolean"
				},
				"preTestSignature": {
					"$ref": "#/definitions/signature"
				},
				"candidateDeclarationSigned": {
					"description": "Whether or not the candidate signature had been recorded for delegated tests",
					"type": "boolean"
				}
			},
			"required": [
				"insuranceDeclarationAccepted",
				"residencyDeclarationAccepted",
				"preTestSignature"
			]
		},
		"accompaniment": {
			"description": "Indicators for anybody else overseeing the test",
			"type": "object",
			"properties": {
				"ADI": {
					"description": "Indicates whether the ADI was present during the test",
					"type": "boolean"
				},
				"supervisor": {
					"description": "Indicates whether a DVSA supervisor was present during the test",
					"type": "boolean"
				},
				"interpreter": {
					"description": "Indicates whether an interpreter was present during the test",
					"type": "boolean"
				},
				"other": {
					"description": "Indicates whether another individual was present during the test",
					"type": "boolean"
				}
			},
			"additionalProperties": false
		},
		"gearboxCategory": {
			"description": "The type of gearbox",
			"type": "string",
			"enum": [
				"Manual",
				"Automatic"
			]
		},
		"questionCode": {
			"description": "Code representing the question that was asked",
			"type": "string"
		},
		"questionDescription": {
			"description": "Description of the question that was asked",
			"type": "string"
		},
		"questionOutcome": {
			"description": "Outcome of the question that was asked",
			"type": "string",
			"enum": [
				"P",
				"DF",
				"S",
				"D"
			]
		},
		"questionResult": {
			"description": "Result of a vehicle checks question",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"code": {
					"$ref": "#/definitions/questionCode"
				},
				"description": {
					"$ref": "#/definitions/questionDescription"
				},
				"outcome": {
					"$ref": "#/definitions/questionOutcome"
				}
			}
		},
		"safetyQuestionResult": {
			"description": "Result of a safety question",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"description": {
					"$ref": "#/definitions/questionDescription"
				},
				"outcome": {
					"$ref": "#/definitions/questionOutcome"
				}
			}
		},
		"manoeuvreIndicator": {
			"description": "Indicator for a manoeuvre being performed during the test",
			"type": "boolean"
		},
		"drivingFaultCount": {
			"description": "The count of the number of driving faults recorded against a test element",
			"type": "integer"
		},
		"faultComments": {
			"description": "Comments recorded against a fault",
			"type": "string",
			"maxLength": 1000
		},
		"drivingFaults": {
			"description": "The driving faults accumulated during the test",
			"type": "object",
			"properties": {
				"controlsAccelerator": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"controlsAcceleratorComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsClutch": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"controlsClutchComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsGears": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"controlsGearsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsFootbrake": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"controlsFootbrakeComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsParkingBrake": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"controlsParkingBrakeComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsSteering": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"controlsSteeringComments": {
					"$ref": "#/definitions/faultComments"
				},
				"precautions": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"precautionsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"ancillaryControls": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"ancillaryControlsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"moveOffSafety": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"moveOffSafetyComments": {
					"$ref": "#/definitions/faultComments"
				},
				"moveOffControl": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"moveOffControlComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsSignalling": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"useOfMirrorsSignallingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsChangeDirection": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"useOfMirrorsChangeDirectionComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsChangeSpeed": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"useOfMirrorsChangeSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsNecessary": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"signalsNecessaryComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsCorrectly": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"signalsCorrectlyComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsTimed": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"signalsTimedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsApproachSpeed": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"junctionsApproachSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsObservation": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"junctionsObservationComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsTurningRight": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"junctionsTurningRightComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsTurningLeft": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"junctionsTurningLeftComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsCuttingCorners": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"junctionsCuttingCornersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementOvertaking": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"judgementOvertakingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementMeeting": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"judgementMeetingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementCrossing": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"judgementCrossingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positioningNormalDriving": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"positioningNormalDrivingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positioningLaneDiscipline": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"positioningLaneDisciplineComments": {
					"$ref": "#/definitions/faultComments"
				},
				"clearance": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"clearanceComments": {
					"$ref": "#/definitions/faultComments"
				},
				"followingDistance": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"followingDistanceComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfSpeed": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"useOfSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"progressAppropriateSpeed": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"progressAppropriateSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"progressUndueHesitation": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"progressUndueHesitationComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficSigns": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"responseToSignsTrafficSignsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsRoadMarkings": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"responseToSignsRoadMarkingsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficLights": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"responseToSignsTrafficLightsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficControllers": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"responseToSignsTrafficControllersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsOtherRoadUsers": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"responseToSignsOtherRoadUsersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"pedestrianCrossings": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"pedestrianCrossingsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positionNormalStops": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"positionNormalStopsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"awarenessPlanning": {
					"$ref": "#/definitions/drivingFaultCount"
				},
				"awarenessPlanningComments": {
					"$ref": "#/definitions/faultComments"
				}
			},
			"additionalProperties": false
		},
		"seriousFaultIndicator": {
			"description": "Indicator for a serious fault being recorded against a test element",
			"type": "boolean"
		},
		"seriousFaults": {
			"description": "The serious faults accumulated during the test",
			"type": "object",
			"properties": {
				"controlsAccelerator": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"controlsAcceleratorComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsClutch": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"controlsClutchComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsGears": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"controlsGearsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsFootbrake": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"controlsFootbrakeComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsParkingBrake": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"controlsParkingBrakeComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsSteering": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"controlsSteeringComments": {
					"$ref": "#/definitions/faultComments"
				},
				"precautions": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"precautionsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"ancillaryControls": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"ancillaryControlsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"moveOffSafety": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"moveOffSafetyComments": {
					"$ref": "#/definitions/faultComments"
				},
				"moveOffControl": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"moveOffControlComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsSignalling": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"useOfMirrorsSignallingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsChangeDirection": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"useOfMirrorsChangeDirectionComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsChangeSpeed": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"useOfMirrorsChangeSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsNecessary": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"signalsNecessaryComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsCorrectly": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"signalsCorrectlyComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsTimed": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"signalsTimedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsApproachSpeed": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"junctionsApproachSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsObservation": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"junctionsObservationComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsTurningRight": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"junctionsTurningRightComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsTurningLeft": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"junctionsTurningLeftComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsCuttingCorners": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"junctionsCuttingCornersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementOvertaking": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"judgementOvertakingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementMeeting": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"judgementMeetingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementCrossing": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"judgementCrossingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positioningNormalDriving": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"positioningNormalDrivingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positioningLaneDiscipline": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"positioningLaneDisciplineComments": {
					"$ref": "#/definitions/faultComments"
				},
				"clearance": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"clearanceComments": {
					"$ref": "#/definitions/faultComments"
				},
				"followingDistance": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"followingDistanceComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfSpeed": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"useOfSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"progressAppropriateSpeed": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"progressAppropriateSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"progressUndueHesitation": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"progressUndueHesitationComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficSigns": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"responseToSignsTrafficSignsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsRoadMarkings": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"responseToSignsRoadMarkingsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficLights": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"responseToSignsTrafficLightsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficControllers": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"responseToSignsTrafficControllersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsOtherRoadUsers": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"responseToSignsOtherRoadUsersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"pedestrianCrossings": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"pedestrianCrossingsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positionNormalStops": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"positionNormalStopsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"awarenessPlanning": {
					"$ref": "#/definitions/seriousFaultIndicator"
				},
				"awarenessPlanningComments": {
					"$ref": "#/definitions/faultComments"
				}
			},
			"additionalProperties": false
		},
		"dangerousFaultIndicator": {
			"description": "Indicator for a dangerous fault being recorded against a test element",
			"type": "boolean"
		},
		"dangerousFaults": {
			"description": "The dangerous faults accumulated during the test",
			"type": "object",
			"properties": {
				"controlsAccelerator": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"controlsAcceleratorComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsClutch": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"controlsClutchComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsGears": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"controlsGearsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsFootbrake": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"controlsFootbrakeComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsParkingBrake": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"controlsParkingBrakeComments": {
					"$ref": "#/definitions/faultComments"
				},
				"controlsSteering": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"controlsSteeringComments": {
					"$ref": "#/definitions/faultComments"
				},
				"precautions": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"precautionsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"ancillaryControls": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"ancillaryControlsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"moveOffSafety": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"moveOffSafetyComments": {
					"$ref": "#/definitions/faultComments"
				},
				"moveOffControl": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"moveOffControlComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsSignalling": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"useOfMirrorsSignallingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsChangeDirection": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"useOfMirrorsChangeDirectionComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfMirrorsChangeSpeed": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"useOfMirrorsChangeSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsNecessary": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"signalsNecessaryComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsCorrectly": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"signalsCorrectlyComments": {
					"$ref": "#/definitions/faultComments"
				},
				"signalsTimed": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"signalsTimedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsApproachSpeed": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"junctionsApproachSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsObservation": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"junctionsObservationComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsTurningRight": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"junctionsTurningRightComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsTurningLeft": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"junctionsTurningLeftComments": {
					"$ref": "#/definitions/faultComments"
				},
				"junctionsCuttingCorners": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"junctionsCuttingCornersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementOvertaking": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"judgementOvertakingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementMeeting": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"judgementMeetingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"judgementCrossing": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"judgementCrossingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positioningNormalDriving": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"positioningNormalDrivingComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positioningLaneDiscipline": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"positioningLaneDisciplineComments": {
					"$ref": "#/definitions/faultComments"
				},
				"clearance": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"clearanceComments": {
					"$ref": "#/definitions/faultComments"
				},
				"followingDistance": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"followingDistanceComments": {
					"$ref": "#/definitions/faultComments"
				},
				"useOfSpeed": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"useOfSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"progressAppropriateSpeed": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"progressAppropriateSpeedComments": {
					"$ref": "#/definitions/faultComments"
				},
				"progressUndueHesitation": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"progressUndueHesitationComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficSigns": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"responseToSignsTrafficSignsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsRoadMarkings": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"responseToSignsRoadMarkingsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficLights": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"responseToSignsTrafficLightsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsTrafficControllers": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"responseToSignsTrafficControllersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"responseToSignsOtherRoadUsers": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"responseToSignsOtherRoadUsersComments": {
					"$ref": "#/definitions/faultComments"
				},
				"pedestrianCrossings": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"pedestrianCrossingsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"positionNormalStops": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"positionNormalStopsComments": {
					"$ref": "#/definitions/faultComments"
				},
				"awarenessPlanning": {
					"$ref": "#/definitions/dangerousFaultIndicator"
				},
				"awarenessPlanningComments": {
					"$ref": "#/definitions/faultComments"
				}
			},
			"additionalProperties": false
		},
		"eco": {
			"description": "Assessment of the eco friendly manner of driving",
			"type": "object",
			"properties": {
				"completed": {
					"description": "Indicates that the eco friendly manner of driving has been assessed",
					"type": "boolean"
				},
				"adviceGivenControl": {
					"description": "Indicates that advice was given on the Control aspect of eco driving",
					"type": "boolean"
				},
				"adviceGivenPlanning": {
					"description": "Indicates that advice was given on the Planning aspect of eco driving",
					"type": "boolean"
				},
				"ecoRelatedFault": {
					"description": "Fault that relates to the Eco selection",
					"type": "string"
				},
				"ecoCaptureReason": {
					"description": "Reason for Eco capture",
					"type": "string"
				},
				"fuelEfficientDriving": {
					"description": "Whether the candidate exemplified efficient driving",
					"type": "boolean"
				}
			},
			"additionalProperties": false
		},
		"ETA": {
			"description": "Indicates whether the examiner had to take physical or verbal action during the test",
			"type": "object",
			"properties": {
				"physical": {
					"description": "Indicates that the examiner had to take physical action",
					"type": "boolean"
				},
				"verbal": {
					"description": "Indicates that the examiner had to take verbal action",
					"type": "boolean"
				}
			},
			"additionalProperties": false
		},
		"postTestDeclarations": {
			"type": "object",
			"properties": {
				"healthDeclarationAccepted": {
					"description": "Whether or not the candidate has declared that their health status hasn't changed since their last application",
					"type": "boolean"
				},
				"passCertificateNumberReceived": {
					"description": "Indicates whether the candidate acknowledges receipt of the PCN",
					"type": "boolean"
				},
				"postTestSignature": {
					"$ref": "#/definitions/signature"
				}
			},
			"additionalProperties": false
		},
		"weatherConditions": {
			"description": "Predefined values for the type of weather encountered during the test",
			"type": "string",
			"enum": [
				"Bright / dry roads",
				"Bright / wet roads",
				"Raining through test",
				"Showers",
				"Foggy / misty",
				"Dull / wet roads",
				"Dull / dry roads",
				"Snowing",
				"Icy",
				"Windy"
			]
		},
		"independentDriving": {
			"description": "Method chosen to conduct the independent driving section of the test",
			"type": "string",
			"enum": [
				"Sat nav",
				"Diagram",
				"Traffic signs",
				"N/A"
			]
		},
		"identification": {
			"description": "Indicates which form of ID was provided by the candidate",
			"type": "string",
			"enum": [
				"Licence",
				"Passport"
			]
		},
		"testSummary": {
			"description": "Recording of other characteristics of the test",
			"type": "object",
			"properties": {
				"routeNumber": {
					"description": "Number of the route that was taken during the test",
					"type": "integer"
				},
				"independentDriving": {
					"$ref": "#/definitions/independentDriving"
				},
				"trueLikenessToPhoto": {
					"description": "Physical appearance resembles a true likeness to provided ID",
					"type": "boolean"
				},
				"candidateDescription": {
					"description": "Physical description of the candidate",
					"type": "string",
					"maxLength": 1000
				},
				"debriefWitnessed": {
					"description": "Indicates whether anybody else (e.g. ADI) was present for the debrief",
					"type": "boolean"
				},
				"identification": {
					"$ref": "#/definitions/identification"
				},
				"weatherConditions": {
					"description": "Description of the type of weather encountered during the test",
					"type": "array",
					"items": {
						"$ref": "#/definitions/weatherConditions"
					}
				},
				"D255": {
					"description": "Indicates whether a D255 form needs to be completed",
					"type": "boolean"
				},
				"additionalInformation": {
					"description": "Any comments that the DE wants to record about the test",
					"type": "string"
				}
			},
			"additionalProperties": false
		},
		"categoryCode": {
			"description": "Category code for the test report",
			"type": "string",
			"enum": [
				"A",
				"A1",
				"A2",
				"ADI2",
				"ADI3",
				"AM",
				"B",
				"B1",
				"B+E",
				"C",
				"C1",
				"C1+E",
				"C1+EM",
				"C1M",
				"CCPC",
				"C+E",
				"C+EM",
				"CM",
				"D",
				"D1",
				"D1+E",
				"D1+EM",
				"D1M",
				"DCPC",
				"D+E",
				"D+EM",
				"DM",
				"EUA1M1",
				"EUA1M2",
				"EUA2M1",
				"EUA2M2",
				"EUAM1",
				"EUAM2",
				"EUAMM1",
				"EUAMM2",
				"F",
				"G",
				"H",
				"K",
				"SC"
			]
		},
		"activityCode": {
			"description": "Code representing the result of the test",
			"type": "string",
			"enum": [
				"1",
				"2",
				"3",
				"4",
				"5",
				"6",
				"11",
				"20",
				"21",
				"22",
				"23",
				"24",
				"25",
				"26",
				"27",
				"28",
				"32",
				"33",
				"34",
				"35",
				"36",
				"37",
				"38",
				"40",
				"41",
				"51",
				"52",
				"55",
				"58",
				"59",
				"60",
				"61",
				"62",
				"63",
				"64",
				"66",
				"67",
				"68",
				"69",
				"70",
				"71",
				"73",
				"74",
				"75",
				"76",
				"77",
				"78",
				"79",
				"80",
				"81",
				"82",
				"83",
				"88",
				"89"
			]
		},
		"gender": {
			"description": "The gender of an individual, limited to 'M' or 'F' as per TARS master data",
			"type": "string",
			"enum": [
				"M",
				"F"
			]
		},
		"rekeyReason": {
			"description": "Recording of the rekey reason",
			"type": "object",
			"properties": {
				"transfer": {
					"$ref": "#/definitions/transfer"
				},
				"ipadIssue": {
					"$ref": "#/definitions/ipadIssue"
				},
				"other": {
					"$ref": "#/definitions/other"
				}
			},
			"additionalProperties": false
		},
		"transfer": {
			"description": "Recording of if a rekey was due to a transfer",
			"type": "object",
			"properties": {
				"selected": {
					"description": "If this option was selected",
					"type": "boolean"
				}
			},
			"additionalProperties": false
		},
		"ipadIssue": {
			"description": "Recording of if a rekey was due to a iPad issue",
			"type": "object",
			"properties": {
				"selected": {
					"description": "If this option was selected",
					"type": "boolean"
				},
				"technicalFault": {
					"description": "If the iPad was not used due to a technical fault",
					"type": "boolean"
				},
				"lost": {
					"description": "If the iPad was not used as it has been lost",
					"type": "boolean"
				},
				"stolen": {
					"description": "If the iPad was not used as it has been stolen",
					"type": "boolean"
				},
				"broken": {
					"description": "If the iPad was not used as it is broken",
					"type": "boolean"
				}
			},
			"additionalProperties": false
		},
		"other": {
			"description": "Recording of if a rekey was due to a different reason",
			"type": "object",
			"properties": {
				"selected": {
					"description": "If this option was selected",
					"type": "boolean"
				},
				"reason": {
					"description": "The reason this option was selected",
					"type": "string"
				}
			},
			"additionalProperties": false
		},
		"testRequirements": {
			"description": "The test requirements that must be carried out during a test",
			"type": "object",
			"properties": {
				"normalStart1": {
					"description": "Indicates whether or not this test requirement was carried out",
					"type": "boolean"
				},
				"normalStart2": {
					"description": "Indicates whether or not this test requirement was carried out",
					"type": "boolean"
				}
			},
			"additionalProperties": false
		},
		"vehicleDetails": {
			"description": "Details about the vehicle to be used for the test",
			"type": "object",
			"properties": {
				"registrationNumber": {
					"description": "The vehicle registration number",
					"type": "string",
					"maxLength": 7
				},
				"motStatus": {
					"description": "The mot status of the vehicle",
					"type": "string"
				},
				"motEvidenceProvided": {
					"description": "Marker stating if alternative MOT evidence was provided",
					"type": "boolean"
				},
				"motEvidence": {
					"description": "Alternative MOT evidence",
					"type": "string"
				},
				"make": {
					"description": "The make of the vehicle",
					"type": "string"
				},
				"model": {
					"description": "The model of the vehicle",
					"type": "string"
				},
				"testExpiryDate": {
					"description": "The test expiry date of the vehicle",
					"type": "string"
				},
				"previouslySearchedRegNumbers": {
					"description": "Previously searched for registration numbers",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"gearboxCategory": {
					"$ref": "#/definitions/gearboxCategory"
				},
				"vehicleLength": {
					"description": "Indicates the length of the vehicle",
					"type": "number"
				},
				"vehicleWidth": {
					"description": "Indicates the width of the vehicle",
					"type": "number"
				},
				"vehicleHeight": {
					"description": "Indicates the height of the vehicle",
					"type": "number"
				},
				"numberOfSeats": {
					"description": "Indicates the number of seats in the vehicle",
					"type": "number"
				}
			},
			"additionalProperties": false
		},
		"passCompletion": {
			"description": "Finalisation of a successful test outcome",
			"type": "object",
			"properties": {
				"provisionalLicenceProvided": {
					"description": "Indicates whether the candidate submitted their provisional driving licence",
					"type": "boolean"
				},
				"passCertificateNumber": {
					"description": "The PCN issued to the candidate",
					"type": "string",
					"maxLength": 8,
					"minLength": 8
				}
			},
			"additionalProperties": false,
			"required": [
				"passCertificateNumber"
			]
		},
		"uncoupleRecouple": {
			"additionalProperties": false,
			"properties": {
				"fault": {
					"$ref": "#/definitions/manoeuvreOutcome"
				},
				"faultComments": {
					"$ref": "#/definitions/faultComments"
				},
				"selected": {
					"$ref": "#/definitions/manoeuvreIndicator"
				}
			},
			"type": "object"
		},
		"manoeuvres": {
			"additionalProperties": false,
			"description": "The manoeuvres that were carried out during the test and any faults recorded against them",
			"type": "object",
			"properties": {
				"reverseManoeuvre": {
					"$ref": "#/definitions/manoeuvre"
				}
			}
		},
		"businessName": {
			"description": "Name of the business the candidate relates to",
			"type": "string",
			"maxLength": 100
		},
		"businessTelephone": {
			"description": "Telephone number of the business the candidate relates to",
			"type": "string",
			"maxLength": 20
		}
	},
	"properties": {
		"version": {
			"description": "Version number",
			"type": "string"
		},
		"appVersion": {
			"description": "App version number",
			"type": "string"
		},
		"category": {
			"$ref": "#/definitions/categoryCode"
		},
		"journalData": {
			"$ref": "#/definitions/journalData"
		},
		"activityCode": {
			"$ref": "#/definitions/activityCode"
		},
		"communicationPreferences": {
			"$ref": "#/definitions/communicationPreferences"
		},
		"preTestDeclarations": {
			"$ref": "#/definitions/preTestDeclarations"
		},
		"accompaniment": {
			"$ref": "#/definitions/accompaniment"
		},
		"postTestDeclarations": {
			"$ref": "#/definitions/postTestDeclarations"
		},
		"testSummary": {
			"$ref": "#/definitions/testSummary"
		},
		"rekeyReason": {
			"$ref": "#/definitions/rekeyReason"
		},
		"rekey": {
			"description": "Whether the test was rekeyed or not",
			"type": "boolean"
		},
		"rekeyDate": {
			"description": "Date the test was rekeyed",
			"type": "string"
		},
		"delegatedTest": {
			"description": "Whether the test was completed by a delegated examiner or not",
			"type": "boolean"
		},
		"changeMarker": {
			"description": "Whether the test was conducted by another examiner",
			"type": "boolean"
		},
		"examinerBooked": {
			"description": "The examiner who the test was booked to",
			"type": [
				"number",
				"string"
			]
		},
		"examinerConducted": {
			"description": "The examiner who conducted the test",
			"type": [
				"number",
				"string"
			]
		},
		"examinerKeyed": {
			"description": "The examiner who keyed the test into the iPad",
			"type": "number"
		},
		"passCompletion": {
			"$ref": "#/definitions/passCompletion"
		},
		"vehicleDetails": {
			"$ref": "#/definitions/vehicleDetails"
		},
		"userExitedApp": {
			"$ref": "#/definitions/userExitedApp"
		},
		"testData": {
			"$ref": "#/definitions/testData"
		}
	},
	"additionalProperties": false,
	"required": [
		"version",
		"category",
		"journalData",
		"activityCode",
		"rekey",
		"changeMarker",
		"examinerBooked",
		"examinerConducted",
		"examinerKeyed"
	]
}