{
  "status": "native_adapter_required",
  "units": "seconds and KPH; gauge fractions in [0,1]",
  "update_source": "native race simulation; no wall-clock or keyboard-derived replacement",
  "fields": {
    "scene": {
      "required": true,
      "type": "menu|race|loading"
    },
    "paused": {
      "required": true,
      "type": "boolean"
    },
    "speed_kph": {
      "required": true,
      "type": "number",
      "note": "native conversion from engine speed must be verified"
    },
    "speed_fraction": {
      "required": true,
      "type": "number in [0,1]",
      "note": "native calibration; separate from thrust"
    },
    "thrust_fraction": {
      "required": true,
      "type": "number in [0,1]"
    },
    "energy_fraction": {
      "required": true,
      "type": "number in [0,1]",
      "native_availability": "not present in inspected upstream ship model"
    },
    "check_seconds": {
      "required": true,
      "type": "number",
      "native_availability": "not present in inspected upstream HUD"
    },
    "rank": {
      "required": true,
      "type": "integer"
    },
    "total_racers": {
      "required": true,
      "type": "integer"
    },
    "lap": {
      "required": true,
      "type": "integer"
    },
    "total_laps": {
      "required": true,
      "type": "integer"
    },
    "current_lap_seconds": {
      "required": true,
      "type": "number"
    },
    "completed_lap_times_seconds": {
      "required": true,
      "type": "array of numbers"
    },
    "weapon": {
      "required": true,
      "type": "native weapon identifier or none"
    },
    "message": {
      "required": false,
      "type": "native event identifier and remaining simulation duration"
    }
  },
  "rules": [
    "Unknown native fields remain unavailable; do not supply demo defaults to the live HUD.",
    "Freeze simulation-dependent animation when paused.",
    "Hide the race HUD in menus and loading.",
    "Keep sprites fixed at the reference anchors; update fill masks and glyphs.",
    "Weapon pickup/use and race messages come from native events."
  ]
}
