{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fleetkeep-co-uk/json-schema/fleetkeep-co-uk-tracking-vehicle-schema.json",
  "title": "TrackingVehicle",
  "x-generated": "2026-11-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fleetkeep-co-uk-openapi.json#/components/schemas/TrackingVehicle",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "registration",
    "label",
    "make",
    "model",
    "fuelType",
    "euroStatus",
    "typeApproval",
    "revenueWeight",
    "assignedDriverName",
    "connectionName",
    "provider",
    "connectionStatus",
    "lastSyncedAt",
    "lastReceivedAt",
    "lastSyncError",
    "latitude",
    "longitude",
    "odometerMiles",
    "speedMph",
    "maxSpeedMph",
    "headingDegrees",
    "voltageVolts",
    "ignition",
    "deviceStatus",
    "landmark",
    "address",
    "providerDriverName",
    "recordedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "registration": {
      "type": "string",
      "maxLength": 16
    },
    "label": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "make": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 120
    },
    "model": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 120
    },
    "fuelType": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80
    },
    "euroStatus": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80
    },
    "typeApproval": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80
    },
    "revenueWeight": {
      "type": [
        "integer",
        "null"
      ]
    },
    "assignedDriverName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "connectionName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "provider": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80
    },
    "connectionStatus": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80
    },
    "lastSyncedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastReceivedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastSyncError": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "latitude": {
      "type": [
        "number",
        "null"
      ],
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": [
        "number",
        "null"
      ],
      "minimum": -180,
      "maximum": 180
    },
    "odometerMiles": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "speedMph": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "maxSpeedMph": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "headingDegrees": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "maximum": 360
    },
    "voltageVolts": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "ignition": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "deviceStatus": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "landmark": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "address": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "providerDriverName": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 200
    },
    "recordedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  }
}