{
    "$defs": {
        "Bike": {
            "additionalProperties": true,
            "description": "A bicycle object.",
            "properties": {
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Bike",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Bike",
            "type": "object"
        },
        "BoundingBox": {
            "additionalProperties": true,
            "description": "The coordinate system used in Axis Metadata Format is normalized image coordinates",
            "properties": {
                "bottom": {
                    "description": "Normalized y-coordinate of the bottom edge (0 at top border, 1 at bottom). Must be \u2265 top.",
                    "type": "number"
                },
                "left": {
                    "description": "Normalized x-coordinate of the left edge (0 at left border, 1 at right). Must be \u2264 right.",
                    "type": "number"
                },
                "right": {
                    "description": "Normalized x-coordinate of the right edge (0 at left border, 1 at right). Must be \u2265 left.",
                    "type": "number"
                },
                "top": {
                    "description": "Normalized y-coordinate of the top edge (0 at top border, 1 at bottom). Must be \u2264 bottom.",
                    "type": "number"
                }
            },
            "required": [
                "left",
                "top",
                "right",
                "bottom"
            ],
            "title": "BoundingBox",
            "type": "object"
        },
        "Bus": {
            "additionalProperties": true,
            "description": "A bus object.",
            "properties": {
                "colors": {
                    "description": "Estimated color(s) associated with the object (e.g., body/paint color); values are color classifications.",
                    "items": {
                        "$ref": "#/$defs/ColorClass"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "license_plate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/LicensePlateAttributes"
                        },
                        {
                            "$ref": "#/$defs/LicensePlate"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Licenseplate attributes"
                },
                "license_plate_id": {
                    "description": "The license plate attached to this vehicle.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Bus",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Bus",
            "type": "object"
        },
        "Car": {
            "additionalProperties": true,
            "description": "A passenger car object.",
            "properties": {
                "colors": {
                    "description": "Estimated color(s) associated with the object (e.g., body/paint color); values are color classifications.",
                    "items": {
                        "$ref": "#/$defs/ColorClass"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "license_plate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/LicensePlateAttributes"
                        },
                        {
                            "$ref": "#/$defs/LicensePlate"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Licenseplate attributes"
                },
                "license_plate_id": {
                    "description": "The license plate attached to this vehicle.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Car",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Car",
            "type": "object"
        },
        "ColorClass": {
            "additionalProperties": true,
            "description": "A classification that assigns a color label to an object or part of an object.",
            "properties": {
                "name": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/ColorEnum"
                        },
                        {
                            "type": "string"
                        }
                    ],
                    "description": "Name of the type.",
                    "type": "string"
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                }
            },
            "required": [
                "name",
                "score"
            ],
            "title": "ColorClass",
            "type": "object"
        },
        "ColorEnum": {
            "description": "Valid colors",
            "enum": [
                "beige",
                "black",
                "blue",
                "gray",
                "green",
                "red",
                "white",
                "yellow"
            ],
            "title": "ColorEnum",
            "type": "string"
        },
        "GeoDirection": {
            "additionalProperties": true,
            "description": "Represents a direction vector described in spherical coordinates.",
            "properties": {
                "pitch": {
                    "description": "Elevation angle in degrees from the X\u2013Y plane; valid range \u221290 to 90; 0\u00b0 is level.",
                    "maximum": 90,
                    "minimum": -90,
                    "type": "number"
                },
                "speed": {
                    "description": "Magnitude; meters/second",
                    "minimum": 0,
                    "type": "number"
                },
                "yaw": {
                    "description": "Rotation angle in degrees around +Z; valid range \u2212180 to 180; 0\u00b0 indicates rightwards from the device",
                    "maximum": 180,
                    "minimum": -180,
                    "type": "number"
                }
            },
            "required": [
                "speed",
                "yaw",
                "pitch"
            ],
            "title": "GeoDirection",
            "type": "object"
        },
        "GeographicalPosition": {
            "additionalProperties": true,
            "description": "The coordinates for the detection in the world.",
            "properties": {
                "elevation": {
                    "description": "Elevation above mean sea level in meters.",
                    "type": [
                        "number",
                        "null"
                    ]
                },
                "latitude": {
                    "description": "Latitude in WGS84 decimal degrees; valid range \u221290 to 90.",
                    "maximum": 90,
                    "minimum": -90,
                    "type": "number"
                },
                "longitude": {
                    "description": "Longitude in WGS84 decimal degrees; valid range \u2212180 to 180.",
                    "maximum": 180,
                    "minimum": -180,
                    "type": "number"
                }
            },
            "required": [
                "latitude",
                "longitude"
            ],
            "title": "GeographicalPosition",
            "type": "object"
        },
        "Head": {
            "additionalProperties": true,
            "description": "A human head object.",
            "properties": {
                "face_visible": {
                    "description": "A confidence score in [0.0, 1.0] indicating the likelihood that the face of the head is visible in the image. A value near 1.0 means the face is clearly visible, while a value near 0.0 means the face is not visible or is fully occluded.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": [
                        "number",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Head",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Head",
            "type": "object"
        },
        "Human": {
            "additionalProperties": true,
            "description": "A human (person) object.",
            "properties": {
                "carries_bag": {
                    "description": "True if the human carry at least one bag.",
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "lower_clothing_colors": {
                    "description": "Estimated color(s) of clothing on the lower body (e.g., pants, skirt).",
                    "items": {
                        "$ref": "#/$defs/ColorClass"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Human",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                },
                "upper_clothing_colors": {
                    "description": "Estimated color(s) of clothing on the upper body (e.g., shirt, jacket).",
                    "items": {
                        "$ref": "#/$defs/ColorClass"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Human",
            "type": "object"
        },
        "LicensePlate": {
            "additionalProperties": true,
            "description": "A vehicle license plate object.",
            "properties": {
                "country_code": {
                    "description": "Country/region code for the license plate.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "plate_number": {
                    "description": "The alphanumeric string printed on the license plate (as recognized).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "LicensePlate",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                },
                "vehicle_id": {
                    "description": "The vehicle to which a license plate is attached.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "LicensePlate",
            "type": "object"
        },
        "LicensePlateAttributes": {
            "additionalProperties": true,
            "description": "Common Attributes of a LicensePlate",
            "properties": {
                "country_code": {
                    "description": "Country/region code for the license plate.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "plate_number": {
                    "description": "The alphanumeric string printed on the license plate (as recognized).",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "LicensePlateAttributes",
            "type": "object"
        },
        "ObjectClass": {
            "additionalProperties": true,
            "description": "A general object classification that labels what the object is and how confident the system is in that label.",
            "properties": {
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "ObjectClass",
            "type": "object"
        },
        "ObjectSnapshot": {
            "additionalProperties": true,
            "description": "A snapshot of an object, along with information about the source of the image.",
            "properties": {
                "channel_id": {
                    "description": "Uniquely identifies a source within a single device, for example, a video or radar sensor.",
                    "minimum": 1,
                    "type": "integer"
                },
                "class": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/ObjectClass"
                        },
                        {
                            "$ref": "#/$defs/Vehicle"
                        },
                        {
                            "$ref": "#/$defs/Bike"
                        },
                        {
                            "$ref": "#/$defs/Bus"
                        },
                        {
                            "$ref": "#/$defs/Car"
                        },
                        {
                            "$ref": "#/$defs/Truck"
                        },
                        {
                            "$ref": "#/$defs/VehicleOther"
                        },
                        {
                            "$ref": "#/$defs/Head"
                        },
                        {
                            "$ref": "#/$defs/Human"
                        },
                        {
                            "$ref": "#/$defs/LicensePlate"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Classification of the detected object in the snapshot (e.g., person, vehicle)."
                },
                "crop_box": {
                    "$ref": "#/$defs/BoundingBox",
                    "description": "Normalized bounding box of the region captured in `data`, relative to the source image."
                },
                "data": {
                    "description": "Base64-encoded raster image bytes (e.g., JPEG or PNG).",
                    "pattern": "^[A-Za-z0-9+/=\\s]*$",
                    "type": "string"
                },
                "id": {
                    "description": "Globally unique identifier.",
                    "type": "string"
                },
                "object_track_id": {
                    "description": "Reference to an object track.",
                    "type": "string"
                },
                "timestamp": {
                    "description": "Time of image capture.",
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": [
                "object_track_id",
                "channel_id",
                "id",
                "timestamp",
                "data",
                "crop_box"
            ],
            "title": "ObjectSnapshot",
            "type": "object"
        },
        "ObjectTrackReference": {
            "additionalProperties": true,
            "description": "Reference to an object track that was part of creating this track.",
            "properties": {
                "object_track_id": {
                    "description": "Id of the object track reference",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "parts": {
                    "description": "References to the original object tracks that were combined to create this track.\n\nEach entry represents another ObjectTrack. The content of this track contains the\ncombined content of its parts, with the same or less detail.\n\nThis field records when ObjectTracks are transformed or combined, for example as a\nresult of a rename or similar operation. For pure transformations of a track, such\nas switching coordinate systems or simplifying the content, this field contains only\none entry referencing the original track.",
                    "items": {
                        "$ref": "#/$defs/ObjectTrackReference"
                    },
                    "minItems": 1,
                    "type": [
                        "array",
                        "null"
                    ]
                }
            },
            "title": "ObjectTrackReference",
            "type": "object"
        },
        "Snapshot": {
            "additionalProperties": true,
            "description": "An image captured at a specific time and cropped from larger source image.",
            "properties": {
                "crop_box": {
                    "$ref": "#/$defs/BoundingBox",
                    "description": "Normalized bounding box of the region captured in `data`, relative to the source image."
                },
                "data": {
                    "description": "Base64-encoded raster image bytes (e.g., JPEG or PNG).",
                    "pattern": "^[A-Za-z0-9+/=\\s]*$",
                    "type": "string"
                },
                "id": {
                    "description": "Globally unique identifier.",
                    "type": "string"
                },
                "timestamp": {
                    "description": "Time of image capture.",
                    "format": "date-time",
                    "type": "string"
                }
            },
            "required": [
                "id",
                "timestamp",
                "data",
                "crop_box"
            ],
            "title": "Snapshot",
            "type": "object"
        },
        "SphericalCoordinate": {
            "additionalProperties": true,
            "description": "Represents a vector described in spherical coordinates.",
            "properties": {
                "azimuth": {
                    "description": "Azimuth angle \u03c6 in degrees around +Z; valid range \u2212180 to 180; 90\u00b0 is straight away from the observer.",
                    "maximum": 180,
                    "minimum": -180,
                    "type": "number"
                },
                "distance": {
                    "description": "Magnitude (distance) in meters.",
                    "minimum": 0,
                    "type": "number"
                },
                "elevation": {
                    "description": "Elevation angle \u03b8 in degrees from the X\u2013Y plane; valid range \u221290 to 90; 0\u00b0 is level.",
                    "maximum": 90,
                    "minimum": -90,
                    "type": "number"
                }
            },
            "required": [
                "distance",
                "azimuth",
                "elevation"
            ],
            "title": "SphericalCoordinate",
            "type": "object"
        },
        "TimeAndPosition": {
            "additionalProperties": true,
            "description": "A time-stamped observation with optional location in image and world coordinates.",
            "properties": {
                "bounding_box": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/BoundingBox"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Bounding box of the object at this time, in normalized image coordinates."
                },
                "geoposition": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/GeographicalPosition"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The geographical position of the detection."
                },
                "timestamp": {
                    "description": "Time of this observation sample.",
                    "format": "date-time",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "world_position": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SphericalCoordinate"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The position of the object relative to the device that made this detection (spherical coordinates)."
                },
                "world_velocity": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/GeoDirection"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The velocity of the object relative to the device that made this detection (geographical direction)."
                }
            },
            "title": "TimeAndPosition",
            "type": "object"
        },
        "Truck": {
            "additionalProperties": true,
            "description": "A truck object.",
            "properties": {
                "colors": {
                    "description": "Estimated color(s) associated with the object (e.g., body/paint color); values are color classifications.",
                    "items": {
                        "$ref": "#/$defs/ColorClass"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "license_plate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/LicensePlateAttributes"
                        },
                        {
                            "$ref": "#/$defs/LicensePlate"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Licenseplate attributes"
                },
                "license_plate_id": {
                    "description": "The license plate attached to this vehicle.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Truck",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Truck",
            "type": "object"
        },
        "Vehicle": {
            "additionalProperties": true,
            "description": "A generic vehicle object (motorized or otherwise).",
            "properties": {
                "license_plate": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/LicensePlateAttributes"
                        },
                        {
                            "$ref": "#/$defs/LicensePlate"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Licenseplate attributes"
                },
                "license_plate_id": {
                    "description": "The license plate attached to this vehicle.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "Vehicle",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "Vehicle",
            "type": "object"
        },
        "VehicleOther": {
            "additionalProperties": true,
            "description": "A vehicle object whose specific type is not part of the other known classifications. It may or may not be motorized.",
            "properties": {
                "score": {
                    "description": "Confidence score for the classification, normalized to [0,1] where 1 is highest confidence.",
                    "maximum": 1.0,
                    "minimum": 0.0,
                    "type": "number"
                },
                "type": {
                    "const": "VehicleOther",
                    "description": "The object class label (e.g., \"Car\", \"Human\", \"Bike\").",
                    "type": "string"
                }
            },
            "required": [
                "score",
                "type"
            ],
            "title": "VehicleOther",
            "type": "object"
        }
    },
    "$id": "https://axis.com/schema/adf/object_track_v1",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "additionalProperties": true,
    "description": "A detected and tracked object observed over time.",
    "properties": {
        "channel_id": {
            "description": "Uniquely identifies a source within a single device, for example, a video or radar sensor.",
            "minimum": 1,
            "type": "integer"
        },
        "classes": {
            "description": "Classification candidates for the track (e.g., person, vehicle).",
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/$defs/ObjectClass"
                    },
                    {
                        "$ref": "#/$defs/Vehicle"
                    },
                    {
                        "$ref": "#/$defs/Bike"
                    },
                    {
                        "$ref": "#/$defs/Bus"
                    },
                    {
                        "$ref": "#/$defs/Car"
                    },
                    {
                        "$ref": "#/$defs/Truck"
                    },
                    {
                        "$ref": "#/$defs/VehicleOther"
                    },
                    {
                        "$ref": "#/$defs/Head"
                    },
                    {
                        "$ref": "#/$defs/Human"
                    },
                    {
                        "$ref": "#/$defs/LicensePlate"
                    }
                ]
            },
            "type": [
                "array",
                "null"
            ]
        },
        "duration": {
            "description": "Total duration of the track in seconds.",
            "type": [
                "number",
                "null"
            ]
        },
        "end_time": {
            "description": "Timestamp of the last observation in the track.",
            "format": "date-time",
            "type": [
                "string",
                "null"
            ]
        },
        "id": {
            "description": "Globally unique identifier.",
            "type": "string"
        },
        "image": {
            "anyOf": [
                {
                    "$ref": "#/$defs/Snapshot"
                },
                {
                    "$ref": "#/$defs/ObjectSnapshot"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Representative snapshot of the tracked object."
        },
        "maximum_speed": {
            "description": "Maximum measured speed of an object in m/s",
            "minimum": 0,
            "type": [
                "number",
                "null"
            ]
        },
        "minimum_speed": {
            "description": "Minimum measured speed of an object in m/s",
            "minimum": 0,
            "type": [
                "number",
                "null"
            ]
        },
        "parts": {
            "description": "References to the original object tracks that were combined to create this track.\n\nEach entry represents another ObjectTrack. The content of this track contains the\ncombined content of its parts, with the same or less detail.\n\nThis field records when ObjectTracks are transformed or combined, for example as a\nresult of a rename or similar operation. For pure transformations of a track, such\nas switching coordinate systems or simplifying the content, this field contains only\none entry referencing the original track.",
            "items": {
                "$ref": "#/$defs/ObjectTrackReference"
            },
            "minItems": 1,
            "type": [
                "array",
                "null"
            ]
        },
        "path": {
            "description": "Time-ordered samples of the track\u2019s trajectory (timestamps and positions).",
            "items": {
                "$ref": "#/$defs/TimeAndPosition"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "start_time": {
            "description": "Timestamp of the first observation in the track.",
            "format": "date-time",
            "type": [
                "string",
                "null"
            ]
        }
    },
    "required": [
        "id",
        "channel_id"
    ],
    "title": "ObjectTrack",
    "type": "object",
    "version": "1.0.1"
}