{
  "$schema": "./expected_detections.schema.json",
  "_meta": {
    "fixture_version": "0.1.0-placeholder",
    "video": "sample.mp4",
    "video_sha256": "TBD-after-fixture-recording",
    "model": {
      "_comment": "Pinned model + classes that detections must run when this baseline applies. Refresh this block (and counts/bboxes below) whenever detections ships a new model.",
      "name": "TBD",
      "revision": "TBD",
      "classes_source": "annotations/src/Database/DatabaseMigrator.cs (ids 0..18)"
    },
    "tolerance": {
      "_comment": "Spec asserts ranges, not exact values. INT8 calibration drift can move pixel positions by a few units; absolute count can drift by ±1 across re-runs of the same engine on the same Jetson.",
      "count_delta": 1,
      "bbox_iou_min": 0.8,
      "confidence_delta": 0.1
    }
  },
  "expected": {
    "total_annotations": 0,
    "by_class": [
      {
        "class_id": 0,
        "class_name": "ArmorVehicle",
        "count": 0,
        "bbox_samples": []
      }
    ],
    "_placeholder_note": "Replace this block with the real baseline once sample.mp4 is recorded. Each entry under `by_class` carries: class_id, class_name (must match detection_classes.name), count, and bbox_samples (an array of {time_sec, center_x, center_y, width, height, confidence} entries the spec uses for IoU comparison)."
  }
}
