{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/vehicle_location/v1.json",
  "title": "vehicle_location contract v1",
  "type": "object",
  "required": [
    "asset",
    "occurred_at"
  ],
  "properties": {
    "trip": {
      "type": "number",
      "description": "the source trip/journey the last event belongs to",
      "x-demiton-requiredness": "optional"
    },
    "asset": {
      "type": "string",
      "description": "the vehicle/plant the snapshot is about; the shelf's only required coordinate",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "device": {
      "type": "number",
      "description": "the telematics unit that produced the reading, distinct from the asset identity",
      "x-demiton-requiredness": "optional"
    },
    "odometer": {
      "type": "number",
      "description": "GPS-sourced lifetime odometer meter",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "km",
      "x-demiton-type": "decimal"
    },
    "operator": {
      "type": "number",
      "description": "the driver/operator active on the unit",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "fuel_period": {
      "type": "number",
      "description": "fuel consumed over the reading window",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "litres",
      "x-demiton-type": "decimal"
    },
    "occurred_at": {
      "type": "string",
      "description": "when the last event on the unit happened; the shelf's temporal coordinate",
      "x-demiton-requiredness": "required",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "place_label": {
      "type": "string",
      "description": "the human-readable location text delivered by the source",
      "x-demiton-requiredness": "optional"
    },
    "readings_at": {
      "type": "string",
      "description": "when the meter readings were taken, distinct from the last-event time",
      "x-demiton-requiredness": "optional",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "engine_hours": {
      "type": "number",
      "description": "GPS-sourced lifetime engine-hours meter",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "hours",
      "x-demiton-type": "decimal"
    },
    "odometer_can": {
      "type": "number",
      "description": "CAN-bus twin of `odometer`",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "km",
      "x-demiton-type": "decimal"
    },
    "distance_period": {
      "type": "number",
      "description": "distance accumulated over the reading window (delta, not a lifetime meter)",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "km",
      "x-demiton-type": "decimal"
    },
    "last_event_type": {
      "type": "string",
      "description": "the discriminator for what the last event was (type/subtype), for a state snapshot",
      "x-demiton-requiredness": "optional"
    },
    "engine_hours_can": {
      "type": "number",
      "description": "CAN-bus twin of `engine_hours`",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "hours",
      "x-demiton-type": "decimal"
    },
    "financial_period": {
      "type": "string",
      "description": "the accounting period the snapshot falls in; derived, no raw source field",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "engine_hours_period": {
      "type": "number",
      "description": "engine hours accumulated over the reading window",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "hours",
      "x-demiton-type": "decimal"
    }
  },
  "x-demiton-register-type": "vehicle_location",
  "x-demiton-contract-version": "1.0.3",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "financial_period",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "asset",
      "requirement": "required",
      "role": "subject"
    }
  ],
  "x-demiton-measures": [
    {
      "key": "engine_hours",
      "accumulation": "cumulative",
      "dtype": "decimal",
      "unit": "hours"
    },
    {
      "key": "odometer",
      "accumulation": "cumulative",
      "dtype": "decimal",
      "unit": "km"
    }
  ],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "GDA2020 / MGA2020",
        "title": "Geocentric Datum of Australia 2020 and Map Grid of Australia 2020 (EPSG:7844 / EPSG:78xx zones)",
        "access": "public_summary",
        "region": "Australia",
        "edition": "GDA2020 = ITRF2014 at epoch 2020.0",
        "checked_on": "2026-09-14"
      },
      {
        "code": "National Measurement Act 1960 (Cth) s 8A",
        "title": "Recognized-Value Standard of Measurement of Position Determination 2017 (legal definition of GDA2020)",
        "access": "public_summary",
        "clause": "s 8A",
        "region": "Australia",
        "edition": "Determination 2017",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 1988 (Cth)",
        "title": "Privacy Act 1988 - Australian Privacy Principles",
        "access": "full_text_verified",
        "clause": "APP 3",
        "region": "Australia",
        "edition": "APP Guidelines ch 3 v1.2 (2026-05-13)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Workplace Surveillance Act 2005 (NSW)",
        "title": "Workplace Surveillance Act 2005 (tracking surveillance of employees)",
        "access": "public_summary",
        "clause": "s 10",
        "region": "Australia",
        "edition": "in force (compilation 2025-06-14)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Regulation (EU) 2016/679 (GDPR)",
        "title": "General Data Protection Regulation (GDPR)",
        "access": "public_summary",
        "region": "European Union",
        "edition": "2016",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO/TS 15143-3",
        "title": "Earth-moving machinery and mobile road construction machinery - Worksite data exchange - Telematics data (AEMP 2.0)",
        "access": "paywalled_secondary",
        "region": "International",
        "edition": "2020 (SA TS ISO 15143.3:2021 AU and PD ISO/TS 15143-3:2020 UK identical adoptions)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "WGS 84 (EPSG:4326)",
        "title": "World Geodetic System 1984 datum ensemble (EPSG:6326)",
        "access": "full_text_verified",
        "region": "International",
        "edition": "EPSG Dataset v13.102; record revised 2022-11-29",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ICO monitoring workers guidance",
        "title": "ICO Employment practices and data protection: monitoring workers",
        "access": "full_text_verified",
        "region": "United Kingdom",
        "edition": "current guidance (under review after the Data (Use and Access) Act)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "UK GDPR / Data Protection Act 2018",
        "title": "UK GDPR and Data Protection Act 2018",
        "access": "public_summary",
        "region": "United Kingdom",
        "edition": "as amended",
        "checked_on": "2026-09-14"
      },
      {
        "code": "49 CFR Part 395 Subpart B",
        "title": "FMCSA - Hours of Service of Drivers - Electronic Logging Devices",
        "access": "full_text_verified",
        "clause": "ss 395.26(b), 395.8(c)",
        "region": "United States",
        "edition": "current (ELD mandate from 2017-12-18)",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Last-known GPS position of each vehicle.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/vehicle_location/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}