{
  "components": {
    "schemas": {
      "AdaptiveIn": {
        "properties": {
          "odd_gaps": {
            "items": {
              "type": "object"
            },
            "title": "Odd Gaps",
            "type": "array"
          },
          "regressions": {
            "items": {
              "type": "object"
            },
            "title": "Regressions",
            "type": "array"
          },
          "safety_floor": {
            "default": 0,
            "title": "Safety Floor",
            "type": "integer"
          },
          "safety_slices": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Safety Slices"
          },
          "total_fleet_samples": {
            "title": "Total Fleet Samples",
            "type": "integer"
          },
          "total_label_budget": {
            "title": "Total Label Budget",
            "type": "integer"
          }
        },
        "required": [
          "regressions",
          "odd_gaps",
          "total_label_budget",
          "total_fleet_samples"
        ],
        "title": "AdaptiveIn",
        "type": "object"
      },
      "AdverseIn": {
        "properties": {
          "condition": {
            "title": "Condition",
            "type": "string"
          },
          "confidence": {
            "default": 1.0,
            "title": "Confidence",
            "type": "number"
          },
          "geometry": {
            "items": {
              "type": "number"
            },
            "title": "Geometry",
            "type": "array"
          }
        },
        "required": [
          "geometry",
          "condition"
        ],
        "title": "AdverseIn",
        "type": "object"
      },
      "AgentPolicyIn": {
        "properties": {
          "auto_accept_conf": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Accept Conf"
          },
          "require_agreement": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Require Agreement"
          },
          "review_low": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Low"
          }
        },
        "title": "AgentPolicyIn",
        "type": "object"
      },
      "AggLabelIn": {
        "properties": {
          "center": {
            "items": {
              "type": "number"
            },
            "title": "Center",
            "type": "array"
          },
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "dims": {
            "items": {
              "type": "number"
            },
            "title": "Dims",
            "type": "array"
          },
          "yaw": {
            "default": 0.0,
            "title": "Yaw",
            "type": "number"
          }
        },
        "required": [
          "center",
          "dims",
          "class_id"
        ],
        "title": "AggLabelIn",
        "type": "object"
      },
      "AggregateIn": {
        "properties": {
          "compute_target": {
            "default": "local",
            "title": "Compute Target",
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          },
          "session_ids": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Session Ids",
            "type": "array"
          }
        },
        "required": [
          "session_ids"
        ],
        "title": "AggregateIn",
        "type": "object"
      },
      "AgreementIn": {
        "properties": {
          "annotations": {
            "items": {
              "type": "object"
            },
            "title": "Annotations",
            "type": "array"
          },
          "iou_thr": {
            "default": 0.5,
            "title": "Iou Thr",
            "type": "number"
          }
        },
        "required": [
          "annotations"
        ],
        "title": "AgreementIn",
        "type": "object"
      },
      "AnnotationIn": {
        "properties": {
          "conf": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Conf"
          },
          "fields": {
            "default": {},
            "title": "Fields",
            "type": "object"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "payload": {
            "default": {},
            "title": "Payload",
            "type": "object"
          },
          "provenance": {
            "default": {},
            "title": "Provenance",
            "type": "object"
          },
          "source": {
            "default": "human",
            "title": "Source",
            "type": "string"
          },
          "state": {
            "default": "accepted",
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "kind"
        ],
        "title": "AnnotationIn",
        "type": "object"
      },
      "AnnotationPatch": {
        "properties": {
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          },
          "fields": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "payload": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payload"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          }
        },
        "title": "AnnotationPatch",
        "type": "object"
      },
      "ApproveIn": {
        "properties": {
          "l0": {
            "default": "object",
            "title": "L0",
            "type": "string"
          },
          "l1": {
            "default": "custom",
            "title": "L1",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "ApproveIn",
        "type": "object"
      },
      "AskIn": {
        "properties": {
          "limit": {
            "default": 40,
            "title": "Limit",
            "type": "integer"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "AskIn",
        "type": "object"
      },
      "AssetsIn": {
        "properties": {
          "items": {
            "items": {
              "type": "object"
            },
            "title": "Items",
            "type": "array"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          }
        },
        "required": [
          "project_id",
          "items"
        ],
        "title": "AssetsIn",
        "type": "object"
      },
      "AttachIn": {
        "properties": {
          "baseline_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Run Id"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          }
        },
        "required": [
          "job_id"
        ],
        "title": "AttachIn",
        "type": "object"
      },
      "AutolabelStartIn": {
        "properties": {
          "compute_target": {
            "default": "local",
            "title": "Compute Target",
            "type": "string"
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Limit"
          },
          "only_unlabelled": {
            "default": false,
            "title": "Only Unlabelled",
            "type": "boolean"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": [
          "session_id"
        ],
        "title": "AutolabelStartIn",
        "type": "object"
      },
      "BatchCorrectIn": {
        "properties": {
          "class_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Id"
          },
          "dims": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dims"
          },
          "object_3d_ids": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Object 3D Ids",
            "type": "array"
          }
        },
        "required": [
          "object_3d_ids"
        ],
        "title": "BatchCorrectIn",
        "type": "object"
      },
      "BatchFixIn": {
        "properties": {
          "object_ids": {
            "items": {
              "type": "string"
            },
            "title": "Object Ids",
            "type": "array"
          },
          "to_class": {
            "title": "To Class",
            "type": "integer"
          }
        },
        "required": [
          "object_ids",
          "to_class"
        ],
        "title": "BatchFixIn",
        "type": "object"
      },
      "BenchIn": {
        "properties": {
          "artifact_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Uri"
          },
          "latency_ms": {
            "title": "Latency Ms",
            "type": "object"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "power_w": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Power W"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "throughput_fps": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Throughput Fps"
          }
        },
        "required": [
          "model_version",
          "target",
          "latency_ms"
        ],
        "title": "BenchIn",
        "type": "object"
      },
      "BootstrapIn": {
        "properties": {
          "alpha": {
            "default": 0.05,
            "title": "Alpha",
            "type": "number"
          },
          "n_boot": {
            "default": 2000,
            "title": "N Boot",
            "type": "integer"
          },
          "seed": {
            "default": 12345,
            "title": "Seed",
            "type": "integer"
          },
          "values": {
            "items": {
              "type": "number"
            },
            "title": "Values",
            "type": "array"
          }
        },
        "required": [
          "values"
        ],
        "title": "BootstrapIn",
        "type": "object"
      },
      "BulkReviewIn": {
        "properties": {
          "action": {
            "default": "confirm",
            "title": "Action",
            "type": "string"
          },
          "attrs": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attrs"
          },
          "class_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Name"
          },
          "expected_versions": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Versions"
          },
          "object_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Object Ids",
            "type": "array"
          },
          "reviewer": {
            "default": "anon",
            "title": "Reviewer",
            "type": "string"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "time_spent_ms": {
            "default": 0,
            "title": "Time Spent Ms",
            "type": "integer"
          }
        },
        "required": [
          "object_ids"
        ],
        "title": "BulkReviewIn",
        "type": "object"
      },
      "BulkVerdictIn": {
        "properties": {
          "apply_proposed": {
            "default": true,
            "title": "Apply Proposed",
            "type": "boolean"
          },
          "candidate_ids": {
            "items": {
              "type": "string"
            },
            "title": "Candidate Ids",
            "type": "array"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "reviewer": {
            "default": "error-detect",
            "title": "Reviewer",
            "type": "string"
          },
          "verdict": {
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "candidate_ids",
          "verdict"
        ],
        "title": "BulkVerdictIn",
        "type": "object"
      },
      "BuyerSpecIn": {
        "properties": {
          "confirm": {
            "default": false,
            "title": "Confirm",
            "type": "boolean"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "BuyerSpecIn",
        "type": "object"
      },
      "CalibrateFitIn": {
        "properties": {
          "gold_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gold Id"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "CalibrateFitIn",
        "type": "object"
      },
      "CampaignIn": {
        "properties": {
          "autopilot_stages": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Autopilot Stages",
            "type": "array"
          },
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "label_budget": {
            "default": 2000,
            "title": "Label Budget",
            "type": "integer"
          },
          "max_iterations": {
            "default": 6,
            "title": "Max Iterations",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "patience": {
            "default": 2,
            "title": "Patience",
            "type": "integer"
          },
          "require_approval": {
            "default": true,
            "title": "Require Approval",
            "type": "boolean"
          },
          "target_metric": {
            "default": "recall",
            "title": "Target Metric",
            "type": "string"
          },
          "target_value": {
            "default": 0.6,
            "title": "Target Value",
            "type": "number"
          },
          "task_type": {
            "default": "detection",
            "title": "Task Type",
            "type": "string"
          }
        },
        "required": [
          "name",
          "class_name"
        ],
        "title": "CampaignIn",
        "type": "object"
      },
      "CandidateStateIn": {
        "properties": {
          "state": {
            "title": "State",
            "type": "string"
          },
          "tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          }
        },
        "required": [
          "state"
        ],
        "title": "CandidateStateIn",
        "type": "object"
      },
      "ChangePasswordIn": {
        "properties": {
          "current_password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Password"
          },
          "new_password": {
            "title": "New Password",
            "type": "string"
          }
        },
        "required": [
          "new_password"
        ],
        "title": "ChangePasswordIn",
        "type": "object"
      },
      "CheckpointIn": {
        "description": "A save-as. The name is what a person will scan a list for, so it is required and the note is not.",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": [
          "name"
        ],
        "title": "CheckpointIn",
        "type": "object"
      },
      "ClassPolygons": {
        "description": "One class and the regions the annotator painted for it, flattened [x,y,x,y,...] per ring.",
        "properties": {
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "polygons": {
            "default": [],
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Polygons",
            "type": "array"
          }
        },
        "required": [
          "class_name"
        ],
        "title": "ClassPolygons",
        "type": "object"
      },
      "ClassifyIn": {
        "properties": {
          "box": {
            "items": {
              "type": "number"
            },
            "title": "Box",
            "type": "array"
          },
          "frame_id": {
            "title": "Frame Id",
            "type": "string"
          }
        },
        "required": [
          "frame_id",
          "box"
        ],
        "title": "ClassifyIn",
        "type": "object"
      },
      "CleanupIn": {
        "properties": {
          "do_pii": {
            "default": true,
            "title": "Do Pii",
            "type": "boolean"
          },
          "pii_limit": {
            "default": 5000,
            "title": "Pii Limit",
            "type": "integer"
          }
        },
        "title": "CleanupIn",
        "type": "object"
      },
      "CliqueRewardIn": {
        "properties": {
          "allocated": {
            "title": "Allocated",
            "type": "integer"
          },
          "clique": {
            "title": "Clique",
            "type": "string"
          },
          "recall_after": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recall After"
          },
          "recall_before": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recall Before"
          }
        },
        "required": [
          "clique",
          "allocated"
        ],
        "title": "CliqueRewardIn",
        "type": "object"
      },
      "CodeIn": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "mfa_handle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mfa Handle"
          }
        },
        "required": [
          "code"
        ],
        "title": "CodeIn",
        "type": "object"
      },
      "CommandIn": {
        "properties": {
          "frame_id": {
            "title": "Frame Id",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text",
          "frame_id"
        ],
        "title": "CommandIn",
        "type": "object"
      },
      "CommentIn": {
        "properties": {
          "body": {
            "title": "Body",
            "type": "string"
          }
        },
        "required": [
          "body"
        ],
        "title": "CommentIn",
        "type": "object"
      },
      "CommitWorkIn": {
        "properties": {
          "labels": {
            "additionalProperties": {
              "type": "object"
            },
            "title": "Labels",
            "type": "object"
          },
          "message": {
            "default": "annotator work",
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "labels"
        ],
        "title": "CommitWorkIn",
        "type": "object"
      },
      "ComposeIn": {
        "properties": {
          "height": {
            "title": "Height",
            "type": "integer"
          },
          "ops": {
            "default": [],
            "items": {
              "type": "object"
            },
            "title": "Ops",
            "type": "array"
          },
          "polygons": {
            "default": [],
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Polygons",
            "type": "array"
          },
          "width": {
            "title": "Width",
            "type": "integer"
          }
        },
        "required": [
          "width",
          "height"
        ],
        "title": "ComposeIn",
        "type": "object"
      },
      "ConfirmIn": {
        "properties": {
          "apply_proposed": {
            "default": true,
            "title": "Apply Proposed",
            "type": "boolean"
          },
          "reviewer": {
            "default": "error-detect",
            "title": "Reviewer",
            "type": "string"
          },
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          }
        },
        "title": "ConfirmIn",
        "type": "object"
      },
      "ConnectIn": {
        "properties": {
          "ack_hourly_usd": {
            "title": "Ack Hourly Usd",
            "type": "number"
          }
        },
        "required": [
          "ack_hourly_usd"
        ],
        "title": "ConnectIn",
        "type": "object"
      },
      "ConsensusIn": {
        "properties": {
          "auto_paths": {
            "items": {
              "$ref": "#/components/schemas/Detection"
            },
            "title": "Auto Paths",
            "type": "array"
          },
          "fusion": {
            "$ref": "#/components/schemas/Detection"
          },
          "fusion_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fusion Run Id"
          }
        },
        "required": [
          "fusion",
          "auto_paths"
        ],
        "title": "ConsensusIn",
        "type": "object"
      },
      "ConsentIn": {
        "properties": {
          "consent_status": {
            "title": "Consent Status",
            "type": "string"
          },
          "legal_basis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Basis"
          },
          "retention_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retention Until"
          },
          "session_id": {
            "format": "uuid",
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "consent_status"
        ],
        "title": "ConsentIn",
        "type": "object"
      },
      "CooptIn": {
        "properties": {
          "base_latency_ms": {
            "title": "Base Latency Ms",
            "type": "number"
          },
          "base_map50": {
            "title": "Base Map50",
            "type": "number"
          },
          "prune_grid": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prune Grid"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "target",
          "base_latency_ms",
          "base_map50"
        ],
        "title": "CooptIn",
        "type": "object"
      },
      "CostGateIn": {
        "properties": {
          "gpu_hours": {
            "title": "Gpu Hours",
            "type": "number"
          },
          "hourly_usd": {
            "title": "Hourly Usd",
            "type": "number"
          },
          "per_job_cap_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Per Job Cap Usd"
          },
          "spent_usd": {
            "default": 0.0,
            "title": "Spent Usd",
            "type": "number"
          },
          "window_cap_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Window Cap Usd"
          }
        },
        "required": [
          "gpu_hours",
          "hourly_usd"
        ],
        "title": "CostGateIn",
        "type": "object"
      },
      "CreateObjectIn": {
        "properties": {
          "attrs": {
            "default": {},
            "title": "Attrs",
            "type": "object"
          },
          "bbox": {
            "items": {
              "type": "number"
            },
            "title": "Bbox",
            "type": "array"
          },
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "cuboid_3d": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cuboid 3D"
          },
          "idem_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idem Key"
          },
          "job_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Id"
          },
          "keypoints": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Keypoints"
          },
          "mask_polygons": {
            "anyOf": [
              {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mask Polygons"
          },
          "polyline": {
            "anyOf": [
              {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Polyline"
          },
          "rot_deg": {
            "default": 0.0,
            "title": "Rot Deg",
            "type": "number"
          },
          "state": {
            "default": "accepted",
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "class_name",
          "bbox"
        ],
        "title": "CreateObjectIn",
        "type": "object"
      },
      "CropSheetIn": {
        "properties": {
          "cell": {
            "default": 128,
            "title": "Cell",
            "type": "integer"
          },
          "cols": {
            "default": 0,
            "title": "Cols",
            "type": "integer"
          },
          "object_ids": {
            "items": {
              "type": "string"
            },
            "title": "Object Ids",
            "type": "array"
          },
          "pad": {
            "default": 0.15,
            "title": "Pad",
            "type": "number"
          }
        },
        "required": [
          "object_ids"
        ],
        "title": "CropSheetIn",
        "type": "object"
      },
      "CrossCamIn": {
        "properties": {
          "high": {
            "default": 0.75,
            "title": "High",
            "type": "number"
          },
          "min_vis": {
            "default": 0.5,
            "title": "Min Vis",
            "type": "number"
          },
          "tol_ms": {
            "default": 20,
            "title": "Tol Ms",
            "type": "integer"
          }
        },
        "title": "CrossCamIn",
        "type": "object"
      },
      "Cuboid3DEdit": {
        "properties": {
          "attrs": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attrs"
          },
          "center": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Center"
          },
          "class_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Id"
          },
          "dims": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dims"
          },
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          },
          "ground_snap": {
            "default": false,
            "title": "Ground Snap",
            "type": "boolean"
          },
          "pitch": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pitch"
          },
          "roll": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Roll"
          },
          "yaw": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Yaw"
          }
        },
        "title": "Cuboid3DEdit",
        "type": "object"
      },
      "Cuboid3DIn": {
        "properties": {
          "attrs": {
            "title": "Attrs",
            "type": "object"
          },
          "center": {
            "items": {
              "type": "number"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Center",
            "type": "array"
          },
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "dims": {
            "items": {
              "type": "number"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Dims",
            "type": "array"
          },
          "ground_snap": {
            "default": true,
            "title": "Ground Snap",
            "type": "boolean"
          },
          "object_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Object Id"
          },
          "pitch": {
            "default": 0.0,
            "title": "Pitch",
            "type": "number"
          },
          "roll": {
            "default": 0.0,
            "title": "Roll",
            "type": "number"
          },
          "yaw": {
            "default": 0.0,
            "title": "Yaw",
            "type": "number"
          }
        },
        "required": [
          "class_id",
          "center",
          "dims"
        ],
        "title": "Cuboid3DIn",
        "type": "object"
      },
      "CuboidIn": {
        "properties": {
          "high": {
            "default": 0.6,
            "title": "High",
            "type": "number"
          },
          "min_iou": {
            "default": 0.35,
            "title": "Min Iou",
            "type": "number"
          }
        },
        "title": "CuboidIn",
        "type": "object"
      },
      "CuboidProjectionOut": {
        "description": "A cuboid's eight corners projected onto the camera image, so it can be drawn over the 2D frame.",
        "properties": {
          "any_in_image": {
            "title": "Any In Image",
            "type": "boolean"
          },
          "corners_uv": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Corners Uv",
            "type": "array"
          },
          "edges": {
            "items": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            "title": "Edges",
            "type": "array"
          },
          "object_id": {
            "title": "Object Id",
            "type": "string"
          }
        },
        "required": [
          "object_id",
          "corners_uv",
          "edges",
          "any_in_image"
        ],
        "title": "CuboidProjectionOut",
        "type": "object"
      },
      "CycleIn": {
        "properties": {
          "dry_run": {
            "default": true,
            "title": "Dry Run",
            "type": "boolean"
          },
          "max_frames": {
            "default": 25,
            "title": "Max Frames",
            "type": "integer"
          },
          "retrain": {
            "default": false,
            "title": "Retrain",
            "type": "boolean"
          }
        },
        "title": "CycleIn",
        "type": "object"
      },
      "DatasheetIn": {
        "properties": {
          "gold_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gold Id"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "DatasheetIn",
        "type": "object"
      },
      "DetectIn": {
        "properties": {
          "kinds": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kinds"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "DetectIn",
        "type": "object"
      },
      "Detection": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "title": "Bbox",
            "type": "array"
          },
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "conf": {
            "default": 0.0,
            "title": "Conf",
            "type": "number"
          },
          "path": {
            "title": "Path",
            "type": "string"
          }
        },
        "required": [
          "path",
          "class_id",
          "bbox"
        ],
        "title": "Detection",
        "type": "object"
      },
      "DeviceIn": {
        "properties": {
          "artifact_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Id"
          },
          "device_id": {
            "title": "Device Id",
            "type": "string"
          },
          "fleet": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fleet"
          },
          "hardware": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hardware"
          },
          "meta": {
            "default": {},
            "title": "Meta",
            "type": "object"
          },
          "model_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "runtime": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Runtime"
          }
        },
        "required": [
          "device_id"
        ],
        "title": "DeviceIn",
        "type": "object"
      },
      "DisableMfaIn": {
        "properties": {
          "password": {
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "title": "DisableMfaIn",
        "type": "object"
      },
      "DisconnectIn": {
        "properties": {
          "pause": {
            "default": false,
            "title": "Pause",
            "type": "boolean"
          }
        },
        "title": "DisconnectIn",
        "type": "object"
      },
      "DriftInvestigateIn": {
        "properties": {
          "cur_sessions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cur Sessions"
          },
          "ref_sessions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Sessions"
          }
        },
        "title": "DriftInvestigateIn",
        "type": "object"
      },
      "DrivableIn": {
        "properties": {
          "classes": {
            "title": "Classes",
            "type": "object"
          },
          "height": {
            "title": "Height",
            "type": "integer"
          },
          "width": {
            "title": "Width",
            "type": "integer"
          }
        },
        "required": [
          "classes",
          "width",
          "height"
        ],
        "title": "DrivableIn",
        "type": "object"
      },
      "DrivingEventIn": {
        "description": "A human-authored driving event. Validated against the taxonomy before it is written.",
        "properties": {
          "frame_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Frame Id"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "payload": {
            "default": {},
            "title": "Payload",
            "type": "object"
          },
          "t_end_ns": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "T End Ns"
          },
          "t_start_ns": {
            "title": "T Start Ns",
            "type": "integer"
          },
          "track_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Track Id"
          }
        },
        "required": [
          "kind",
          "t_start_ns"
        ],
        "title": "DrivingEventIn",
        "type": "object"
      },
      "EfficiencyIn": {
        "properties": {
          "entries": {
            "items": {
              "type": "object"
            },
            "title": "Entries",
            "type": "array"
          }
        },
        "required": [
          "entries"
        ],
        "title": "EfficiencyIn",
        "type": "object"
      },
      "EngageIn": {
        "properties": {
          "reason": {
            "default": "manual kill switch",
            "title": "Reason",
            "type": "string"
          },
          "task": {
            "default": "detection",
            "title": "Task",
            "type": "string"
          }
        },
        "title": "EngageIn",
        "type": "object"
      },
      "EnqueueIn": {
        "properties": {
          "item_ids": {
            "items": {},
            "title": "Item Ids",
            "type": "array"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "item_ids",
          "user_id"
        ],
        "title": "EnqueueIn",
        "type": "object"
      },
      "EraseIn": {
        "properties": {
          "dry_run": {
            "default": true,
            "title": "Dry Run",
            "type": "boolean"
          },
          "reason": {
            "default": "data subject erasure request",
            "title": "Reason",
            "type": "string"
          },
          "session_id": {
            "format": "uuid",
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": [
          "session_id"
        ],
        "title": "EraseIn",
        "type": "object"
      },
      "ErrorSweepIn": {
        "properties": {
          "kinds": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kinds"
          },
          "max_sessions": {
            "default": 10,
            "title": "Max Sessions",
            "type": "integer"
          }
        },
        "title": "ErrorSweepIn",
        "type": "object"
      },
      "EventEdit": {
        "properties": {
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "payload": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payload"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "t_end_ns": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "T End Ns"
          },
          "t_start_ns": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "T Start Ns"
          }
        },
        "title": "EventEdit",
        "type": "object"
      },
      "EventIn": {
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "modality": {
            "title": "Modality",
            "type": "string"
          },
          "payload": {
            "default": {},
            "title": "Payload",
            "type": "object"
          },
          "t_end_ns": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "T End Ns"
          },
          "t_start_ns": {
            "title": "T Start Ns",
            "type": "integer"
          }
        },
        "required": [
          "kind",
          "modality",
          "t_start_ns"
        ],
        "title": "EventIn",
        "type": "object"
      },
      "ExperimentIn": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "hypothesis": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hypothesis"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          },
          "task_type": {
            "default": "detection",
            "title": "Task Type",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "ExperimentIn",
        "type": "object"
      },
      "ExplainIn": {
        "description": "One hypothetical detection, for trying the reasoner without running a session.",
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "title": "Bbox",
            "type": "array"
          },
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "conf": {
            "default": 0.8,
            "title": "Conf",
            "type": "number"
          },
          "depth_m": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depth M"
          },
          "focal_px": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focal Px"
          },
          "frame_h": {
            "default": 960,
            "title": "Frame H",
            "type": "integer"
          },
          "frame_w": {
            "default": 1280,
            "title": "Frame W",
            "type": "integer"
          },
          "proposals": {
            "default": [],
            "items": {
              "type": "object"
            },
            "title": "Proposals",
            "type": "array"
          },
          "scene": {
            "default": {},
            "title": "Scene",
            "type": "object"
          }
        },
        "required": [
          "class_name",
          "bbox"
        ],
        "title": "ExplainIn",
        "type": "object"
      },
      "Export3DIn": {
        "properties": {
          "class_names": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Class Names",
            "type": "array"
          },
          "export_clouds": {
            "default": false,
            "title": "Export Clouds",
            "type": "boolean"
          },
          "formats": {
            "default": [
              "openlabel",
              "nuscenes",
              "kitti",
              "waymo"
            ],
            "items": {
              "type": "string"
            },
            "title": "Formats",
            "type": "array"
          },
          "min_conf": {
            "default": 0.0,
            "title": "Min Conf",
            "type": "number"
          },
          "session_ids": {
            "default": [],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Session Ids",
            "type": "array"
          },
          "states": {
            "default": [
              "accepted",
              "auto_accept"
            ],
            "items": {
              "type": "string"
            },
            "title": "States",
            "type": "array"
          }
        },
        "title": "Export3DIn",
        "type": "object"
      },
      "ExternalModelIn": {
        "properties": {
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "task": {
            "default": "detection",
            "title": "Task",
            "type": "string"
          }
        },
        "required": [
          "model_version"
        ],
        "title": "ExternalModelIn",
        "type": "object"
      },
      "ExternalRunIn": {
        "properties": {
          "code_sha": {
            "default": "external",
            "title": "Code Sha",
            "type": "string"
          },
          "gold_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gold Id"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "params": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Params"
          },
          "predictions": {
            "items": {
              "type": "object"
            },
            "title": "Predictions",
            "type": "array"
          }
        },
        "required": [
          "model_version",
          "predictions"
        ],
        "title": "ExternalRunIn",
        "type": "object"
      },
      "FitThresholdsIn": {
        "properties": {
          "activate": {
            "default": false,
            "title": "Activate",
            "type": "boolean"
          },
          "min_support": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Support"
          },
          "n_boot": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "N Boot"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "run_id"
        ],
        "title": "FitThresholdsIn",
        "type": "object"
      },
      "FlywheelIn": {
        "properties": {
          "auto_accept_conf": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Accept Conf"
          },
          "dry_run": {
            "default": true,
            "title": "Dry Run",
            "type": "boolean"
          },
          "max_frames": {
            "default": 25,
            "title": "Max Frames",
            "type": "integer"
          },
          "require_agreement": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Require Agreement"
          },
          "review_low": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Low"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "ticks": {
            "default": 1,
            "title": "Ticks",
            "type": "integer"
          }
        },
        "title": "FlywheelIn",
        "type": "object"
      },
      "FrameContextIn": {
        "description": "Frame-level facts a person is asserting. Partial: only the keys sent are touched, so setting the\nweather does not clear somebody else's note about the lighting.",
        "properties": {
          "attrs": {
            "title": "Attrs",
            "type": "object"
          }
        },
        "required": [
          "attrs"
        ],
        "title": "FrameContextIn",
        "type": "object"
      },
      "FreshIn": {
        "properties": {
          "auto_accept_conf": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Accept Conf"
          },
          "commit": {
            "default": false,
            "title": "Commit",
            "type": "boolean"
          },
          "require_agreement": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Require Agreement"
          },
          "review_low": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Low"
          }
        },
        "title": "FreshIn",
        "type": "object"
      },
      "GateBatchIn": {
        "properties": {
          "budget": {
            "default": 500,
            "title": "Budget",
            "type": "integer"
          },
          "jobs_of": {
            "default": 50,
            "title": "Jobs Of",
            "type": "integer"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          }
        },
        "required": [
          "project_id"
        ],
        "title": "GateBatchIn",
        "type": "object"
      },
      "GateIn": {
        "properties": {
          "baseline_latency": {
            "title": "Baseline Latency",
            "type": "object"
          },
          "candidate_eval": {
            "title": "Candidate Eval",
            "type": "object"
          },
          "candidate_latency": {
            "title": "Candidate Latency",
            "type": "object"
          },
          "champion_eval": {
            "title": "Champion Eval",
            "type": "object"
          },
          "protected_slices": {
            "items": {
              "type": "string"
            },
            "title": "Protected Slices",
            "type": "array"
          }
        },
        "required": [
          "baseline_latency",
          "candidate_latency",
          "champion_eval",
          "candidate_eval",
          "protected_slices"
        ],
        "title": "GateIn",
        "type": "object"
      },
      "GoldSealIn": {
        "properties": {
          "cities": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cities"
          },
          "class_names": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Names"
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Limit"
          },
          "name": {
            "default": "fleet-v1",
            "title": "Name",
            "type": "string"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "GoldSealIn",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "IaaIn": {
        "properties": {
          "iou_thresh": {
            "default": 0.5,
            "title": "Iou Thresh",
            "type": "number"
          },
          "set_a": {
            "items": {},
            "title": "Set A",
            "type": "array"
          },
          "set_b": {
            "items": {},
            "title": "Set B",
            "type": "array"
          }
        },
        "required": [
          "set_a",
          "set_b"
        ],
        "title": "IaaIn",
        "type": "object"
      },
      "ImportCalibIn": {
        "properties": {
          "calib_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calib Text"
          },
          "cam_id": {
            "title": "Cam Id",
            "type": "string"
          },
          "camera_intrinsic": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Camera Intrinsic"
          },
          "dist": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dist"
          },
          "format": {
            "title": "Format",
            "type": "string"
          },
          "ref_height": {
            "default": 1080,
            "title": "Ref Height",
            "type": "integer"
          },
          "ref_width": {
            "default": 1920,
            "title": "Ref Width",
            "type": "integer"
          },
          "translation": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Translation"
          }
        },
        "required": [
          "cam_id",
          "format"
        ],
        "title": "ImportCalibIn",
        "type": "object"
      },
      "ImportStartIn": {
        "properties": {
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "format": {
            "title": "Format",
            "type": "string"
          },
          "options": {
            "default": {},
            "title": "Options",
            "type": "object"
          },
          "source_uri": {
            "title": "Source Uri",
            "type": "string"
          },
          "target_vehicle": {
            "default": "IMPORT-01",
            "title": "Target Vehicle",
            "type": "string"
          }
        },
        "required": [
          "format",
          "source_uri"
        ],
        "title": "ImportStartIn",
        "type": "object"
      },
      "IngestIn": {
        "properties": {
          "model_output": {
            "items": {
              "type": "object"
            },
            "title": "Model Output",
            "type": "array"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "session_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Ids"
          }
        },
        "required": [
          "model_version",
          "model_output"
        ],
        "title": "IngestIn",
        "type": "object"
      },
      "IntentSetIn": {
        "properties": {
          "intent": {
            "title": "Intent",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "status": {
            "default": "confirmed",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "intent",
          "kind"
        ],
        "title": "IntentSetIn",
        "type": "object"
      },
      "IssueIn": {
        "properties": {
          "body": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Body"
          },
          "frame_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Frame Id"
          },
          "job_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Id"
          },
          "kind": {
            "default": "comment",
            "title": "Kind",
            "type": "string"
          },
          "object_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Object Id"
          },
          "region": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          }
        },
        "title": "IssueIn",
        "type": "object"
      },
      "KeyframeIn": {
        "properties": {
          "bbox": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bbox"
          },
          "is_keyframe": {
            "default": true,
            "title": "Is Keyframe",
            "type": "boolean"
          }
        },
        "title": "KeyframeIn",
        "type": "object"
      },
      "LaneIn": {
        "properties": {
          "control_points": {
            "items": {},
            "title": "Control Points",
            "type": "array"
          },
          "is_ego": {
            "default": false,
            "title": "Is Ego",
            "type": "boolean"
          },
          "lane_type": {
            "default": "solid",
            "title": "Lane Type",
            "type": "string"
          }
        },
        "required": [
          "control_points"
        ],
        "title": "LaneIn",
        "type": "object"
      },
      "LayoutIn": {
        "properties": {
          "is_default": {
            "default": false,
            "title": "Is Default",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "panels": {
            "items": {},
            "title": "Panels",
            "type": "array"
          }
        },
        "required": [
          "name",
          "panels"
        ],
        "title": "LayoutIn",
        "type": "object"
      },
      "LineageRevertIn": {
        "properties": {
          "from_name": {
            "title": "From Name",
            "type": "string"
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Limit"
          },
          "to_name": {
            "title": "To Name",
            "type": "string"
          }
        },
        "required": [
          "from_name",
          "to_name"
        ],
        "title": "LineageRevertIn",
        "type": "object"
      },
      "LinkBody": {
        "properties": {
          "group_id": {
            "title": "Group Id",
            "type": "string"
          },
          "object_ids": {
            "items": {
              "type": "string"
            },
            "title": "Object Ids",
            "type": "array"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "source": {
            "default": "manual",
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "group_id",
          "object_ids"
        ],
        "title": "LinkBody",
        "type": "object"
      },
      "LoginIn": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "password": {
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "name",
          "password"
        ],
        "title": "LoginIn",
        "type": "object"
      },
      "ManeuverIn": {
        "properties": {
          "trajectory": {
            "items": {
              "type": "object"
            },
            "title": "Trajectory",
            "type": "array"
          }
        },
        "required": [
          "trajectory"
        ],
        "title": "ManeuverIn",
        "type": "object"
      },
      "MaskIn": {
        "properties": {
          "height": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Height"
          },
          "polygons": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Polygons",
            "type": "array"
          },
          "width": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Width"
          }
        },
        "required": [
          "polygons"
        ],
        "title": "MaskIn",
        "type": "object"
      },
      "MergeIn": {
        "properties": {
          "from_id": {
            "title": "From Id",
            "type": "integer"
          },
          "to_id": {
            "title": "To Id",
            "type": "integer"
          }
        },
        "required": [
          "from_id",
          "to_id"
        ],
        "title": "MergeIn",
        "type": "object"
      },
      "MergeTrackIn": {
        "properties": {
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          },
          "from_track_id": {
            "format": "uuid",
            "title": "From Track Id",
            "type": "string"
          }
        },
        "required": [
          "from_track_id"
        ],
        "title": "MergeTrackIn",
        "type": "object"
      },
      "MetricElementIn": {
        "properties": {
          "heading_rad": {
            "default": 0.0,
            "title": "Heading Rad",
            "type": "number"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "points_ego": {
            "items": {},
            "title": "Points Ego",
            "type": "array"
          },
          "ref_lat": {
            "title": "Ref Lat",
            "type": "number"
          },
          "ref_lon": {
            "title": "Ref Lon",
            "type": "number"
          }
        },
        "required": [
          "kind",
          "points_ego",
          "ref_lat",
          "ref_lon"
        ],
        "title": "MetricElementIn",
        "type": "object"
      },
      "MfaIn": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "mfa_handle": {
            "title": "Mfa Handle",
            "type": "string"
          }
        },
        "required": [
          "mfa_handle",
          "code"
        ],
        "title": "MfaIn",
        "type": "object"
      },
      "MineIn": {
        "properties": {
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "ttc_thresh": {
            "default": 2.5,
            "title": "Ttc Thresh",
            "type": "number"
          }
        },
        "title": "MineIn",
        "type": "object"
      },
      "MintIn": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "expires_in_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires In Days"
          },
          "name": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "role": {
            "default": "annotator",
            "title": "Role",
            "type": "string"
          },
          "scopes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scopes"
          }
        },
        "required": [
          "name"
        ],
        "title": "MintIn",
        "type": "object"
      },
      "MonoDepthIn": {
        "properties": {
          "box": {
            "items": {
              "type": "number"
            },
            "title": "Box",
            "type": "array"
          },
          "cam_height_m": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cam Height M"
          },
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "cy": {
            "title": "Cy",
            "type": "number"
          },
          "focal_px": {
            "title": "Focal Px",
            "type": "number"
          },
          "pitch_rad": {
            "default": 0.0,
            "title": "Pitch Rad",
            "type": "number"
          }
        },
        "required": [
          "box",
          "class_id",
          "focal_px",
          "cy"
        ],
        "title": "MonoDepthIn",
        "type": "object"
      },
      "MultipartAbortIn": {
        "properties": {
          "key": {
            "title": "Key",
            "type": "string"
          },
          "upload_id": {
            "title": "Upload Id",
            "type": "string"
          }
        },
        "required": [
          "key",
          "upload_id"
        ],
        "title": "MultipartAbortIn",
        "type": "object"
      },
      "MultipartCompleteIn": {
        "properties": {
          "key": {
            "title": "Key",
            "type": "string"
          },
          "parts": {
            "items": {
              "type": "object"
            },
            "title": "Parts",
            "type": "array"
          },
          "upload_id": {
            "title": "Upload Id",
            "type": "string"
          }
        },
        "required": [
          "key",
          "upload_id",
          "parts"
        ],
        "title": "MultipartCompleteIn",
        "type": "object"
      },
      "MultipartInitIn": {
        "properties": {
          "content_type": {
            "default": "application/octet-stream",
            "title": "Content Type",
            "type": "string"
          },
          "filename": {
            "title": "Filename",
            "type": "string"
          }
        },
        "required": [
          "filename"
        ],
        "title": "MultipartInitIn",
        "type": "object"
      },
      "MultipartSignIn": {
        "properties": {
          "key": {
            "title": "Key",
            "type": "string"
          },
          "part_number": {
            "title": "Part Number",
            "type": "integer"
          },
          "upload_id": {
            "title": "Upload Id",
            "type": "string"
          }
        },
        "required": [
          "key",
          "upload_id",
          "part_number"
        ],
        "title": "MultipartSignIn",
        "type": "object"
      },
      "NewClassIn": {
        "properties": {
          "india": {
            "default": true,
            "title": "India",
            "type": "boolean"
          },
          "l0": {
            "default": "object",
            "title": "L0",
            "type": "string"
          },
          "l1": {
            "default": "custom",
            "title": "L1",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "NewClassIn",
        "type": "object"
      },
      "NlEditApplyIn": {
        "properties": {
          "command": {
            "title": "Command",
            "type": "string"
          },
          "object_ids": {
            "items": {
              "type": "string"
            },
            "title": "Object Ids",
            "type": "array"
          }
        },
        "required": [
          "command",
          "object_ids"
        ],
        "title": "NlEditApplyIn",
        "type": "object"
      },
      "NlEditPreviewIn": {
        "properties": {
          "command": {
            "title": "Command",
            "type": "string"
          },
          "frame_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Frame Id"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "use_vlm": {
            "default": false,
            "title": "Use Vlm",
            "type": "boolean"
          }
        },
        "required": [
          "command"
        ],
        "title": "NlEditPreviewIn",
        "type": "object"
      },
      "ObjectDetail": {
        "properties": {
          "attrs": {
            "title": "Attrs",
            "type": "object"
          },
          "bbox": {
            "items": {
              "type": "number"
            },
            "title": "Bbox",
            "type": "array"
          },
          "cam_id": {
            "title": "Cam Id",
            "type": "string"
          },
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "conf": {
            "title": "Conf",
            "type": "number"
          },
          "cuboid_3d": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cuboid 3D"
          },
          "frame_id": {
            "title": "Frame Id",
            "type": "string"
          },
          "height": {
            "title": "Height",
            "type": "integer"
          },
          "image_url": {
            "title": "Image Url",
            "type": "string"
          },
          "keypoints": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Keypoints"
          },
          "mask_polygons": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Mask Polygons",
            "type": "array"
          },
          "object_id": {
            "title": "Object Id",
            "type": "string"
          },
          "ocr_conf": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ocr Conf"
          },
          "ocr_lang": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ocr Lang"
          },
          "ocr_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ocr Text"
          },
          "polyline": {
            "anyOf": [
              {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Polyline"
          },
          "provenance": {
            "title": "Provenance",
            "type": "object"
          },
          "rot_deg": {
            "default": 0.0,
            "title": "Rot Deg",
            "type": "number"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "sign_category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Category"
          },
          "sign_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Type"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "track_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Track Id"
          },
          "ts_ns": {
            "title": "Ts Ns",
            "type": "integer"
          },
          "version": {
            "default": 1,
            "title": "Version",
            "type": "integer"
          },
          "width": {
            "title": "Width",
            "type": "integer"
          }
        },
        "required": [
          "object_id",
          "frame_id",
          "session_id",
          "ts_ns",
          "cam_id",
          "image_url",
          "width",
          "height",
          "class_id",
          "class_name",
          "bbox",
          "mask_polygons",
          "attrs",
          "conf",
          "state",
          "source",
          "provenance"
        ],
        "title": "ObjectDetail",
        "type": "object"
      },
      "OddIn": {
        "properties": {
          "fleet_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Fleet Counts",
            "type": "object"
          },
          "min_gap": {
            "default": 0.02,
            "title": "Min Gap",
            "type": "number"
          },
          "target_odd": {
            "additionalProperties": {
              "type": "number"
            },
            "title": "Target Odd",
            "type": "object"
          }
        },
        "required": [
          "fleet_counts",
          "target_odd"
        ],
        "title": "OddIn",
        "type": "object"
      },
      "OntologyPromotion": {
        "properties": {
          "from_class": {
            "title": "From Class",
            "type": "string"
          },
          "to_class": {
            "title": "To Class",
            "type": "string"
          }
        },
        "required": [
          "from_class",
          "to_class"
        ],
        "title": "OntologyPromotion",
        "type": "object"
      },
      "OpenMRIn": {
        "properties": {
          "author_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Author Id"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "source_branch": {
            "title": "Source Branch",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title",
          "source_branch"
        ],
        "title": "OpenMRIn",
        "type": "object"
      },
      "OpsAskIn": {
        "properties": {
          "confirm": {
            "default": false,
            "title": "Confirm",
            "type": "boolean"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "OpsAskIn",
        "type": "object"
      },
      "OverrideIn": {
        "properties": {
          "decision": {
            "title": "Decision",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision",
          "reason"
        ],
        "title": "OverrideIn",
        "type": "object"
      },
      "ParityIn": {
        "properties": {
          "heuristic_metrics": {
            "title": "Heuristic Metrics",
            "type": "object"
          },
          "learned_metrics": {
            "title": "Learned Metrics",
            "type": "object"
          },
          "margin": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Margin"
          }
        },
        "required": [
          "learned_metrics",
          "heuristic_metrics"
        ],
        "title": "ParityIn",
        "type": "object"
      },
      "PendingSetupIn": {
        "properties": {
          "mfa_handle": {
            "title": "Mfa Handle",
            "type": "string"
          }
        },
        "required": [
          "mfa_handle"
        ],
        "title": "PendingSetupIn",
        "type": "object"
      },
      "ProjectIn": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "gold_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gold Id"
          },
          "honeypot_frac": {
            "default": 0.0,
            "title": "Honeypot Frac",
            "type": "number"
          },
          "min_honeypot_accuracy": {
            "default": 0.9,
            "title": "Min Honeypot Accuracy",
            "type": "number"
          },
          "modality": {
            "default": "image",
            "title": "Modality",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "ProjectIn",
        "type": "object"
      },
      "ProjectionIn": {
        "properties": {
          "kind": {
            "default": "object",
            "title": "Kind",
            "type": "string"
          },
          "limit": {
            "default": 50000,
            "title": "Limit",
            "type": "integer"
          },
          "method": {
            "default": "umap",
            "title": "Method",
            "type": "string"
          },
          "min_cluster_size": {
            "default": 15,
            "title": "Min Cluster Size",
            "type": "integer"
          },
          "min_dist": {
            "default": 0.1,
            "title": "Min Dist",
            "type": "number"
          },
          "n_neighbors": {
            "default": 15,
            "title": "N Neighbors",
            "type": "integer"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "seed": {
            "default": 42,
            "title": "Seed",
            "type": "integer"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "space": {
            "default": "dino",
            "title": "Space",
            "type": "string"
          }
        },
        "title": "ProjectionIn",
        "type": "object"
      },
      "Propagate4dIn": {
        "properties": {
          "keyframe_box": {
            "items": {
              "type": "number"
            },
            "title": "Keyframe Box",
            "type": "array"
          },
          "known": {
            "anyOf": [
              {
                "additionalProperties": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Known"
          },
          "n_frames": {
            "title": "N Frames",
            "type": "integer"
          },
          "velocity": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Velocity"
          }
        },
        "required": [
          "keyframe_box",
          "n_frames"
        ],
        "title": "Propagate4dIn",
        "type": "object"
      },
      "PropagateIn": {
        "properties": {
          "drift": {
            "default": 0.62,
            "title": "Drift",
            "type": "number"
          },
          "high": {
            "default": 0.8,
            "title": "High",
            "type": "number"
          },
          "span": {
            "default": 24,
            "title": "Span",
            "type": "integer"
          }
        },
        "title": "PropagateIn",
        "type": "object"
      },
      "RadarIn": {
        "properties": {
          "camera_velocity": {
            "title": "Camera Velocity",
            "type": "number"
          },
          "ego_speed": {
            "default": 0.0,
            "title": "Ego Speed",
            "type": "number"
          },
          "radar_returns": {
            "items": {
              "type": "object"
            },
            "title": "Radar Returns",
            "type": "array"
          },
          "track_box": {
            "items": {
              "type": "number"
            },
            "title": "Track Box",
            "type": "array"
          }
        },
        "required": [
          "track_box",
          "camera_velocity",
          "radar_returns"
        ],
        "title": "RadarIn",
        "type": "object"
      },
      "RankIn": {
        "properties": {
          "items": {
            "items": {
              "type": "object"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "RankIn",
        "type": "object"
      },
      "ReanalyzeAllIn": {
        "properties": {
          "max_frames": {
            "default": 500,
            "title": "Max Frames",
            "type": "integer"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "ReanalyzeAllIn",
        "type": "object"
      },
      "RecognizeIn": {
        "properties": {
          "camera_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Camera Id"
          },
          "frame_id": {
            "title": "Frame Id",
            "type": "string"
          },
          "regions": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Regions",
            "type": "array"
          }
        },
        "required": [
          "frame_id",
          "regions"
        ],
        "title": "RecognizeIn",
        "type": "object"
      },
      "ReconcileIn": {
        "properties": {
          "apply": {
            "default": false,
            "title": "Apply",
            "type": "boolean"
          },
          "apply_min_conf": {
            "default": 0.55,
            "title": "Apply Min Conf",
            "type": "number"
          },
          "object_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Object Ids"
          }
        },
        "title": "ReconcileIn",
        "type": "object"
      },
      "RecoverIn": {
        "properties": {
          "cam_id": {
            "title": "Cam Id",
            "type": "string"
          },
          "drift_delta": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Drift Delta",
            "type": "array"
          },
          "n_correspondences": {
            "title": "N Correspondences",
            "type": "integer"
          },
          "nominal": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Nominal",
            "type": "array"
          },
          "residual_px": {
            "title": "Residual Px",
            "type": "number"
          },
          "severity": {
            "default": "drift_detected",
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "cam_id",
          "nominal",
          "drift_delta",
          "residual_px",
          "n_correspondences"
        ],
        "title": "RecoverIn",
        "type": "object"
      },
      "RedactionProofIn": {
        "properties": {
          "frame_ids": {
            "items": {
              "type": "string"
            },
            "title": "Frame Ids",
            "type": "array"
          },
          "method_version": {
            "default": "",
            "title": "Method Version",
            "type": "string"
          },
          "release_commit": {
            "title": "Release Commit",
            "type": "string"
          }
        },
        "required": [
          "release_commit",
          "frame_ids"
        ],
        "title": "RedactionProofIn",
        "type": "object"
      },
      "RegionOcrIn": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "title": "Bbox",
            "type": "array"
          },
          "pad": {
            "default": 0.02,
            "title": "Pad",
            "type": "number"
          },
          "uri": {
            "title": "Uri",
            "type": "string"
          }
        },
        "required": [
          "uri",
          "bbox"
        ],
        "title": "RegionOcrIn",
        "type": "object"
      },
      "RegisterIn": {
        "properties": {
          "dataset_commit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dataset Commit"
          },
          "gold_metrics": {
            "title": "Gold Metrics",
            "type": "object"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "task": {
            "default": "detection",
            "title": "Task",
            "type": "string"
          },
          "weights_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weights Uri"
          }
        },
        "required": [
          "model_version",
          "gold_metrics"
        ],
        "title": "RegisterIn",
        "type": "object"
      },
      "RelabelAllIn": {
        "properties": {
          "margin": {
            "default": 0.15,
            "title": "Margin",
            "type": "number"
          },
          "max_frames": {
            "default": 200,
            "title": "Max Frames",
            "type": "integer"
          },
          "min_conf": {
            "default": 0.45,
            "title": "Min Conf",
            "type": "number"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "RelabelAllIn",
        "type": "object"
      },
      "RelabelIn": {
        "properties": {
          "margin": {
            "default": 0.15,
            "title": "Margin",
            "type": "number"
          },
          "min_conf": {
            "default": 0.45,
            "title": "Min Conf",
            "type": "number"
          }
        },
        "title": "RelabelIn",
        "type": "object"
      },
      "RelabelStartIn": {
        "properties": {
          "compute_target": {
            "default": "local",
            "title": "Compute Target",
            "type": "string"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "ontology_promotion": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OntologyPromotion"
              },
              {
                "type": "null"
              }
            ]
          },
          "session_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Ids"
          }
        },
        "required": [
          "model_version"
        ],
        "title": "RelabelStartIn",
        "type": "object"
      },
      "RelabelTrackIn": {
        "properties": {
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          },
          "origin_object_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Object Id"
          },
          "reviewer": {
            "default": "anon",
            "title": "Reviewer",
            "type": "string"
          },
          "state": {
            "default": "review",
            "title": "State",
            "type": "string"
          },
          "time_spent_ms": {
            "default": 0,
            "title": "Time Spent Ms",
            "type": "integer"
          }
        },
        "required": [
          "class_name"
        ],
        "title": "RelabelTrackIn",
        "type": "object"
      },
      "RelateIn": {
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "to_object_id": {
            "title": "To Object Id",
            "type": "string"
          }
        },
        "required": [
          "to_object_id",
          "kind"
        ],
        "title": "RelateIn",
        "type": "object"
      },
      "RelationshipOut": {
        "description": "One directed relationship on a frame (the India case is rider_of on a two-wheeler).",
        "properties": {
          "from_object_id": {
            "title": "From Object Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "relationship_id": {
            "title": "Relationship Id",
            "type": "string"
          },
          "to_object_id": {
            "title": "To Object Id",
            "type": "string"
          }
        },
        "required": [
          "relationship_id",
          "from_object_id",
          "to_object_id",
          "kind"
        ],
        "title": "RelationshipOut",
        "type": "object"
      },
      "RenameIn": {
        "properties": {
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "new_name": {
            "title": "New Name",
            "type": "string"
          }
        },
        "required": [
          "class_id",
          "new_name"
        ],
        "title": "RenameIn",
        "type": "object"
      },
      "ReproIn": {
        "properties": {
          "run_a": {
            "title": "Run A",
            "type": "object"
          },
          "run_b": {
            "title": "Run B",
            "type": "object"
          }
        },
        "required": [
          "run_a",
          "run_b"
        ],
        "title": "ReproIn",
        "type": "object"
      },
      "ResetIn": {
        "properties": {
          "password": {
            "title": "Password",
            "type": "string"
          },
          "token": {
            "title": "Token",
            "type": "string"
          }
        },
        "required": [
          "token",
          "password"
        ],
        "title": "ResetIn",
        "type": "object"
      },
      "ResetRequestIn": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "ResetRequestIn",
        "type": "object"
      },
      "RetentionSweepIn": {
        "properties": {
          "dry_run": {
            "default": true,
            "title": "Dry Run",
            "type": "boolean"
          },
          "limit": {
            "default": 50,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "RetentionSweepIn",
        "type": "object"
      },
      "RetrainIn": {
        "properties": {
          "base_weights": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Weights"
          },
          "compute_target": {
            "default": "cloud",
            "title": "Compute Target",
            "type": "string"
          },
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          }
        },
        "title": "RetrainIn",
        "type": "object"
      },
      "ReviewIn": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "attrs": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attrs"
          },
          "bbox": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bbox"
          },
          "class_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Name"
          },
          "cuboid_3d": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cuboid 3D"
          },
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          },
          "keypoints": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Keypoints"
          },
          "mask_polygons": {
            "anyOf": [
              {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mask Polygons"
          },
          "polyline": {
            "anyOf": [
              {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Polyline"
          },
          "reviewer": {
            "default": "anon",
            "title": "Reviewer",
            "type": "string"
          },
          "rot_deg": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rot Deg"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "time_spent_ms": {
            "default": 0,
            "title": "Time Spent Ms",
            "type": "integer"
          }
        },
        "required": [
          "action"
        ],
        "title": "ReviewIn",
        "type": "object"
      },
      "ReviewerIn": {
        "properties": {
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": [
          "reviewer_id"
        ],
        "title": "ReviewerIn",
        "type": "object"
      },
      "RolloutIn": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "current_state": {
            "title": "Current State",
            "type": "string"
          }
        },
        "required": [
          "current_state",
          "action"
        ],
        "title": "RolloutIn",
        "type": "object"
      },
      "RtspIn": {
        "properties": {
          "camera_id": {
            "title": "Camera Id",
            "type": "string"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "heartbeat_seconds": {
            "default": 30.0,
            "title": "Heartbeat Seconds",
            "type": "number"
          },
          "max_frames": {
            "default": 500,
            "title": "Max Frames",
            "type": "integer"
          },
          "max_seconds": {
            "default": 300.0,
            "title": "Max Seconds",
            "type": "number"
          },
          "motion_threshold": {
            "default": 6.0,
            "title": "Motion Threshold",
            "type": "number"
          },
          "pack_id": {
            "default": "sec",
            "title": "Pack Id",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "url",
          "camera_id"
        ],
        "title": "RtspIn",
        "type": "object"
      },
      "RulingIn": {
        "description": "A human decision on a candidate. note is free text kept on the event for the next reader.",
        "properties": {
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "title": "RulingIn",
        "type": "object"
      },
      "SafetyIn": {
        "properties": {
          "near_miss_ttc_s": {
            "default": 2.0,
            "title": "Near Miss Ttc S",
            "type": "number"
          },
          "objects": {
            "items": {
              "type": "object"
            },
            "title": "Objects",
            "type": "array"
          },
          "ttc_horizon_s": {
            "default": 6.0,
            "title": "Ttc Horizon S",
            "type": "number"
          }
        },
        "required": [
          "objects"
        ],
        "title": "SafetyIn",
        "type": "object"
      },
      "SeedAuditIn": {
        "properties": {
          "iou_thr": {
            "default": 0.5,
            "title": "Iou Thr",
            "type": "number"
          },
          "n_frames": {
            "default": 200,
            "title": "N Frames",
            "type": "integer"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "score_thr": {
            "default": 0.25,
            "title": "Score Thr",
            "type": "number"
          },
          "stratify_by": {
            "default": "density",
            "title": "Stratify By",
            "type": "string"
          }
        },
        "required": [
          "run_id"
        ],
        "title": "SeedAuditIn",
        "type": "object"
      },
      "SegmentEditIn": {
        "description": "A human edit to a frame's dense raster.\n\n`replace` distinguishes the two things an annotator can mean. False lays the edit over what is there,\nwhich is what correcting one region means. True treats the payload as the whole frame, which is what\nstarting over means. Defaulting to False keeps the destructive reading behind an explicit choice.",
        "properties": {
          "classes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ClassPolygons"
            },
            "title": "Classes",
            "type": "array"
          },
          "kind": {
            "default": "semantic",
            "title": "Kind",
            "type": "string"
          },
          "replace": {
            "default": false,
            "title": "Replace",
            "type": "boolean"
          }
        },
        "title": "SegmentEditIn",
        "type": "object"
      },
      "SegmentIn": {
        "properties": {
          "box": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Box"
          },
          "frame_id": {
            "title": "Frame Id",
            "type": "string"
          },
          "labels": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Labels"
          },
          "points": {
            "anyOf": [
              {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points"
          },
          "precise": {
            "default": false,
            "title": "Precise",
            "type": "boolean"
          }
        },
        "required": [
          "frame_id"
        ],
        "title": "SegmentIn",
        "type": "object"
      },
      "SelectIn": {
        "properties": {
          "budget_hours": {
            "default": 1.0,
            "title": "Budget Hours",
            "type": "number"
          },
          "dedup_cos": {
            "default": 0.92,
            "title": "Dedup Cos",
            "type": "number"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "SelectIn",
        "type": "object"
      },
      "SetCalibIn": {
        "properties": {
          "cam_specs": {
            "title": "Cam Specs",
            "type": "object"
          },
          "ref_height": {
            "default": 1080,
            "title": "Ref Height",
            "type": "integer"
          },
          "ref_width": {
            "default": 1920,
            "title": "Ref Width",
            "type": "integer"
          },
          "source": {
            "default": "measured",
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "cam_specs"
        ],
        "title": "SetCalibIn",
        "type": "object"
      },
      "SignificanceIn": {
        "properties": {
          "challenger": {
            "items": {
              "type": "number"
            },
            "title": "Challenger",
            "type": "array"
          },
          "champion": {
            "items": {
              "type": "number"
            },
            "title": "Champion",
            "type": "array"
          },
          "n_perm": {
            "default": 2000,
            "title": "N Perm",
            "type": "integer"
          },
          "seed": {
            "default": 12345,
            "title": "Seed",
            "type": "integer"
          }
        },
        "required": [
          "champion",
          "challenger"
        ],
        "title": "SignificanceIn",
        "type": "object"
      },
      "SignupIn": {
        "properties": {
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "password": {
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "name",
          "password"
        ],
        "title": "SignupIn",
        "type": "object"
      },
      "SimilarIn": {
        "properties": {
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "diversity": {
            "default": true,
            "title": "Diversity",
            "type": "boolean"
          },
          "exclude_track": {
            "default": true,
            "title": "Exclude Track",
            "type": "boolean"
          },
          "frame_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Frame Id"
          },
          "image_b64": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image B64"
          },
          "k": {
            "default": 24,
            "title": "K",
            "type": "integer"
          },
          "min_sim": {
            "default": 0.0,
            "title": "Min Sim",
            "type": "number"
          },
          "mode": {
            "default": "visual",
            "title": "Mode",
            "type": "string"
          },
          "object_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Object Id"
          },
          "same_class": {
            "default": false,
            "title": "Same Class",
            "type": "boolean"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "target": {
            "default": "frame",
            "title": "Target",
            "type": "string"
          }
        },
        "title": "SimilarIn",
        "type": "object"
      },
      "SliceIn": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "predicate": {
            "default": {},
            "title": "Predicate",
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "title": "SliceIn",
        "type": "object"
      },
      "SloIn": {
        "properties": {
          "measurements": {
            "title": "Measurements",
            "type": "object"
          },
          "plane": {
            "title": "Plane",
            "type": "string"
          },
          "window_s": {
            "default": 0.0,
            "title": "Window S",
            "type": "number"
          }
        },
        "required": [
          "plane",
          "measurements"
        ],
        "title": "SloIn",
        "type": "object"
      },
      "SourceIn": {
        "properties": {
          "bucket": {
            "title": "Bucket",
            "type": "string"
          },
          "credential_profile": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Profile"
          },
          "endpoint_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Endpoint Url"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "prefix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prefix"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          }
        },
        "required": [
          "name",
          "provider",
          "bucket"
        ],
        "title": "SourceIn",
        "type": "object"
      },
      "SplitTrackIn": {
        "properties": {
          "at_ts_ns": {
            "title": "At Ts Ns",
            "type": "integer"
          }
        },
        "required": [
          "at_ts_ns"
        ],
        "title": "SplitTrackIn",
        "type": "object"
      },
      "StateIn": {
        "properties": {
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          },
          "state": {
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state"
        ],
        "title": "StateIn",
        "type": "object"
      },
      "StewardScanIn": {
        "properties": {
          "min_cluster": {
            "default": 30,
            "title": "Min Cluster",
            "type": "integer"
          },
          "sample": {
            "default": 3000,
            "title": "Sample",
            "type": "integer"
          },
          "sim_thresh": {
            "default": 0.62,
            "title": "Sim Thresh",
            "type": "number"
          }
        },
        "title": "StewardScanIn",
        "type": "object"
      },
      "StitchIn": {
        "properties": {
          "max_heal_gap": {
            "default": 8,
            "title": "Max Heal Gap",
            "type": "integer"
          },
          "n_frames": {
            "title": "N Frames",
            "type": "integer"
          },
          "observations": {
            "additionalProperties": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Observations",
            "type": "object"
          }
        },
        "required": [
          "observations",
          "n_frames"
        ],
        "title": "StitchIn",
        "type": "object"
      },
      "SubmitIn": {
        "properties": {
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          }
        },
        "title": "SubmitIn",
        "type": "object"
      },
      "SuggestIn": {
        "properties": {
          "attr_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attr Key"
          },
          "filters": {
            "default": {},
            "title": "Filters",
            "type": "object"
          },
          "kind": {
            "default": "class",
            "title": "Kind",
            "type": "string"
          },
          "limit": {
            "default": 200,
            "title": "Limit",
            "type": "integer"
          },
          "new_class_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Class Name"
          },
          "new_value": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "New Value"
          },
          "object_id": {
            "title": "Object Id",
            "type": "string"
          },
          "old_class_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Old Class Name"
          },
          "old_value": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Old Value"
          },
          "same_class": {
            "default": false,
            "title": "Same Class",
            "type": "boolean"
          },
          "threshold": {
            "default": 0.82,
            "title": "Threshold",
            "type": "number"
          }
        },
        "required": [
          "object_id"
        ],
        "title": "SuggestIn",
        "type": "object"
      },
      "SweepIn": {
        "properties": {
          "base": {
            "title": "Base",
            "type": "object"
          },
          "max_trials": {
            "default": 16,
            "title": "Max Trials",
            "type": "integer"
          },
          "method": {
            "default": "grid",
            "title": "Method",
            "type": "string"
          },
          "name": {
            "default": "sweep",
            "title": "Name",
            "type": "string"
          },
          "seed": {
            "default": 7,
            "title": "Seed",
            "type": "integer"
          },
          "space": {
            "additionalProperties": {
              "items": {},
              "type": "array"
            },
            "title": "Space",
            "type": "object"
          }
        },
        "title": "SweepIn",
        "type": "object"
      },
      "TagIn": {
        "properties": {
          "add": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Add",
            "type": "array"
          },
          "level": {
            "default": "object",
            "title": "Level",
            "type": "string"
          },
          "predicate": {
            "default": {},
            "title": "Predicate",
            "type": "object"
          },
          "remove": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Remove",
            "type": "array"
          }
        },
        "title": "TagIn",
        "type": "object"
      },
      "TargetlessIn": {
        "properties": {
          "cx": {
            "title": "Cx",
            "type": "number"
          },
          "cy": {
            "title": "Cy",
            "type": "number"
          },
          "horizon_y": {
            "title": "Horizon Y",
            "type": "number"
          },
          "vp1": {
            "items": {
              "type": "number"
            },
            "title": "Vp1",
            "type": "array"
          },
          "vp2": {
            "items": {
              "type": "number"
            },
            "title": "Vp2",
            "type": "array"
          }
        },
        "required": [
          "vp1",
          "vp2",
          "horizon_y",
          "cx",
          "cy"
        ],
        "title": "TargetlessIn",
        "type": "object"
      },
      "TaskIn": {
        "properties": {
          "jobs_of": {
            "default": 50,
            "title": "Jobs Of",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "predicate": {
            "default": {},
            "title": "Predicate",
            "type": "object"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "replicas": {
            "default": 1,
            "title": "Replicas",
            "type": "integer"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "required": [
          "project_id",
          "name"
        ],
        "title": "TaskIn",
        "type": "object"
      },
      "TelemetryIn": {
        "properties": {
          "artifact_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Id"
          },
          "conf_histogram": {
            "default": [],
            "items": {
              "type": "number"
            },
            "title": "Conf Histogram",
            "type": "array"
          },
          "detections_per_frame": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detections Per Frame"
          },
          "device_id": {
            "title": "Device Id",
            "type": "string"
          },
          "dropped_frames": {
            "default": 0,
            "title": "Dropped Frames",
            "type": "integer"
          },
          "fps": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fps"
          },
          "latency_max_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latency Max Ms"
          },
          "latency_p50_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latency P50 Ms"
          },
          "latency_p95_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latency P95 Ms"
          },
          "meta": {
            "default": {},
            "title": "Meta",
            "type": "object"
          },
          "model_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "n_inferences": {
            "default": 0,
            "title": "N Inferences",
            "type": "integer"
          },
          "power_w_mean": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Power W Mean"
          },
          "temp_c_max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temp C Max"
          },
          "throttled_fraction": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Throttled Fraction"
          },
          "window_end_ns": {
            "title": "Window End Ns",
            "type": "integer"
          },
          "window_start_ns": {
            "title": "Window Start Ns",
            "type": "integer"
          }
        },
        "required": [
          "device_id",
          "window_start_ns",
          "window_end_ns"
        ],
        "title": "TelemetryIn",
        "type": "object"
      },
      "TemporalRepairIn": {
        "properties": {
          "min_majority": {
            "default": 0.8,
            "title": "Min Majority",
            "type": "number"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "title": "TemporalRepairIn",
        "type": "object"
      },
      "TerminatePodIn": {
        "properties": {
          "pod_id": {
            "title": "Pod Id",
            "type": "string"
          }
        },
        "required": [
          "pod_id"
        ],
        "title": "TerminatePodIn",
        "type": "object"
      },
      "ThermalIn": {
        "properties": {
          "cold_fps": {
            "title": "Cold Fps",
            "type": "number"
          },
          "readings": {
            "title": "Readings",
            "type": "object"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "target",
          "readings",
          "cold_fps"
        ],
        "title": "ThermalIn",
        "type": "object"
      },
      "TrackAttrsIn": {
        "properties": {
          "attrs": {
            "title": "Attrs",
            "type": "object"
          }
        },
        "required": [
          "attrs"
        ],
        "title": "TrackAttrsIn",
        "type": "object"
      },
      "TrackEventIn": {
        "properties": {
          "end_frame_id": {
            "format": "uuid",
            "title": "End Frame Id",
            "type": "string"
          },
          "event_type": {
            "title": "Event Type",
            "type": "string"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "start_frame_id": {
            "format": "uuid",
            "title": "Start Frame Id",
            "type": "string"
          },
          "state": {
            "default": "accepted",
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "event_type",
          "start_frame_id",
          "end_frame_id"
        ],
        "title": "TrackEventIn",
        "type": "object"
      },
      "TrackEventPatch": {
        "properties": {
          "end_frame_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Frame Id"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "start_frame_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Frame Id"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          }
        },
        "title": "TrackEventPatch",
        "type": "object"
      },
      "TrainingStartIn": {
        "properties": {
          "base_weights": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Weights"
          },
          "compute_target": {
            "default": "local",
            "title": "Compute Target",
            "type": "string"
          },
          "dataset_spec": {
            "default": {},
            "title": "Dataset Spec",
            "type": "object"
          },
          "gate": {
            "default": {},
            "title": "Gate",
            "type": "object"
          },
          "hparams": {
            "default": {},
            "title": "Hparams",
            "type": "object"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "promote": {
            "default": false,
            "title": "Promote",
            "type": "boolean"
          },
          "purpose": {
            "default": "perception",
            "title": "Purpose",
            "type": "string"
          },
          "task_type": {
            "default": "detection",
            "title": "Task Type",
            "type": "string"
          }
        },
        "title": "TrainingStartIn",
        "type": "object"
      },
      "TriageFlag": {
        "description": "One reason an object is in the queue, with how loudly it should read.\n\nStructured rather than folded into the prose on `why`, so severity is decided where the evidence is and\na client renders it instead of recovering it with regexes over a joined string.",
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "code",
          "label",
          "severity"
        ],
        "title": "TriageFlag",
        "type": "object"
      },
      "TriageIn": {
        "properties": {
          "baseline": {
            "additionalProperties": {
              "type": "number"
            },
            "title": "Baseline",
            "type": "object"
          },
          "current": {
            "additionalProperties": {
              "type": "number"
            },
            "title": "Current",
            "type": "object"
          },
          "margin": {
            "default": 0.05,
            "title": "Margin",
            "type": "number"
          },
          "protected": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protected"
          }
        },
        "required": [
          "baseline",
          "current"
        ],
        "title": "TriageIn",
        "type": "object"
      },
      "TriageRow": {
        "properties": {
          "class_id": {
            "title": "Class Id",
            "type": "integer"
          },
          "class_name": {
            "title": "Class Name",
            "type": "string"
          },
          "conf": {
            "title": "Conf",
            "type": "number"
          },
          "flags": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TriageFlag"
            },
            "title": "Flags",
            "type": "array"
          },
          "frame_id": {
            "title": "Frame Id",
            "type": "string"
          },
          "import_format": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Format"
          },
          "object_id": {
            "title": "Object Id",
            "type": "string"
          },
          "priority": {
            "title": "Priority",
            "type": "number"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "source": {
            "default": "human",
            "title": "Source",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "why": {
            "title": "Why",
            "type": "string"
          }
        },
        "required": [
          "object_id",
          "frame_id",
          "session_id",
          "class_id",
          "class_name",
          "conf",
          "state",
          "why",
          "priority"
        ],
        "title": "TriageRow",
        "type": "object"
      },
      "UncertaintyIn": {
        "properties": {
          "calib_confidence": {
            "default": 1.0,
            "title": "Calib Confidence",
            "type": "number"
          },
          "consensus_score": {
            "title": "Consensus Score",
            "type": "number"
          },
          "depth_uncertainty": {
            "default": 0.0,
            "title": "Depth Uncertainty",
            "type": "number"
          },
          "n_views": {
            "default": 1,
            "title": "N Views",
            "type": "integer"
          }
        },
        "required": [
          "consensus_score"
        ],
        "title": "UncertaintyIn",
        "type": "object"
      },
      "UserCreateIn": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "role": {
            "default": "annotator",
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "UserCreateIn",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "VerdictIn": {
        "properties": {
          "verdict": {
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "verdict"
        ],
        "title": "VerdictIn",
        "type": "object"
      },
      "ViewIn": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "predicate": {
            "default": {},
            "title": "Predicate",
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "title": "ViewIn",
        "type": "object"
      },
      "WatchlistIn": {
        "properties": {
          "plate": {
            "title": "Plate",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "severity": {
            "default": "warn",
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "plate"
        ],
        "title": "WatchlistIn",
        "type": "object"
      },
      "WebhookIn": {
        "properties": {
          "events": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Events",
            "type": "array"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "secret": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Secret"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "title": "WebhookIn",
        "type": "object"
      },
      "WorkforceIn": {
        "properties": {
          "capabilities": {
            "default": {},
            "title": "Capabilities",
            "type": "object"
          },
          "capacity_jobs_per_day": {
            "default": 0,
            "title": "Capacity Jobs Per Day",
            "type": "integer"
          },
          "contact": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact"
          },
          "endpoint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Endpoint"
          },
          "kind": {
            "default": "vendor",
            "title": "Kind",
            "type": "string"
          },
          "min_honeypot_accuracy": {
            "default": 0.9,
            "title": "Min Honeypot Accuracy",
            "type": "number"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "WorkforceIn",
        "type": "object"
      },
      "ZoneIn": {
        "properties": {
          "camera_id": {
            "title": "Camera Id",
            "type": "string"
          },
          "classes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Classes",
            "type": "array"
          },
          "dwell_seconds": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dwell Seconds"
          },
          "kind": {
            "default": "area",
            "title": "Kind",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "pack_id": {
            "default": "sec",
            "title": "Pack Id",
            "type": "string"
          },
          "points": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Points",
            "type": "array"
          },
          "rule": {
            "default": "enter",
            "title": "Rule",
            "type": "string"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "severity": {
            "default": "warn",
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "camera_id",
          "name",
          "points"
        ],
        "title": "ZoneIn",
        "type": "object"
      },
      "services__api__deps__ExportIn": {
        "properties": {
          "cities": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cities"
          },
          "class_names": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Names"
          },
          "formats": {
            "default": [
              "coco",
              "parquet"
            ],
            "items": {
              "type": "string"
            },
            "title": "Formats",
            "type": "array"
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Limit"
          },
          "min_conf": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Conf"
          },
          "name": {
            "default": "dataset",
            "title": "Name",
            "type": "string"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "split_group_by": {
            "default": "session",
            "title": "Split Group By",
            "type": "string"
          },
          "split_seed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Split Seed"
          },
          "states": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "States"
          },
          "test_frac": {
            "default": 0.0,
            "title": "Test Frac",
            "type": "number"
          },
          "val_frac": {
            "default": 0.0,
            "title": "Val Frac",
            "type": "number"
          },
          "vehicle_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vehicle Ids"
          }
        },
        "title": "ExportIn",
        "type": "object"
      },
      "services__api__routers__agent__AuditIn": {
        "properties": {
          "sample_size": {
            "default": 200,
            "title": "Sample Size",
            "type": "integer"
          },
          "since_hours": {
            "default": 24,
            "title": "Since Hours",
            "type": "integer"
          },
          "vlm_calls": {
            "default": 60,
            "title": "Vlm Calls",
            "type": "integer"
          }
        },
        "title": "AuditIn",
        "type": "object"
      },
      "services__api__routers__calyx__DriftIn": {
        "properties": {
          "cam_id": {
            "title": "Cam Id",
            "type": "string"
          },
          "cam_points": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Cam Points",
            "type": "array"
          },
          "inertial_points": {
            "items": {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            "title": "Inertial Points",
            "type": "array"
          }
        },
        "required": [
          "cam_id",
          "cam_points",
          "inertial_points"
        ],
        "title": "DriftIn",
        "type": "object"
      },
      "services__api__routers__collaborate__AssignIn": {
        "properties": {
          "branch": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Branch"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "user_id"
        ],
        "title": "AssignIn",
        "type": "object"
      },
      "services__api__routers__dataset_query__BuildIn": {
        "properties": {
          "limit": {
            "default": 200000,
            "title": "Limit",
            "type": "integer"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "samples_per_shard": {
            "default": 256,
            "title": "Samples Per Shard",
            "type": "integer"
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": [
          "query"
        ],
        "title": "BuildIn",
        "type": "object"
      },
      "services__api__routers__explore__EvalIn": {
        "properties": {
          "gold_id": {
            "title": "Gold Id",
            "type": "string"
          },
          "iou_thr": {
            "default": 0.5,
            "title": "Iou Thr",
            "type": "number"
          },
          "model_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Id"
          },
          "score_thr": {
            "default": 0.0,
            "title": "Score Thr",
            "type": "number"
          }
        },
        "required": [
          "gold_id"
        ],
        "title": "EvalIn",
        "type": "object"
      },
      "services__api__routers__flywheel__DispatchIn": {
        "properties": {
          "cycle_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cycle Id"
          },
          "per_slice_cap": {
            "default": 300,
            "title": "Per Slice Cap",
            "type": "integer"
          },
          "slices": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slices"
          }
        },
        "title": "DispatchIn",
        "type": "object"
      },
      "services__api__routers__forgyx__ExportIn": {
        "properties": {
          "imgsz": {
            "default": 640,
            "title": "Imgsz",
            "type": "integer"
          },
          "prefer_cuda": {
            "default": true,
            "title": "Prefer Cuda",
            "type": "boolean"
          },
          "runs": {
            "default": 50,
            "title": "Runs",
            "type": "integer"
          }
        },
        "title": "ExportIn",
        "type": "object"
      },
      "services__api__routers__govern__DriftIn": {
        "properties": {
          "cur_sessions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cur Sessions"
          },
          "ref_sessions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Sessions"
          }
        },
        "title": "DriftIn",
        "type": "object"
      },
      "services__api__routers__labelops__AssignIn": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "expected_version": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Version"
          }
        },
        "title": "AssignIn",
        "type": "object"
      },
      "services__api__routers__labelox__AuditIn": {
        "properties": {
          "gold": {
            "items": {
              "type": "object"
            },
            "title": "Gold",
            "type": "array"
          },
          "iou_thr": {
            "default": 0.5,
            "title": "Iou Thr",
            "type": "number"
          },
          "predicted": {
            "items": {
              "type": "object"
            },
            "title": "Predicted",
            "type": "array"
          }
        },
        "required": [
          "predicted",
          "gold"
        ],
        "title": "AuditIn",
        "type": "object"
      },
      "services__api__routers__lidar__BuildIn": {
        "properties": {
          "limit": {
            "default": 1,
            "title": "Limit",
            "type": "integer"
          },
          "max_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Points"
          },
          "stride": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stride"
          }
        },
        "title": "BuildIn",
        "type": "object"
      },
      "services__api__routers__verdyx__EvalIn": {
        "properties": {
          "aggregate": {
            "title": "Aggregate",
            "type": "object"
          },
          "challenger_of": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Challenger Of"
          },
          "gold_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gold Id"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "per_slice": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Per Slice"
          },
          "protected": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protected"
          },
          "release_commit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Release Commit"
          },
          "run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Id"
          }
        },
        "required": [
          "model_version",
          "aggregate"
        ],
        "title": "EvalIn",
        "type": "object"
      },
      "services__api__routers__workforce__DispatchIn": {
        "properties": {
          "deliver": {
            "default": true,
            "title": "Deliver",
            "type": "boolean"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "required_classes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required Classes"
          },
          "workforce_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workforce Id"
          }
        },
        "required": [
          "job_id"
        ],
        "title": "DispatchIn",
        "type": "object"
      }
    }
  },
  "info": {
    "title": "LabeloxAV",
    "version": "0.1.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/activelearn/batches": {
      "get": {
        "operationId": "batches_api_activelearn_batches_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Batches",
        "tags": [
          "activelearn"
        ]
      }
    },
    "/api/activelearn/champion-sweep": {
      "post": {
        "description": "Run the champion at a very low confidence over frames it currently reports nothing in.\n\nMeasures a miss directly rather than inferring one from a frame's neighbours. Expensive, which is why\nit is a sweep somebody schedules rather than something the queue does on every read.",
        "operationId": "champion_sweep_api_activelearn_champion_sweep_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "conf_floor",
            "required": false,
            "schema": {
              "default": 0.05,
              "maximum": 0.5,
              "minimum": 0.0,
              "title": "Conf Floor",
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "accept_threshold",
            "required": false,
            "schema": {
              "default": 0.5,
              "maximum": 1.0,
              "minimum": 0.0,
              "title": "Accept Threshold",
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 500,
              "maximum": 5000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "top_k",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Top K",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Champion Sweep",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/activelearn/false-negatives": {
      "get": {
        "description": "Frames the detector probably missed something in.\n\nFrames rather than objects, because the reviewer's task here is to draw what is absent, which is a\ndifferent action from correcting a box and does not belong in the same queue.",
        "operationId": "false_negatives_api_activelearn_false_negatives_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 4000,
              "maximum": 20000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "top_k",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 2000,
              "minimum": 1,
              "title": "Top K",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "accept_threshold",
            "required": false,
            "schema": {
              "default": 0.5,
              "maximum": 1.0,
              "minimum": 0.0,
              "title": "Accept Threshold",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "False Negatives",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/activelearn/loop": {
      "get": {
        "operationId": "loop_status_api_activelearn_loop_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Loop Status",
        "tags": [
          "activelearn"
        ]
      }
    },
    "/api/activelearn/loop/retrain": {
      "post": {
        "operationId": "loop_retrain_api_activelearn_loop_retrain_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetrainIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Loop Retrain",
        "tags": [
          "activelearn"
        ]
      }
    },
    "/api/activelearn/recall-reliability": {
      "post": {
        "description": "Fit the per-channel confirmed rates from the human verdicts, replacing the hand-set priors.\n\nThe recall channels have been ranked by three numbers somebody guessed while the verdicts needed to\nmeasure them accumulated in the same table.",
        "operationId": "recall_reliability_api_activelearn_recall_reliability_post",
        "parameters": [
          {
            "in": "query",
            "name": "apply",
            "required": false,
            "schema": {
              "default": true,
              "title": "Apply",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "min_verdicts",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 1000,
              "minimum": 1,
              "title": "Min Verdicts",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recall Reliability",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/activelearn/score": {
      "get": {
        "operationId": "score_api_activelearn_score_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Score",
        "tags": [
          "activelearn"
        ]
      }
    },
    "/api/activelearn/select": {
      "post": {
        "operationId": "select_route_api_activelearn_select_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Select Route",
        "tags": [
          "activelearn"
        ]
      }
    },
    "/api/activity": {
      "get": {
        "description": "The feed. `mine=true` is the \"what did I do today\" view; without it, the whole team's, which is what\na lead reads.",
        "operationId": "list_activity_api_activity_get",
        "parameters": [
          {
            "in": "query",
            "name": "user_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User Id"
            }
          },
          {
            "in": "query",
            "name": "verb",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Verb"
            }
          },
          {
            "in": "query",
            "name": "since_hours",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Hours"
            }
          },
          {
            "in": "query",
            "name": "mine",
            "required": false,
            "schema": {
              "default": false,
              "title": "Mine",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Activity",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/activity/summary": {
      "get": {
        "operationId": "activity_summary_api_activity_summary_get",
        "parameters": [
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "default": 24,
              "maximum": 720,
              "minimum": 1,
              "title": "Hours",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "mine",
            "required": false,
            "schema": {
              "default": true,
              "title": "Mine",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Activity Summary",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/adverse/{region_id}": {
      "delete": {
        "operationId": "delete_adverse_api_adverse__region_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "region_id",
            "required": true,
            "schema": {
              "title": "Region Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Adverse",
        "tags": [
          "adverse"
        ]
      }
    },
    "/api/agent/ask": {
      "post": {
        "description": "Conversational corpus query: ask the dataset a plain-language question ('pedestrians crossing against\ntraffic at night') and get the matching frames, plus how the question was parsed into facets.",
        "operationId": "ask_api_agent_ask_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AskIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ask",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/audit/latest": {
      "get": {
        "description": "The most recent Overnight Auditor run and its morning report.",
        "operationId": "audit_latest_api_agent_audit_latest_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Audit Latest",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/audit/run": {
      "post": {
        "description": "Run the Overnight Auditor now: sample the window's auto-accepts, VLM + critic spot-check them within a\ntoken budget, fold in control-sample precision, and queue suspects to review as a reversible run. Poll\nGET /agent/audit/latest for the morning report.",
        "operationId": "audit_run_api_agent_audit_run_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/services__api__routers__agent__AuditIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Audit Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/buyer/spec": {
      "post": {
        "description": "Buyer spec -> honest fulfillment report (what the corpus can and cannot deliver). With confirm=true,\ncomposes the slice, launches the sealed export, and drafts the datasheet.",
        "operationId": "buyer_spec_api_agent_buyer_spec_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BuyerSpecIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Buyer Spec",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/cleanup-sweep": {
      "post": {
        "description": "Apply the panoptic/quality gates to objects ALREADY in the corpus (no model re-run): remove boxed\nstuff (trees/barriers/sky), ego-hood boxes, oversize boxes, and duplicate/nested boxes, and backfill PII\non pre-gate frames. Fast; fully reversible (removed objects are snapshotted). Poll GET /agent/runs/{id}.",
        "operationId": "cleanup_sweep_api_agent_cleanup_sweep_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CleanupIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cleanup Sweep",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/command": {
      "post": {
        "description": "Natural-language control: turn an instruction ('auto-accept the two-wheelers above 0.9') into a\nscoped agent action on a frame. Returns the parsed intent, the result, and a plain-language summary.\nplan/find are read-only; accept/revert write and are reversible.",
        "operationId": "command_api_agent_command_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommandIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Command",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/contamination": {
      "get": {
        "description": "Class moves a past relabel run made, grouped by the mistake rather than by the object.\n\nFifty thousand individual rewrites are not reviewable; the several hundred decisions behind them are.\n`refused_now` marks the ones the ontology guard would reject today, which are the lineages that need no\njudgement call to identify.",
        "operationId": "contamination_api_agent_contamination_get",
        "parameters": [
          {
            "in": "query",
            "name": "min_count",
            "required": false,
            "schema": {
              "default": 25,
              "title": "Min Count",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "refused_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Refused Only",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Contamination",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/contamination/objects": {
      "get": {
        "description": "The objects one class move actually produced, so a lineage can be looked at rather than counted.\n\nThe grouped view carries eight examples per lineage, capped where the aggregate is built. A move that\ntouched a thousand objects could therefore be inspected eight deep, which is enough to know it exists\nand not enough to judge it - and the only other action available is reverting the whole thousand.\n\nUses the same predicate as the revert, deliberately: a list showing a different set from the one the\nrevert would touch is worse than no list, because it invites somebody to check these and change those.",
        "operationId": "contamination_objects_api_agent_contamination_objects_get",
        "parameters": [
          {
            "in": "query",
            "name": "from_name",
            "required": true,
            "schema": {
              "title": "From Name",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to_name",
            "required": true,
            "schema": {
              "title": "To Name",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 60,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Contamination Objects",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/contamination/revert": {
      "post": {
        "description": "Put one refused class move back, as a single reversible action.\n\nReviewer-gated: this rewrites thousands of labels at once. Refused only, because a refinement is a\njudgement call and reverting it in bulk would swap one bulk opinion for another.",
        "operationId": "contamination_revert_api_agent_contamination_revert_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LineageRevertIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Contamination Revert",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/copilot/batch-fix": {
      "post": {
        "description": "Relabel the chosen similar cases to the target class and route them to review, as one reversible run.",
        "operationId": "copilot_batch_fix_api_agent_copilot_batch_fix_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchFixIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Copilot Batch Fix",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/copilot/pattern": {
      "get": {
        "description": "The reviewer's repeated correction pattern and the similar cases a one-click batch would fix. mine=true\nscopes to the current reviewer's corrections; false looks across everyone.",
        "operationId": "copilot_pattern_api_agent_copilot_pattern_get",
        "parameters": [
          {
            "in": "query",
            "name": "mine",
            "required": false,
            "schema": {
              "default": true,
              "title": "Mine",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Copilot Pattern",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/coverage": {
      "get": {
        "description": "Corpus coverage report: class balance, scene-axis coverage, geography, and the named gaps to fill.",
        "operationId": "coverage_api_agent_coverage_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Coverage",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/disagreements/mine": {
      "post": {
        "description": "Mine champion-vs-challenger model-disagreement frames (paths voted different classes) into the\nscenario queue -- the highest-value frames to label and an early regression signal.",
        "operationId": "disagreements_mine_api_agent_disagreements_mine_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/MineIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Disagreements Mine",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/docs/datasheet": {
      "post": {
        "description": "Draft the dataset datasheet (composition, class + scene + geo coverage, known gaps, and gold metrics\nif a gold_id is given). Stored in the object store; returns the uri + Markdown.",
        "operationId": "docs_datasheet_api_agent_docs_datasheet_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DatasheetIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Docs Datasheet",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/docs/model-card": {
      "post": {
        "description": "Draft the model card for a registered model (task, champion status, gold metrics, per-class,\nintended use + limitations).",
        "operationId": "docs_model_card_api_agent_docs_model_card_post",
        "parameters": [
          {
            "in": "query",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Docs Model Card",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/docs/weekly": {
      "post": {
        "description": "Draft the weekly quality report (auto-accept precision, drift events, promotions, open gaps).",
        "operationId": "docs_weekly_api_agent_docs_weekly_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Docs Weekly",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/drift/investigate": {
      "post": {
        "description": "Scan for drift now and, on a breach, launch the Drift Investigator to root-cause it (affected slice,\nworst classes/scenes/sessions, common factor, hypothesis + proposed action). Proposes only; poll\nGET /agent/drift/latest.",
        "operationId": "drift_investigate_api_agent_drift_investigate_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DriftInvestigateIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Drift Investigate",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/drift/latest": {
      "get": {
        "description": "The most recent Drift Investigator diagnosis.",
        "operationId": "drift_latest_api_agent_drift_latest_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Drift Latest",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/errors/queue": {
      "get": {
        "description": "The ranked fix queue: likely-wrong labels the daemon surfaced, worst first.",
        "operationId": "error_queue_api_agent_errors_queue_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "pending",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Error Queue",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/errors/sweep": {
      "post": {
        "description": "Launch the corpus-wide error daemon in the background: run every detector across sessions, refreshing\nthe fix queue. Poll GET /agent/runs/{run_id} for progress, and GET /agent/errors/queue for the results.",
        "operationId": "error_sweep_api_agent_errors_sweep_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ErrorSweepIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Error Sweep",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/fleet/orders": {
      "get": {
        "description": "The proposed (or dispatched/done) collection orders, highest priority first.",
        "operationId": "fleet_orders_api_agent_fleet_orders_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "proposed",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fleet Orders",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/fleet/orders/{order_id}/{status}": {
      "post": {
        "description": "Dispatch or complete an order (status = dispatched | done).",
        "operationId": "fleet_order_status_api_agent_fleet_orders__order_id___status__post",
        "parameters": [
          {
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "title": "Order Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "status",
            "required": true,
            "schema": {
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fleet Order Status",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/fleet/plan": {
      "post": {
        "description": "Generate ranked collection orders from the current coverage gaps, the fleet, and the forecast.",
        "operationId": "fleet_plan_api_agent_fleet_plan_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fleet Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/flywheel": {
      "post": {
        "description": "Launch the autonomous loop in the background: mine by value, auto-accept the sure ones / route the\nrest, then retrain if enough corrections have accumulated. Poll GET /agent/runs/{run_id} for progress.\ndry_run (default) plans only and writes nothing.",
        "operationId": "flywheel_api_agent_flywheel_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlywheelIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Flywheel",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/attributes": {
      "post": {
        "description": "Fill the derivable attributes on the frame's objects as one reversible run.",
        "operationId": "attributes_run_api_agent_frames__frame_id__attributes_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Attributes Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/attributes/plan": {
      "post": {
        "description": "Dry-run: the derivable attributes (occlusion, truncation, static, direction) each machine object\nwould gain. Writes nothing.",
        "operationId": "attributes_plan_api_agent_frames__frame_id__attributes_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Attributes Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/cuboids": {
      "post": {
        "description": "Attach fitted 3D cuboids to the frame's 2D objects as one reversible run.",
        "operationId": "cuboids_run_api_agent_frames__frame_id__cuboids_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CuboidIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cuboids Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/cuboids/plan": {
      "post": {
        "description": "Dry-run: which 2D vehicle/VRU boxes on this frame lift to a valid 3D cuboid (monocular, reprojection-\nvalidated). Writes nothing.",
        "operationId": "cuboids_plan_api_agent_frames__frame_id__cuboids_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CuboidIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cuboids Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/fresh": {
      "post": {
        "description": "Fresh-inference: detect the frame (Path A/B + fuse + gate + persist) then run the agent on the new\nobjects in one shot. commit applies the decision; otherwise it plans. GPU-bound (reviewer role).",
        "operationId": "fresh_api_agent_frames__frame_id__fresh_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/FreshIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fresh",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/plan": {
      "post": {
        "description": "Dry-run: what the agent would auto-accept / route on this frame. Writes nothing.",
        "operationId": "plan_api_agent_frames__frame_id__plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/AgentPolicyIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/reanalyze": {
      "post": {
        "description": "Re-check this frame: blur the PII the first pass missed, and queue what looks wrong with the labels.\n\nReviewer-gated because it writes to the stored image. It never changes a label: the annotation findings\nbecome review-queue candidates for a human to rule on.",
        "operationId": "reanalyze_api_agent_frames__frame_id__reanalyze_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reanalyze",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/reanalyze/plan": {
      "post": {
        "description": "Dry-run the re-check on this frame: what it would blur, and what it would put on the review queue.\n\nWrites nothing. The plan form exists because the redaction half is one-way: the unredacted original is\ndeliberately never stored, so a blur cannot be taken back and has to be inspectable first.",
        "operationId": "reanalyze_plan_api_agent_frames__frame_id__reanalyze_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reanalyze Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/reconcile": {
      "post": {
        "description": "Adjudicate the frame's objects with an independent model (SigLIP 2 zero-shot): confirm / correct /\nunsure per object. Read-only unless apply=True, which relabels the strong 'correct' verdicts as one\nreversible AgentRun (reviewer role required to apply).",
        "operationId": "reconcile_api_agent_frames__frame_id__reconcile_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ReconcileIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reconcile",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/relabel": {
      "post": {
        "description": "Improve this frame's labels: an independent model re-reads every machine box and, where it decisively\ndisagrees, corrects the class as one reversible run. Decisive corrections are kept; moderate ones are\napplied but routed to review for a human to confirm.",
        "operationId": "relabel_frame_api_agent_frames__frame_id__relabel_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RelabelIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relabel Frame",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/relabel/plan": {
      "post": {
        "description": "Dry-run: which objects the reasoning layer would relabel and to what, with the winning class's\nconfidence and whether it is decisive enough to keep or should route to review. Writes nothing.",
        "operationId": "relabel_plan_api_agent_frames__frame_id__relabel_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RelabelIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relabel Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/run": {
      "post": {
        "description": "Commit the plan as one reversible run: auto-accept the confident, route the rest.",
        "operationId": "run_api_agent_frames__frame_id__run_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/AgentPolicyIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/frames/{frame_id}/suggest": {
      "get": {
        "description": "Proactive assistant: the highest-leverage agent actions for this frame, each with its count.",
        "operationId": "suggest_api_agent_frames__frame_id__suggest_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Suggest",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/gold-drift": {
      "post": {
        "description": "Re-evaluate the serving champion on the gold set; roll back + pause the loop on regression.",
        "operationId": "gold_drift_api_agent_gold_drift_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gold Drift",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/nl-edit/apply": {
      "post": {
        "description": "M-F.3: apply a bulk edit to the CONFIRMED objects from the preview, as one reversible audited run.",
        "operationId": "nl_edit_apply_api_agent_nl_edit_apply_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NlEditApplyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Nl Edit Apply",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/nl-edit/preview": {
      "post": {
        "description": "M-F.3: parse a natural-language edit and PREVIEW the objects it would touch. Writes nothing.",
        "operationId": "nl_edit_preview_api_agent_nl_edit_preview_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NlEditPreviewIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Nl Edit Preview",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/objects/{object_id}/crosscam": {
      "post": {
        "description": "Propagate the label to the other cameras that can see it, as one reversible run.",
        "operationId": "crosscam_run_api_agent_objects__object_id__crosscam_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CrossCamIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Crosscam Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/objects/{object_id}/crosscam/plan": {
      "post": {
        "description": "Dry-run: which other cameras can see this object (via its 3D cuboid) and the box it would get. No writes.",
        "operationId": "crosscam_plan_api_agent_objects__object_id__crosscam_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CrossCamIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Crosscam Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/objects/{object_id}/propagate": {
      "post": {
        "description": "Propagate the keyframe across its track and persist the boxes as one reversible run.",
        "operationId": "propagate_run_api_agent_objects__object_id__propagate_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PropagateIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/objects/{object_id}/propagate/plan": {
      "post": {
        "description": "Dry-run: what the track-propagation agent would carry across the clip from this keyframe (both\ndirections, stopping where the box drifts). Writes nothing.",
        "operationId": "propagate_plan_api_agent_objects__object_id__propagate_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PropagateIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/ontology/proposals": {
      "get": {
        "description": "The pending promotion proposals: fallback clusters proposed as new classes, worst-to-best by size.",
        "operationId": "ontology_proposals_api_agent_ontology_proposals_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "proposed",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ontology Proposals",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/ontology/proposals/{proposal_id}/approve": {
      "post": {
        "description": "Approve: mint the class and relabel the cluster to it as one reversible run.",
        "operationId": "ontology_approve_api_agent_ontology_proposals__proposal_id__approve_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ontology Approve",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/ontology/proposals/{proposal_id}/reject": {
      "post": {
        "operationId": "ontology_reject_api_agent_ontology_proposals__proposal_id__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ontology Reject",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/ontology/scan": {
      "post": {
        "description": "Cluster the fallback buckets and file a PromotionProposal for every cluster past the threshold.",
        "operationId": "ontology_scan_api_agent_ontology_scan_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/StewardScanIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ontology Scan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/ops/ask": {
      "post": {
        "description": "Ask LabeloxAV: plan a data-platform operation from a sentence and run its read steps. Mutating steps\n(autolabel, export) run only when confirm=true; otherwise the plan pauses at the first one for review.",
        "operationId": "ops_ask_api_agent_ops_ask_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpsAskIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ops Ask",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/reanalyze/all": {
      "post": {
        "description": "Re-check every frame in one session, or across the corpus, in the background.\n\nPoll GET /agent/runs/{run_id} for progress; the console's Background panel shows it without being told\nabout this kind, because it renders whatever the run list returns.",
        "operationId": "reanalyze_all_api_agent_reanalyze_all_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ReanalyzeAllIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reanalyze All",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/relabel/all": {
      "post": {
        "description": "Relabel all frames: launch the reasoning layer across the corpus (or one session) in the background,\none reversible child run per frame. Poll GET /agent/runs/{run_id} for progress and totals.",
        "operationId": "relabel_all_api_agent_relabel_all_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RelabelAllIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relabel All",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/report": {
      "get": {
        "description": "Auto dataset report: corpus size, class balance, coverage gaps, fix-queue and scenario summaries.",
        "operationId": "report_api_agent_report_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Report",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/runs": {
      "get": {
        "operationId": "runs_api_agent_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Runs",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/runs/interrupted": {
      "get": {
        "description": "Jobs whose process stopped before they finished, with the cursor each one left behind.\n\nDeclared above /agent/runs/{run_id} because FastAPI matches in order and \"interrupted\" would otherwise\nbe parsed as a run id and answer 422.",
        "operationId": "interrupted_runs_api_agent_runs_interrupted_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Interrupted Runs",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/runs/{run_id}": {
      "get": {
        "operationId": "run_detail_api_agent_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Detail",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/runs/{run_id}/resume": {
      "post": {
        "description": "Continue an interrupted job from its cursor.\n\nOnly the jobs that recorded one can actually skip finished work; the rest are honestly reported as not\nresumable rather than being restarted under a name that implies they will not repeat themselves.",
        "operationId": "resume_run_api_agent_runs__run_id__resume_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resume Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/runs/{run_id}/revert": {
      "post": {
        "operationId": "revert_api_agent_runs__run_id__revert_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revert",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/scenarios/mine": {
      "post": {
        "description": "Mine safety-critical scenarios (near-miss / high-risk / hard-brake) into the scenario queue.",
        "operationId": "scenarios_mine_api_agent_scenarios_mine_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/MineIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scenarios Mine",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/temporal-repair": {
      "post": {
        "description": "Relabel strong-majority class-flip outliers to the track class as one reversible run.",
        "operationId": "temporal_repair_run_api_agent_temporal_repair_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/TemporalRepairIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Temporal Repair Run",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/temporal-repair/plan": {
      "post": {
        "description": "Dry-run: which class-flip outliers would be relabeled to their track majority. Writes nothing.",
        "operationId": "temporal_repair_plan_api_agent_temporal_repair_plan_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/TemporalRepairIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Temporal Repair Plan",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/agent/training/cycle": {
      "post": {
        "description": "One turn of the self-improving loop: flywheel tick (mine -> auto-accept/escalate) then, when not\ndry-run and retrain is set, a closed-loop retrain if enough corrections have accumulated.",
        "operationId": "training_cycle_api_agent_training_cycle_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CycleIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Training Cycle",
        "tags": [
          "agent"
        ]
      }
    },
    "/api/analytics/classes": {
      "get": {
        "operationId": "classes_api_analytics_classes_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Classes",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/cluster-map": {
      "get": {
        "operationId": "cluster_map_api_analytics_cluster_map_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 1500,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cluster Map",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/dedup-rate": {
      "get": {
        "operationId": "dedup_rate_api_analytics_dedup_rate_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dedup Rate",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/geo": {
      "get": {
        "operationId": "geo_api_analytics_geo_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 2000,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Geo",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/growth": {
      "get": {
        "operationId": "growth_api_analytics_growth_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Growth",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/overview": {
      "get": {
        "operationId": "overview_api_analytics_overview_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Overview",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/pii": {
      "get": {
        "operationId": "pii_api_analytics_pii_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pii",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/productivity": {
      "get": {
        "description": "M-F.4: the DataOps operations view (per-reviewer throughput/correction/agreement, cost, trend).",
        "operationId": "productivity_api_analytics_productivity_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Productivity",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/report": {
      "get": {
        "description": "Consolidated summary (the buyer quality sheet), bundled for export.",
        "operationId": "report_api_analytics_report_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Report",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/review-agreement": {
      "get": {
        "operationId": "review_agreement_api_analytics_review_agreement_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Review Agreement",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/scenarios": {
      "get": {
        "operationId": "scenarios_api_analytics_scenarios_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scenarios",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/scene-splits": {
      "get": {
        "operationId": "scene_splits_api_analytics_scene_splits_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scene Splits",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/analytics/source-mix": {
      "get": {
        "operationId": "source_mix_api_analytics_source_mix_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Source Mix",
        "tags": [
          "analytics"
        ]
      }
    },
    "/api/annotations/{annotation_id}": {
      "delete": {
        "operationId": "delete_annotation_api_annotations__annotation_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "title": "Annotation Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Annotation",
        "tags": [
          "assets"
        ]
      },
      "patch": {
        "operationId": "update_annotation_api_annotations__annotation_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "title": "Annotation Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Annotation",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/assets": {
      "post": {
        "operationId": "create_assets_api_assets_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Assets",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/assets/kinds": {
      "get": {
        "description": "Every annotation shape the project spine understands, with what each one means.",
        "operationId": "kinds_api_assets_kinds_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Kinds",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/assets/{asset_id}": {
      "get": {
        "description": "The asset, its project's label config, and every annotation on it: one request to open an editor.",
        "operationId": "get_asset_api_assets__asset_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "title": "Asset Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Asset",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/assets/{asset_id}/annotations": {
      "get": {
        "operationId": "list_annotations_api_assets__asset_id__annotations_get",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "title": "Asset Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Annotations",
        "tags": [
          "assets"
        ]
      },
      "post": {
        "operationId": "create_annotation_api_assets__asset_id__annotations_post",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "title": "Asset Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Annotation",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/assets/{asset_id}/state": {
      "post": {
        "operationId": "set_asset_state_api_assets__asset_id__state_post",
        "parameters": [
          {
            "in": "path",
            "name": "asset_id",
            "required": true,
            "schema": {
              "title": "Asset Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": true,
            "schema": {
              "title": "State",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Asset State",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/auth/dev-login": {
      "post": {
        "description": "Return a signed admin token for local development. 404 anywhere it is not permitted, so its existence\nis not even revealed off a dev box.",
        "operationId": "dev_login_api_auth_dev_login_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Dev Login Api Auth Dev Login Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Dev Login",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/auth/login": {
      "post": {
        "operationId": "login_api_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Login Api Auth Login Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Login",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/login/mfa": {
      "post": {
        "description": "Finish a sign-in with the second factor. Accepts a TOTP code or a single-use recovery code.",
        "operationId": "login_mfa_api_auth_login_mfa_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MfaIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Login Mfa Api Auth Login Mfa Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Login Mfa",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/logout": {
      "post": {
        "description": "Clear the cookies this app sets. The token itself is stateless, so the client drops it; revoking\nevery session is a separate, deliberate action.",
        "operationId": "logout_api_auth_logout_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Logout Api Auth Logout Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Logout",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/media-token": {
      "post": {
        "description": "Issue the short-lived, image-only credential the browser puts in a cookie.\n\nRequires the full session token, so this is not a way to obtain access, only a way to downgrade access\nthe caller already has into something safe to send automatically on every <img> request. The TTL is\nminutes: the cookie rides on requests whose URLs land in access logs and Referer headers, and a\ncredential in that position should expire before it is worth stealing.",
        "operationId": "media_token_api_auth_media_token_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Media Token Api Auth Media Token Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Media Token",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/auth/methods": {
      "get": {
        "description": "Which sign-in methods this deployment offers.\n\nPublic by design and deliberately contentless: it reveals configuration, never whether any particular\naccount exists. The login page needs it to decide what to draw rather than showing a password form on a\ndirectory-only deployment.",
        "operationId": "auth_methods_api_auth_methods_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Auth Methods Api Auth Methods Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Auth Methods",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/mfa/confirm": {
      "post": {
        "description": "Activate an enrolled factor and hand back the recovery codes, which are shown exactly once.\n\nReachable two ways: by an already-signed-in user hardening their account, or during a sign-in that was\nstopped because the role requires a factor and none existed. The second path carries the handle from\nthat sign-in, so enrolment finishes the login it interrupted.",
        "operationId": "mfa_confirm_api_auth_mfa_confirm_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Mfa Confirm Api Auth Mfa Confirm Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mfa Confirm",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/mfa/disable": {
      "post": {
        "description": "Remove the second factor. Requires the password, because a borrowed session must not be able to\nstrip the protection that exists to contain exactly that.",
        "operationId": "mfa_disable_api_auth_mfa_disable_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisableMfaIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Mfa Disable Api Auth Mfa Disable Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mfa Disable",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/mfa/setup": {
      "post": {
        "description": "Generate a secret and return the otpauth URI to scan. Not active until confirmed.",
        "operationId": "mfa_setup_api_auth_mfa_setup_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Mfa Setup Api Auth Mfa Setup Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mfa Setup",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/mfa/setup-pending": {
      "post": {
        "description": "Generate a secret for a sign-in that was stopped because the role requires a second factor.\n\nSeparate from /auth/mfa/setup because at this point the caller holds no token: the whole reason they are\nhere is that the first factor alone must not grant one. The challenge handle is the authority, it is\nre-issued so the flow can continue, and it can still do nothing but finish this one sign-in.",
        "operationId": "mfa_setup_pending_api_auth_mfa_setup_pending_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PendingSetupIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Mfa Setup Pending Api Auth Mfa Setup Pending Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mfa Setup Pending",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/oidc/callback": {
      "get": {
        "description": "Complete the exchange and hand the app a token.",
        "operationId": "oidc_callback_api_auth_oidc_callback_get",
        "parameters": [
          {
            "in": "query",
            "name": "code",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Code"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "error",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Error"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Oidc Callback",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/oidc/start": {
      "get": {
        "description": "Redirect the browser to the identity provider.",
        "operationId": "oidc_start_api_auth_oidc_start_get",
        "parameters": [
          {
            "in": "query",
            "name": "next",
            "required": false,
            "schema": {
              "default": "/",
              "title": "Next",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Oidc Start",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/password/change": {
      "post": {
        "description": "Change your own password. Proving the current one is required whenever one is set, so a borrowed\nsession cannot be turned into permanent ownership of the account.",
        "operationId": "change_password_api_auth_password_change_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Change Password Api Auth Password Change Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Change Password",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/password/reset": {
      "post": {
        "operationId": "reset_api_auth_password_reset_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Reset Api Auth Password Reset Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reset",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/password/reset-request": {
      "post": {
        "description": "Begin a password reset.\n\nAlways answers the same way, whether or not the account exists, for the enumeration reason above. There\nis no mail path here on purpose: a deployment's delivery is its own, and either a hard SMTP dependency\nor a silent no-op that looks like it worked would be worse than saying plainly that an administrator\nhands the link over. On a local deployment the link is returned directly so the flow is usable.",
        "operationId": "reset_request_api_auth_password_reset_request_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetRequestIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Reset Request Api Auth Password Reset Request Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reset Request",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/profile": {
      "get": {
        "operationId": "profile_api_auth_profile_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Profile Api Auth Profile Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Profile",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/refresh": {
      "post": {
        "description": "Mint a fresh token for the currently authenticated user so the web app can roll silently before the\ncurrent one lapses. Requires a currently valid token: an expired or revoked token cannot refresh itself.",
        "operationId": "refresh_api_auth_refresh_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Refresh Api Auth Refresh Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Refresh",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/auth/sessions/revoke": {
      "post": {
        "description": "Sign out everywhere. Bumps the token version, which invalidates every token already issued to this\nuser at once, and returns a fresh one so the caller keeps the tab they are in.",
        "operationId": "revoke_sessions_api_auth_sessions_revoke_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Revoke Sessions Api Auth Sessions Revoke Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revoke Sessions",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/auth/signup": {
      "post": {
        "description": "Create an account.\n\nTwo quite different situations share this route. On a deployment with self-signup enabled it registers\nan ordinary account at the configured role. On a brand-new deployment with no users at all it creates\nthe first administrator, which is the bootstrap that otherwise required shell access to the server.",
        "operationId": "signup_api_auth_signup_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignupIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Signup Api Auth Signup Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Signup",
        "tags": [
          "identity"
        ]
      }
    },
    "/api/autolabel/ego-masks/estimate": {
      "post": {
        "description": "Estimate + cache each camera's ego-hood mask from temporal stability. Idempotent unless force=True.\nFast (no GPU); run once before re-detection so the re-run can drop the hood.",
        "operationId": "estimate_ego_masks_api_autolabel_ego_masks_estimate_post",
        "parameters": [
          {
            "in": "query",
            "name": "force",
            "required": false,
            "schema": {
              "default": false,
              "title": "Force",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Estimate Ego Masks",
        "tags": [
          "autolabel"
        ]
      }
    },
    "/api/autolabel/pii-backfill": {
      "post": {
        "description": "Blur faces/plates on frames that predate the anonymization gate (no PII audit), overwriting the stored\nimage in place. Closes the DPDPA exposure on the existing corpus. Launched in the background.",
        "operationId": "pii_backfill_api_autolabel_pii_backfill_post",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 2000,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pii Backfill",
        "tags": [
          "autolabel"
        ]
      }
    },
    "/api/autolabel/redetect-all": {
      "post": {
        "description": "Full re-detection of the corpus with the new gates (thing/stuff, ego-hood, fusion de-dup, oversize),\nplus a PII backfill of pre-gate frames. Sequential on one GPU, yields to training. Background; poll the\nreturned run and the per-session autolabel jobs.",
        "operationId": "redetect_all_api_autolabel_redetect_all_post",
        "parameters": [
          {
            "in": "query",
            "name": "backfill_pii",
            "required": false,
            "schema": {
              "default": true,
              "title": "Backfill Pii",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Redetect All",
        "tags": [
          "autolabel"
        ]
      }
    },
    "/api/autolabel/start": {
      "post": {
        "operationId": "start_api_autolabel_start_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutolabelStartIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start",
        "tags": [
          "autolabel"
        ]
      }
    },
    "/api/autolabel/{job_id}": {
      "get": {
        "operationId": "status_api_autolabel__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Status",
        "tags": [
          "autolabel"
        ]
      }
    },
    "/api/billing/certify/{commit_id}": {
      "post": {
        "description": "Build the quality certificate for a shipped export and attach it to the invoice line.\n\nExports normally ship before they are evaluated, so without this an export that was later measured would\nstay marked unmeasured forever. Builds the certificate here rather than accepting a signature from the\ncaller: a client-supplied signature would let anybody mark a delivery certified without there being a\ncertificate behind it, which is the whole thing this is meant to attest.",
        "operationId": "certify_api_billing_certify__commit_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "eval_id",
            "required": true,
            "schema": {
              "title": "Eval Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Certify",
        "tags": [
          "billing"
        ]
      }
    },
    "/api/billing/invoice": {
      "get": {
        "description": "One line per delivery, so a disputed charge can be pointed at a specific sealed commit.\n\n`unpriced_lines` counts deliveries whose kind has no configured price. They are named rather than summed\nas zero, because a silent zero under-bills and looks exactly like a free tier.",
        "operationId": "invoice_api_billing_invoice_get",
        "parameters": [
          {
            "in": "query",
            "name": "account",
            "required": false,
            "schema": {
              "default": "default",
              "title": "Account",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since_ns",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Ns"
            }
          },
          {
            "in": "query",
            "name": "until_ns",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Until Ns"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Invoice",
        "tags": [
          "billing"
        ]
      }
    },
    "/api/billing/usage": {
      "get": {
        "description": "Usage totals by kind, with the certified and uncertified split inside each.\n\nThe split is the part worth reading. \"4.2 million objects delivered\" and \"0.3% of them carried a\nverifiable quality claim\" are two halves of one sentence, and reporting only the first is how a data\nbusiness ends up believing its own marketing.",
        "operationId": "usage_api_billing_usage_get",
        "parameters": [
          {
            "in": "query",
            "name": "account",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Account"
            }
          },
          {
            "in": "query",
            "name": "since_ns",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Ns"
            }
          },
          {
            "in": "query",
            "name": "until_ns",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Until Ns"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Usage",
        "tags": [
          "billing"
        ]
      }
    },
    "/api/calibration/sessions": {
      "get": {
        "description": "Sessions that have been validated, with their overall verdict (the report-viewer index).",
        "operationId": "list_sessions_api_calibration_sessions_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Sessions",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/validate": {
      "post": {
        "operationId": "validate_api_calibration_validate_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Validate",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/vehicle/{vehicle_id}/calibrate": {
      "post": {
        "description": "Stamp one known rig spec onto every session of a vehicle (the per-vehicle real-calibration path).",
        "operationId": "calibrate_vehicle_api_calibration_vehicle__vehicle_id__calibrate_post",
        "parameters": [
          {
            "in": "path",
            "name": "vehicle_id",
            "required": true,
            "schema": {
              "title": "Vehicle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCalibIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Calibrate Vehicle",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/{session_id}": {
      "get": {
        "operationId": "get_validation_api_calibration__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Validation",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/{session_id}/calibrate": {
      "post": {
        "description": "Set real calibration for one session's cameras from a rig spec (focal/FOV, mount height, pitch).",
        "operationId": "calibrate_session_api_calibration__session_id__calibrate_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCalibIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Calibrate Session",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/{session_id}/estimate": {
      "post": {
        "description": "Monocular estimation: recover the camera pitch from road lines (and focal from EXIF when present) for\na session's cameras, stored as source=estimated. Upgrades a session off nominal without a calib file.",
        "operationId": "estimate_session_api_calibration__session_id__estimate_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Estimate Session",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/{session_id}/extrinsics": {
      "post": {
        "description": "Cross-camera extrinsic consistency: score the epipolar (Sampson) residual of objects seen in two rig\ncameras under their resolved calibration. Single-camera sessions report no overlapping pair.",
        "operationId": "check_extrinsics_api_calibration__session_id__extrinsics_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Check Extrinsics",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/{session_id}/import": {
      "post": {
        "description": "Import dataset intrinsics (KITTI P2 or nuScenes camera_intrinsic) for one camera, stored as\nsource=dataset. Exact focal and principal point, a real win over the nominal lens.",
        "operationId": "import_calib_api_calibration__session_id__import_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportCalibIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Calib",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calibration/{session_id}/resolved": {
      "get": {
        "description": "Every camera's resolved calibration (stored real or nominal) plus the session trust level. Drives the\ningestion UI and the calibration-trust surface.",
        "operationId": "resolved_api_calibration__session_id__resolved_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolved",
        "tags": [
          "calibration"
        ]
      }
    },
    "/api/calyx/rig/{vehicle_id}/consensus": {
      "get": {
        "description": "The vehicle's fleet calibration prior, per axis, and the sessions that sit outside it.\n\nReads `camera_calibration`. This endpoint used to read `calibration_override` alone, which holds no rows\nuntil somebody corrects a calibration by hand, so it reported \"no calibrations\" for a vehicle with\nninety-seven of them. Overrides are applied on top of the estimates rather than instead of them.\n\nThe per-axis breakdown is the point. On this corpus only pitch varies; roll, yaw and all of xyz are the\nsame constant in every session, and a pooled spread over them reads as unanimous agreement when it is\nreally an absence of measurement.",
        "operationId": "rig_consensus_api_calyx_rig__vehicle_id__consensus_get",
        "parameters": [
          {
            "in": "path",
            "name": "vehicle_id",
            "required": true,
            "schema": {
              "title": "Vehicle Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig Consensus",
        "tags": [
          "calyx"
        ]
      }
    },
    "/api/calyx/rig/{vehicle_id}/history": {
      "get": {
        "description": "The rig-level drift timeline, so a slowly loosening mount is caught before it blocks.",
        "operationId": "rig_api_calyx_rig__vehicle_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "vehicle_id",
            "required": true,
            "schema": {
              "title": "Vehicle Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig",
        "tags": [
          "calyx"
        ]
      }
    },
    "/api/calyx/session/{session_id}": {
      "get": {
        "description": "The calibration state for a session: the per-camera drift deltas and severities, latest first.",
        "operationId": "session_state_api_calyx_session__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session State",
        "tags": [
          "calyx"
        ]
      }
    },
    "/api/calyx/session/{session_id}/drift": {
      "post": {
        "description": "Estimate and persist the extrinsic drift for one camera on a session from corresponding camera vs\ninertial 3D positions.",
        "operationId": "record_api_calyx_session__session_id__drift_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__calyx__DriftIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Record",
        "tags": [
          "calyx"
        ]
      }
    },
    "/api/calyx/session/{session_id}/recover": {
      "post": {
        "description": "Self-calibrate a recoverable session: compute the correction that undoes the measured drift and store\nit as a versioned override, so the session becomes usable instead of quarantined.",
        "operationId": "recover_session_api_calyx_session__session_id__recover_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecoverIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recover Session",
        "tags": [
          "calyx"
        ]
      }
    },
    "/api/calyx/targetless": {
      "post": {
        "description": "Recover focal length and pitch from natural-scene cues (orthogonal vanishing points + horizon), so a\nfield session calibrates from the scene it recorded, no target needed.",
        "operationId": "targetless_api_calyx_targetless_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TargetlessIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Targetless",
        "tags": [
          "calyx"
        ]
      }
    },
    "/api/campaigns": {
      "get": {
        "operationId": "list_campaigns_api_campaigns_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Campaigns",
        "tags": [
          "campaigns"
        ]
      },
      "post": {
        "operationId": "create_campaign_api_campaigns_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CampaignIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Campaign",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/campaigns/{campaign_id}": {
      "get": {
        "operationId": "campaign_detail_api_campaigns__campaign_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "campaign_id",
            "required": true,
            "schema": {
              "title": "Campaign Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Campaign Detail",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/campaigns/{campaign_id}/approve": {
      "post": {
        "description": "Approve and run one waiting stage. This is the human in the gate.",
        "operationId": "approve_stage_api_campaigns__campaign_id__approve_post",
        "parameters": [
          {
            "in": "path",
            "name": "campaign_id",
            "required": true,
            "schema": {
              "title": "Campaign Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "stage",
            "required": true,
            "schema": {
              "title": "Stage",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Approve Stage",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/campaigns/{campaign_id}/stop": {
      "post": {
        "operationId": "stop_api_campaigns__campaign_id__stop_post",
        "parameters": [
          {
            "in": "path",
            "name": "campaign_id",
            "required": true,
            "schema": {
              "title": "Campaign Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "reason",
            "required": false,
            "schema": {
              "default": "stopped by an operator",
              "title": "Reason",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Stop",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/campaigns/{campaign_id}/tick": {
      "post": {
        "description": "Advance a campaign by one step.\n\nOne step per call. A long-lived task could not survive a restart, be inspected halfway, or be stopped\nexcept by killing something, and all three of those matter for a loop that spends a GPU.",
        "operationId": "tick_api_campaigns__campaign_id__tick_post",
        "parameters": [
          {
            "in": "path",
            "name": "campaign_id",
            "required": true,
            "schema": {
              "title": "Campaign Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dry_run",
            "required": false,
            "schema": {
              "default": false,
              "title": "Dry Run",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Tick",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/checkpoints/{checkpoint_id}": {
      "delete": {
        "operationId": "remove_api_checkpoints__checkpoint_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "checkpoint_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Checkpoint Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Remove",
        "tags": [
          "checkpoints"
        ]
      },
      "get": {
        "description": "One checkpoint including its objects, for previewing before restoring.",
        "operationId": "get_one_api_checkpoints__checkpoint_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "checkpoint_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Checkpoint Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get One",
        "tags": [
          "checkpoints"
        ]
      }
    },
    "/api/checkpoints/{checkpoint_id}/restore": {
      "post": {
        "description": "Put the frame back to this state.\n\nTakes a checkpoint of the present first and returns its id as `undo_with`, so a restore triggered by\nmistake is one call from being reversed.",
        "operationId": "restore_api_checkpoints__checkpoint_id__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "checkpoint_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Checkpoint Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Restore",
        "tags": [
          "checkpoints"
        ]
      }
    },
    "/api/cloud/connect": {
      "post": {
        "operationId": "cloud_connect_api_cloud_connect_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Connect",
        "tags": [
          "cloud"
        ]
      }
    },
    "/api/cloud/disconnect": {
      "post": {
        "operationId": "cloud_disconnect_api_cloud_disconnect_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisconnectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Disconnect",
        "tags": [
          "cloud"
        ]
      }
    },
    "/api/cloud/orphans": {
      "get": {
        "operationId": "cloud_orphans_api_cloud_orphans_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Cloud Orphans",
        "tags": [
          "cloud"
        ]
      }
    },
    "/api/cloud/orphans/terminate": {
      "post": {
        "operationId": "cloud_terminate_orphan_api_cloud_orphans_terminate_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TerminatePodIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Terminate Orphan",
        "tags": [
          "cloud"
        ]
      }
    },
    "/api/cloud/status": {
      "get": {
        "operationId": "cloud_status_api_cloud_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Cloud Status",
        "tags": [
          "cloud"
        ]
      }
    },
    "/api/collaborate/assign": {
      "post": {
        "operationId": "assign_api_collaborate_assign_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__collaborate__AssignIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Assign",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/assignments": {
      "get": {
        "operationId": "assignments_api_collaborate_assignments_get",
        "parameters": [
          {
            "in": "query",
            "name": "user_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Assignments",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/assignments/{assignment_id}/commit": {
      "post": {
        "operationId": "commit_work_api_collaborate_assignments__assignment_id__commit_post",
        "parameters": [
          {
            "in": "path",
            "name": "assignment_id",
            "required": true,
            "schema": {
              "title": "Assignment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommitWorkIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Commit Work",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/branches": {
      "get": {
        "operationId": "branches_api_collaborate_branches_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Branches",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/merge_requests": {
      "get": {
        "operationId": "merge_requests_api_collaborate_merge_requests_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Merge Requests",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/merge_requests/open": {
      "post": {
        "operationId": "open_mr_api_collaborate_merge_requests_open_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenMRIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Open Mr",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/merge_requests/{mr_id}/approve": {
      "post": {
        "operationId": "approve_mr_api_collaborate_merge_requests__mr_id__approve_post",
        "parameters": [
          {
            "in": "path",
            "name": "mr_id",
            "required": true,
            "schema": {
              "title": "Mr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewerIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Approve Mr",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/merge_requests/{mr_id}/merge": {
      "post": {
        "operationId": "merge_mr_api_collaborate_merge_requests__mr_id__merge_post",
        "parameters": [
          {
            "in": "path",
            "name": "mr_id",
            "required": true,
            "schema": {
              "title": "Mr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewerIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Merge Mr",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/merge_requests/{mr_id}/revert": {
      "post": {
        "operationId": "revert_mr_api_collaborate_merge_requests__mr_id__revert_post",
        "parameters": [
          {
            "in": "path",
            "name": "mr_id",
            "required": true,
            "schema": {
              "title": "Mr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewerIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revert Mr",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/tasks/claim": {
      "post": {
        "description": "Milestone I: atomically claim the next pending task (race-safe; two annotators never get the same).",
        "operationId": "claim_task_ep_api_collaborate_tasks_claim_post",
        "parameters": [
          {
            "in": "query",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Claim Task Ep",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/tasks/enqueue": {
      "post": {
        "description": "Milestone I: bulk-enqueue a work list (slice members or ranked candidates) as tasks for a user.",
        "operationId": "enqueue_tasks_ep_api_collaborate_tasks_enqueue_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnqueueIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Enqueue Tasks Ep",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/tasks/stats": {
      "get": {
        "description": "Milestone I: task counts per status for a user (queue depth + work in progress).",
        "operationId": "task_stats_ep_api_collaborate_tasks_stats_get",
        "parameters": [
          {
            "in": "query",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Task Stats Ep",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/collaborate/tasks/{assignment_id}/advance": {
      "post": {
        "description": "Milestone I: move a task through the queue state machine (refuses an invalid transition).",
        "operationId": "advance_task_ep_api_collaborate_tasks__assignment_id__advance_post",
        "parameters": [
          {
            "in": "path",
            "name": "assignment_id",
            "required": true,
            "schema": {
              "title": "Assignment Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to_status",
            "required": true,
            "schema": {
              "title": "To Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Advance Task Ep",
        "tags": [
          "collaborate"
        ]
      }
    },
    "/api/corrections/confusions": {
      "get": {
        "description": "Aggregate the Review audit trail into confusion pairs (old class -> corrected class x count).\n`by=camera|city` additionally groups by that dimension. The learn-from-corrections signal.",
        "operationId": "confusions_api_corrections_confusions_get",
        "parameters": [
          {
            "in": "query",
            "name": "by",
            "required": false,
            "schema": {
              "default": "class",
              "title": "By",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Confusions",
        "tags": [
          "corrections"
        ]
      }
    },
    "/api/corrections/coverage": {
      "get": {
        "description": "How much of the corpus similar-search can actually reach.\n\nThis counted the legacy `Embedding` table, which nothing has written since the move to pgvector, so it\nreported near zero against a corpus that is in fact fully embedded. The live tables are\n`object_embedding` and `frame_embedding`.\n\nReported by vector rather than by row, because a row is not a vector: `siglip_vec` arrived later as a\nnullable column, and a crop holding a DINOv3 vector and a NULL SigLIP2 one is reachable by\nfind-similar and unreachable by text. One number cannot say both, so it does not try.",
        "operationId": "coverage_api_corrections_coverage_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Coverage",
        "tags": [
          "corrections"
        ]
      }
    },
    "/api/corrections/embed": {
      "post": {
        "description": "Compute CLIP object embeddings (a session, or the whole corpus) in the background so the\nsimilar-search has coverage. GPU work; yields to a running training job.",
        "operationId": "embed_api_corrections_embed_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Embed",
        "tags": [
          "corrections"
        ]
      }
    },
    "/api/corrections/suggest": {
      "post": {
        "operationId": "suggest_api_corrections_suggest_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuggestIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Suggest",
        "tags": [
          "corrections"
        ]
      }
    },
    "/api/curation/dedup": {
      "post": {
        "description": "Near-duplicate detection for a session (pHash prefilter + DINOv3 confirm): groups near-dups, keeps\none canonical per group, sets selected=false on the rest. CPU + existing vectors, no GPU needed.",
        "operationId": "dedup_api_curation_dedup_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dedup",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/curation/diverse": {
      "get": {
        "operationId": "diverse_api_curation_diverse_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "k",
            "required": false,
            "schema": {
              "default": 50,
              "title": "K",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Diverse",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/curation/embed": {
      "post": {
        "operationId": "embed_api_curation_embed_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Embed",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/curation/extract": {
      "post": {
        "description": "Intelligent frame extraction: re-select a session keeping scene changes + rare events, dropping\nnear-static stretches, within a frame budget. Writes selected + novelty_score, never deletes.",
        "operationId": "extract_api_curation_extract_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Extract",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/curation/slices": {
      "get": {
        "operationId": "list_curation_slices_api_curation_slices_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Curation Slices",
        "tags": [
          "curation"
        ]
      },
      "post": {
        "description": "Milestone I: define a named, reusable dataset cohort (scene + class/state/geo/conf predicate).",
        "operationId": "create_curation_slice_api_curation_slices_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SliceIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Curation Slice",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/curation/slices/{slice_id}/materialize": {
      "get": {
        "description": "The cohort size and a sample of matching frames, so a curator sees the slice before exporting it.",
        "operationId": "materialize_curation_slice_api_curation_slices__slice_id__materialize_get",
        "parameters": [
          {
            "in": "path",
            "name": "slice_id",
            "required": true,
            "schema": {
              "title": "Slice Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sample",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Sample",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Materialize Curation Slice",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/curation/summary": {
      "get": {
        "operationId": "summary_api_curation_summary_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Summary",
        "tags": [
          "curation"
        ]
      }
    },
    "/api/datasets": {
      "get": {
        "operationId": "list_datasets_api_datasets_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Datasets",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/blob": {
      "get": {
        "description": "Fetch a shard or index this API produced.\n\nRouted through the API rather than handing out bucket credentials, so one token governs access to the\nimages, the labels and the artifacts alike. Confined to the datasets prefix: the parameter is caller\nsupplied, and a blob reader that will fetch any URI it is given is a way to read the whole object store.",
        "operationId": "dataset_blob_api_datasets_blob_get",
        "parameters": [
          {
            "in": "query",
            "name": "uri",
            "required": true,
            "schema": {
              "title": "Uri",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dataset Blob",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/compile": {
      "get": {
        "description": "The predicate a query compiles to, without building anything.\n\nSeparate from the build because a dataset whose contents cannot be explained is one nobody can defend,\nand the cheapest moment to notice that a term expanded to the wrong classes is before the shards exist.",
        "operationId": "compile_only_api_datasets_compile_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compile Only",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/export": {
      "post": {
        "operationId": "start_export_api_datasets_export_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__deps__ExportIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start Export",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/lake/publish": {
      "post": {
        "description": "Publish the annotation plane to Iceberg for the customer's own query engine.\n\nAdmin, not reviewer: this writes the whole label corpus to a location outside the API's access control,\nwhich is a data-egress decision rather than a reporting one.",
        "operationId": "publish_lake_api_datasets_lake_publish_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Publish Lake",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/lake/{table}": {
      "get": {
        "description": "A sample of a published table, so the lake is checkable without a query engine to hand.",
        "operationId": "read_lake_api_datasets_lake__table__get",
        "parameters": [
          {
            "in": "path",
            "name": "table",
            "required": true,
            "schema": {
              "title": "Table",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read Lake",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/preview": {
      "get": {
        "description": "How many frames and objects the query selects, and the class mix, without writing a byte.\n\n\"How many riders at night does this actually contain\" is a question asked before training, not after.",
        "operationId": "preview_api_datasets_preview_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Version"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200000,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/shards": {
      "post": {
        "description": "Build WebDataset shards plus a Parquet index for a query.",
        "operationId": "build_api_datasets_shards_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__dataset_query__BuildIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Build",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/versions/{name}": {
      "get": {
        "description": "A dataset's versions by name, in order, each with the delta from the one before it.\n\nDistinct from /datasets/{commit_id}/lineage, which walks one commit's parent chain. This is the list a\nrelease manager reads: not \"where did this commit come from\" but \"how has this dataset moved\".",
        "operationId": "dataset_versions_api_datasets_versions__name__get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dataset Versions",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/vocabulary": {
      "get": {
        "description": "Every term a query can use. Returned because the compiler refuses unknown terms rather than ignoring\nthem, and a refusal is only helpful next to the list of what would have worked.",
        "operationId": "vocabulary_api_datasets_vocabulary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Vocabulary",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/{a_id}/diff/{b_id}": {
      "get": {
        "description": "What changed between two snapshots.\n\nThe headline comparison (counts, ontology, slice spec) answers \"is it bigger\". `deep` also resolves\nwhich objects entered and left and how the class distribution moved, which is what somebody deciding\nwhether to take a new version actually needs. It costs a query over both object sets, so it can be\nturned off for a cheap check.",
        "operationId": "dataset_diff_api_datasets__a_id__diff__b_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "a_id",
            "required": true,
            "schema": {
              "title": "A Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "b_id",
            "required": true,
            "schema": {
              "title": "B Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "deep",
            "required": false,
            "schema": {
              "default": true,
              "title": "Deep",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sample",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Sample",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dataset Diff",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/{commit_id}": {
      "get": {
        "operationId": "dataset_detail_api_datasets__commit_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dataset Detail",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/{commit_id}/download": {
      "get": {
        "description": "Stream the whole sealed dataset as a ZIP.\n\nTaking delivery previously meant fetching every file through its own presigned URL, which for a dataset\nof forty thousand frames is forty thousand round trips. Building the archive in the API process instead\nwould hold the entire dataset in memory; this streams it a file at a time, so peak memory is one file\nhowever large the dataset is.\n\nNo Content-Length: the compressed size is not known until the last entry is written, and guessing one\nwould truncate the download at whatever was guessed.",
        "operationId": "download_dataset_api_datasets__commit_id__download_get",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Download Dataset",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/datasets/{commit_id}/lineage": {
      "get": {
        "description": "Milestone I: walk a snapshot's parent chain back to its root (the slice's version history).",
        "operationId": "dataset_lineage_api_datasets__commit_id__lineage_get",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dataset Lineage",
        "tags": [
          "datasets"
        ]
      }
    },
    "/api/discovery/queue": {
      "get": {
        "operationId": "queue_api_discovery_queue_get",
        "parameters": [
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "default": "pending",
              "title": "State",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Queue",
        "tags": [
          "discovery"
        ]
      }
    },
    "/api/discovery/run": {
      "post": {
        "operationId": "run_api_discovery_run_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "discovery"
        ]
      }
    },
    "/api/discovery/{candidate_id}/state": {
      "post": {
        "operationId": "set_state_api_discovery__candidate_id__state_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CandidateStateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set State",
        "tags": [
          "discovery"
        ]
      }
    },
    "/api/drivable/backfill": {
      "post": {
        "description": "Segment every frame that has no mask. Reviewer floor: it holds the GPU for as long as it runs.",
        "operationId": "drivable_backfill_api_drivable_backfill_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "max_frames",
            "required": false,
            "schema": {
              "default": 50000,
              "title": "Max Frames",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "redo",
            "required": false,
            "schema": {
              "default": false,
              "title": "Redo",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Drivable Backfill",
        "tags": [
          "drivable"
        ]
      }
    },
    "/api/drivable/coverage": {
      "get": {
        "description": "How much of the corpus carries a mask, by capture size.\n\nBroken down because the headline hides the shape: the buckets that look finished are small older\nimports, and the main dashcam corpus is the empty one.",
        "operationId": "drivable_coverage_api_drivable_coverage_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Drivable Coverage",
        "tags": [
          "drivable"
        ]
      }
    },
    "/api/driving-events/{event_id}/confirm": {
      "post": {
        "description": "Accept a candidate. It stops being re-derivable and becomes a label.",
        "operationId": "confirm_api_driving_events__event_id__confirm_post",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RulingIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Confirm",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/driving-events/{event_id}/reject": {
      "post": {
        "description": "Reject a candidate. It is kept, not deleted, so a re-derivation does not propose it again.",
        "operationId": "reject_api_driving_events__event_id__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RulingIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reject",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/dynamics/compute": {
      "post": {
        "operationId": "compute_api_dynamics_compute_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compute",
        "tags": [
          "dynamics"
        ]
      }
    },
    "/api/dynamics/frame/{frame_id}": {
      "get": {
        "operationId": "get_frame_api_dynamics_frame__frame_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Frame",
        "tags": [
          "dynamics"
        ]
      }
    },
    "/api/dynamics/object/{object_id}": {
      "get": {
        "operationId": "get_object_api_dynamics_object__object_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Object",
        "tags": [
          "dynamics"
        ]
      }
    },
    "/api/edge/artifacts/{artifact_id}/field": {
      "get": {
        "description": "What the field says about one artifact, next to what the bench said.\n\nThe comparison is the product. Either number alone is uninteresting; the gap is the thing the gate has\nnever been able to see.",
        "operationId": "field_report_api_edge_artifacts__artifact_id__field_get",
        "parameters": [
          {
            "in": "path",
            "name": "artifact_id",
            "required": true,
            "schema": {
              "title": "Artifact Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "default": 168,
              "maximum": 8760,
              "minimum": 1,
              "title": "Hours",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Field Report",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/edge/artifacts/{artifact_id}/gate": {
      "get": {
        "description": "The gate's view once the field has been heard from.\n\nAdvisory by construction. Telemetry comes from devices, which are outside the trust boundary, so a\nsingle misconfigured unit must not be able to demote a champion.",
        "operationId": "field_gate_api_edge_artifacts__artifact_id__gate_get",
        "parameters": [
          {
            "in": "path",
            "name": "artifact_id",
            "required": true,
            "schema": {
              "title": "Artifact Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "default": 168,
              "maximum": 8760,
              "minimum": 1,
              "title": "Hours",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Field Gate",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/edge/devices": {
      "get": {
        "operationId": "list_devices_api_edge_devices_get",
        "parameters": [
          {
            "in": "query",
            "name": "fleet",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fleet"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Devices",
        "tags": [
          "edge"
        ]
      },
      "post": {
        "description": "Register or update a device. Idempotent: a device re-registers on every boot.",
        "operationId": "register_device_api_edge_devices_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Register Device",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/edge/fleet": {
      "get": {
        "operationId": "fleet_summary_api_edge_fleet_get",
        "parameters": [
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "default": 24,
              "maximum": 8760,
              "minimum": 1,
              "title": "Hours",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fleet Summary",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/edge/telemetry": {
      "post": {
        "description": "Accept one reporting window from one device.\n\nA window rather than a sample: a device posting every inference would spend its uplink on telemetry,\nand p50, p95 and the thermal ceiling reached are properties of a window anyway.",
        "operationId": "ingest_telemetry_api_edge_telemetry_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TelemetryIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ingest Telemetry",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/embeddings/compute": {
      "post": {
        "operationId": "embeddings_compute_api_embeddings_compute_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Payload",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Embeddings Compute",
        "tags": [
          "search"
        ]
      }
    },
    "/api/errordetect/candidates": {
      "get": {
        "description": "The ranked queue, optionally one detector at a time.\n\nFiltering by kind matters more than it looks. The queue ranks across detectors by score, and the\ndetectors do not produce commensurable scores, so a mixed page is mostly whichever detector emits the\nlargest numbers. Reviewing one detector at a time is also the only way to judge that detector, which is\nwhat the verdicts are for.",
        "operationId": "candidates_api_errordetect_candidates_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "pending",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Candidates",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/errordetect/candidates/bulk": {
      "post": {
        "description": "Rule on many candidates in one action.\n\n298,529 candidates carry one verdict between them, and confirm and dismiss both took a single id, so the\nqueue was not reviewable in principle. Dismissing 400 near-duplicate candidates is one judgement about a\ndetector rather than 400 judgements about objects, and `note` is where that judgement survives.\n\nCandidates somebody already ruled on are skipped rather than overwritten, and reported as\nalready_decided: two reviewers on the same queue is normal, and silently replacing the first verdict\nwould corrupt the calibration with no trace of the disagreement.",
        "operationId": "bulk_api_errordetect_candidates_bulk_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkVerdictIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/errordetect/candidates/{candidate_id}/confirm": {
      "post": {
        "operationId": "confirm_api_errordetect_candidates__candidate_id__confirm_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Confirm",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/errordetect/candidates/{candidate_id}/dismiss": {
      "post": {
        "operationId": "dismiss_api_errordetect_candidates__candidate_id__dismiss_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "note",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Note"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dismiss",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/errordetect/precision": {
      "get": {
        "description": "Per-detector precision, from the verdicts humans have given.\n\nThe calibration this queue has never had. Each detector emits a score and nothing said whether a high\none meant anything. Confirmed over confirmed-plus-dismissed is the answer, and every rate carries its\ninterval and count so a detector with three verdicts is not compared against one with three hundred.",
        "operationId": "precision_api_errordetect_precision_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Precision",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/errordetect/run": {
      "post": {
        "operationId": "run_api_errordetect_run_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DetectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/errordetect/summary": {
      "get": {
        "operationId": "summary_ep_api_errordetect_summary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Summary Ep",
        "tags": [
          "errordetect"
        ]
      }
    },
    "/api/eval/operations": {
      "get": {
        "description": "Every operation kind with its measurement state, for the panel header.\n\nScored over recent runs by default, so an operation that has been fixed can earn its score back. Pass\nwindow_days=0 for the all-time view, which is the right question when auditing what an operation has\never done rather than whether to trust it now.",
        "operationId": "operations_api_eval_operations_get",
        "parameters": [
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": 30,
              "title": "Window Days"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Operations Api Eval Operations Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Operations",
        "tags": [
          "eval"
        ]
      }
    },
    "/api/eval/operations/{op_type}/latest": {
      "get": {
        "description": "The latest measurement for one operation, or 404 when there is not enough evidence to have one.",
        "operationId": "operation_latest_api_eval_operations__op_type__latest_get",
        "parameters": [
          {
            "in": "path",
            "name": "op_type",
            "required": true,
            "schema": {
              "title": "Op Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": 30,
              "title": "Window Days"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Operation Latest Api Eval Operations  Op Type  Latest Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Operation Latest",
        "tags": [
          "eval"
        ]
      }
    },
    "/api/eval/tracking": {
      "post": {
        "description": "MOTA, IDF1 and HOTA for one inference run against one sealed gold set.\n\n422 rather than 500 when the gold set carries no identities: it is a well-formed request against a set\nthat cannot answer it, and the message says which objects are missing a track.",
        "operationId": "score_tracking_api_eval_tracking_post",
        "parameters": [
          {
            "in": "query",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "iou_thr",
            "required": false,
            "schema": {
              "default": 0.5,
              "maximum": 0.95,
              "minimum": 0.1,
              "title": "Iou Thr",
              "type": "number"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Score Tracking",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/events/corpus-summary": {
      "get": {
        "description": "What the corpus holds, so a question can be aimed rather than guessed at.",
        "operationId": "corpus_summary_ep_api_events_corpus_summary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Corpus Summary Ep",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/events/jobs": {
      "get": {
        "description": "Stream job state, emitting only when it changes.\n\nThe first frame is always sent so a client renders immediately rather than waiting for the first change,\nwhich would otherwise leave a freshly opened page blank for as long as the system is quiet.\n\nNo `Depends(db_session)`: a request-scoped session stays open until the response completes, and this\nresponse never completes, so it would hold a pooled connection for the entire life of every open tab.\nThe generator opens and closes a short-lived session per tick instead.",
        "operationId": "job_events_api_events_jobs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Job Events",
        "tags": [
          "events"
        ]
      }
    },
    "/api/events/notifications": {
      "get": {
        "description": "Stream this user's unread count and newest notifications, so the bell updates without a poll.\n\nScoped to the caller. A notification stream that pushed everyone's events to everyone would leak who is\nbeing assigned what, which on a corpus with a review hierarchy is real information about people.",
        "operationId": "notification_events_api_events_notifications_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Notification Events",
        "tags": [
          "events"
        ]
      }
    },
    "/api/events/search": {
      "get": {
        "description": "Behaviour across the whole corpus, not one session.\n\nEvery other event route is session-scoped, which is right for reviewing a drive and wrong for the\nquestion the events exist to answer. `with_kind` and `with_state` are the conjunction: \"every illegal\nlane change while a signal was showing red\" is a temporal join within a session, and it is the query\nthat makes this layer worth having rather than merely correct.\n\nComma-separated values are accepted on kind, severity and state so a filter chip can send several.",
        "operationId": "search_api_events_search_get",
        "parameters": [
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "city",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "City"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "min_conf",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Min Conf"
            }
          },
          {
            "in": "query",
            "name": "with_kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "With Kind"
            }
          },
          {
            "in": "query",
            "name": "with_state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "With State"
            }
          },
          {
            "in": "query",
            "name": "within_ms",
            "required": false,
            "schema": {
              "default": 0,
              "title": "Within Ms",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/events/system": {
      "get": {
        "description": "Stream machine state for the console.\n\nUnlike the job stream this emits every tick rather than only on change: utilisation and temperature are\nnever equal two ticks running, so change detection would emit constantly anyway, and a console whose\nnumbers freeze is indistinguishable from one whose connection died.",
        "operationId": "system_events_api_events_system_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "System Events",
        "tags": [
          "events"
        ]
      }
    },
    "/api/events/taxonomy": {
      "get": {
        "description": "The event vocabulary: kinds, their shape, anchor, severity, and whether a deriver may propose them.\n\nThe editor builds its event picker from this, so adding a kind to the config file adds it to the UI with\nno code change on either side.",
        "operationId": "taxonomy_api_events_taxonomy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Taxonomy",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/events/training/{job_id}": {
      "get": {
        "description": "Stream one training job's progress, closing when it reaches a terminal state.\n\nA per-job stream exists because the training page wants epoch-level updates for the run being watched,\nand putting that in the global stream would push every client the details of a job they are not looking\nat. Closing on terminal state means the client does not hold a connection open for a finished job.",
        "operationId": "training_job_events_api_events_training__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Training Job Events",
        "tags": [
          "events"
        ]
      }
    },
    "/api/events/{event_id}": {
      "delete": {
        "description": "Delete an event with optimistic concurrency.",
        "operationId": "remove_timeline_event_api_events__event_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "expected_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expected Version"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Remove Timeline Event",
        "tags": [
          "inertial"
        ]
      },
      "patch": {
        "description": "Edit an event with optimistic concurrency: a stale expected_version is a 409.",
        "operationId": "edit_timeline_event_api_events__event_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventEdit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Edit Timeline Event",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/experiments": {
      "get": {
        "operationId": "list_experiments_api_experiments_get",
        "parameters": [
          {
            "in": "query",
            "name": "task_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Task Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Experiments",
        "tags": [
          "experiments"
        ]
      },
      "post": {
        "operationId": "create_experiment_api_experiments_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExperimentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Experiment",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/experiments/runs/compare": {
      "get": {
        "description": "Two runs side by side: what differed going in, and what it did coming out.",
        "operationId": "compare_api_experiments_runs_compare_get",
        "parameters": [
          {
            "in": "query",
            "name": "a",
            "required": true,
            "schema": {
              "title": "A",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "b",
            "required": true,
            "schema": {
              "title": "B",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compare",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/experiments/{name}": {
      "get": {
        "operationId": "experiment_detail_api_experiments__name__get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "metric",
            "required": false,
            "schema": {
              "default": "map50",
              "title": "Metric",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Experiment Detail",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/experiments/{name}/runs": {
      "post": {
        "operationId": "attach_run_api_experiments__name__runs_post",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Attach Run",
        "tags": [
          "experiments"
        ]
      }
    },
    "/api/explore/eval": {
      "post": {
        "description": "Score an inference run against a sealed gold set, recording every individual tp/fp/fn so the confusion\nmatrix can be opened cell by cell. Predictions come from the immutable prediction plane, never live corpus\nstate. Pass a run_id to score an existing run, or a model_version to run inference on the gold set first.",
        "operationId": "run_eval_api_explore_eval_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__explore__EvalIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Eval",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/eval/{eval_id}": {
      "delete": {
        "operationId": "delete_eval_api_explore_eval__eval_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "eval_id",
            "required": true,
            "schema": {
              "title": "Eval Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Eval",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/eval/{eval_id}/cells": {
      "get": {
        "operationId": "eval_cells_api_explore_eval__eval_id__cells_get",
        "parameters": [
          {
            "in": "path",
            "name": "eval_id",
            "required": true,
            "schema": {
              "title": "Eval Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Eval Cells",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/eval/{eval_id}/patches": {
      "get": {
        "description": "The crops behind one confusion cell.",
        "operationId": "eval_patches_api_explore_eval__eval_id__patches_get",
        "parameters": [
          {
            "in": "path",
            "name": "eval_id",
            "required": true,
            "schema": {
              "title": "Eval Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "gt_class_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Gt Class Id"
            }
          },
          {
            "in": "query",
            "name": "pred_class_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Pred Class Id"
            }
          },
          {
            "in": "query",
            "name": "outcome",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Outcome"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 120,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Eval Patches",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/evals": {
      "get": {
        "operationId": "list_evals_api_explore_evals_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Evals",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/facets": {
      "post": {
        "description": "Faceted counts under the current predicate, each facet computed with its own clause dropped.",
        "operationId": "facets_api_explore_facets_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": {},
                "title": "Predicate",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Facets",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/gold/{gold_id}/provenance": {
      "get": {
        "description": "The confirmed-detection vs drawn-from-scratch split of a gold set, so the eval UI never again conflates\na model miss with a detection a human simply confirmed.",
        "operationId": "gold_provenance_api_explore_gold__gold_id__provenance_get",
        "parameters": [
          {
            "in": "path",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gold Provenance",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/projection": {
      "post": {
        "description": "Fit and persist a 2D map of an embedding space. Reviewer-gated: a fit over the full corpus is minutes\nof CPU, so it is not an anonymous annotator action.",
        "operationId": "fit_projection_api_explore_projection_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectionIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fit Projection",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/projection/{projection_id}": {
      "delete": {
        "operationId": "delete_projection_api_explore_projection__projection_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "projection_id",
            "required": true,
            "schema": {
              "title": "Projection Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Projection",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/projection/{projection_id}/points": {
      "get": {
        "operationId": "projection_points_api_explore_projection__projection_id__points_get",
        "parameters": [
          {
            "in": "path",
            "name": "projection_id",
            "required": true,
            "schema": {
              "title": "Projection Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50000,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Projection Points",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/projections": {
      "get": {
        "operationId": "list_projections_api_explore_projections_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Projections",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/select": {
      "post": {
        "description": "Resolve a predicate to concrete ids and a count: what a lasso or a filter currently covers.",
        "operationId": "select_ids_api_explore_select_post",
        "parameters": [
          {
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "default": "object",
              "title": "Level",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 5000,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": {},
                "title": "Predicate",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Select Ids",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/tag": {
      "post": {
        "description": "Add and/or remove curation tags across everything matching the predicate. Idempotent.",
        "operationId": "apply_tags_api_explore_tag_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Apply Tags",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/tags": {
      "get": {
        "operationId": "tag_vocabulary_api_explore_tags_get",
        "parameters": [
          {
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "default": "object",
              "title": "Level",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Tag Vocabulary",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/views": {
      "get": {
        "description": "Saved views are CurationSlice rows: the explorer and the export path share one cohort definition.",
        "operationId": "list_views_api_explore_views_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Views",
        "tags": [
          "explore"
        ]
      },
      "post": {
        "operationId": "save_view_api_explore_views_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Save View",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/explore/views/{slice_id}/export-spec": {
      "get": {
        "description": "Turn a saved view into the export SliceSpec, so a curated cohort exports without being redefined.",
        "operationId": "view_export_spec_api_explore_views__slice_id__export_spec_get",
        "parameters": [
          {
            "in": "path",
            "name": "slice_id",
            "required": true,
            "schema": {
              "title": "Slice Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "View Export Spec",
        "tags": [
          "explore"
        ]
      }
    },
    "/api/export": {
      "post": {
        "operationId": "export_api_export_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__deps__ExportIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export",
        "tags": [
          "export"
        ]
      }
    },
    "/api/export/scenario/event/{event_id}": {
      "get": {
        "description": "An ASAM OpenSCENARIO 1.2 document for a mined event, runnable in a simulator.\n\nThe map half of sim handover already existed: hdmap/export.py emits OpenDRIVE and Lanelet2, so a\ncustomer could load the road but not what happened on it. `road_network_file` is the OpenDRIVE the\nscenario references, and should be the one exported for the same session.\n\n`fmt=json` returns the document alongside what was excluded from it, which is the part worth reading:\nroadside furniture, tracks too short to describe a manoeuvre, and actors that never came near. A\nscenario that silently dropped the other vehicle would look complete.",
        "operationId": "scenario_from_event_api_export_scenario_event__event_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "near_m",
            "required": false,
            "schema": {
              "default": 60.0,
              "title": "Near M",
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "pad_s",
            "required": false,
            "schema": {
              "default": 4.0,
              "title": "Pad S",
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "road_network_file",
            "required": false,
            "schema": {
              "default": "map.xodr",
              "title": "Road Network File",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fmt",
            "required": false,
            "schema": {
              "default": "xml",
              "title": "Fmt",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scenario From Event",
        "tags": [
          "export"
        ]
      }
    },
    "/api/export/scenario/session/{session_id}": {
      "get": {
        "description": "The same, for an arbitrary window rather than a detected event.",
        "operationId": "scenario_from_window_api_export_scenario_session__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "t_start_ns",
            "required": true,
            "schema": {
              "title": "T Start Ns",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "t_end_ns",
            "required": true,
            "schema": {
              "title": "T End Ns",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "near_m",
            "required": false,
            "schema": {
              "default": 60.0,
              "title": "Near M",
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "road_network_file",
            "required": false,
            "schema": {
              "default": "map.xodr",
              "title": "Road Network File",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fmt",
            "required": false,
            "schema": {
              "default": "xml",
              "title": "Fmt",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "default": "scenario",
              "title": "Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scenario From Window",
        "tags": [
          "export"
        ]
      }
    },
    "/api/export/{commit_id}/certificate": {
      "get": {
        "description": "The signed quality certificate for a release: per-class precision and recall, with intervals.\n\n`fmt=markdown` renders the document a buyer reads, which leads with the classes that were not measured\nrather than with the headline numbers. The JSON form carries the same manifest plus its signature, so a\nrecipient can verify nothing was edited after issue.",
        "operationId": "certificate_api_export__commit_id__certificate_get",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "eval_id",
            "required": true,
            "schema": {
              "title": "Eval Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fmt",
            "required": false,
            "schema": {
              "default": "json",
              "title": "Fmt",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Certificate",
        "tags": [
          "export"
        ]
      }
    },
    "/api/exports/resumable": {
      "get": {
        "description": "Failed exports that still have a usable checkpoint.",
        "operationId": "list_resumable_api_exports_resumable_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Resumable",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/exports/{job_id}/progress": {
      "get": {
        "operationId": "export_progress_api_exports__job_id__progress_get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Progress",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/exports/{job_id}/resume": {
      "post": {
        "description": "Continue a failed export from where it stopped.\n\nThe chunks already written are verified before being skipped: a checkpoint believed without checking\nturns a partial write into a dataset that claims completeness.",
        "operationId": "resume_export_api_exports__job_id__resume_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resume Export",
        "tags": [
          "edge"
        ]
      }
    },
    "/api/flywheel/adaptive/auto": {
      "post": {
        "description": "Run one adaptive cycle from real corpus signals: class starvation (VRU/animal/two-wheeler classes below\ntheir floor) drives the label budget, ODD scene gaps drive collection, and the response carries the per-class\nwork order of real candidate objects a reviewer would open. This closes the loop on live data.",
        "operationId": "adaptive_auto_api_flywheel_adaptive_auto_post",
        "parameters": [
          {
            "in": "query",
            "name": "total_label_budget",
            "required": false,
            "schema": {
              "default": 2000,
              "title": "Total Label Budget",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "safety_floor",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Safety Floor",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "min_share",
            "required": false,
            "schema": {
              "default": 0.003,
              "title": "Min Share",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Adaptive Auto",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/adaptive/collection-orders": {
      "post": {
        "description": "Turn a cycle's collection tasks into ranked fleet collection orders: scene cells become windowed,\nforecast-aware drives and empty species become class-collection orders, each with its target count. View\nthe result on the fleet board (GET /api/agent/fleet/orders).",
        "operationId": "adaptive_collection_orders_api_flywheel_adaptive_collection_orders_post",
        "parameters": [
          {
            "in": "query",
            "name": "cycle_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cycle Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Adaptive Collection Orders",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/adaptive/cycle": {
      "post": {
        "description": "Run one adaptive cycle: route VERDYX regressions to a label-budget allocation and SIEVYX ODD gaps to\ncollection tasks, then record the cycle to the ledger. This is the controller that closes the loop.",
        "operationId": "adaptive_cycle_run_api_flywheel_adaptive_cycle_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdaptiveIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Adaptive Cycle Run",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/adaptive/cycles": {
      "get": {
        "description": "The adaptive-cycle history: how the data engine steered its label spend and collection over time.",
        "operationId": "adaptive_cycles_api_flywheel_adaptive_cycles_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Adaptive Cycles",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/adaptive/dispatch": {
      "post": {
        "description": "Action a cycle's work order: bump its real labelable candidates into the review queue, stamped with the\ncycle provenance, as one reversible AgentRun. Never touches a human-accepted object.",
        "operationId": "adaptive_dispatch_api_flywheel_adaptive_dispatch_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__flywheel__DispatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Adaptive Dispatch",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/gate-directed": {
      "get": {
        "description": "Plan a batch for the most recent unpromoted run, so a caller can ask what to label next without first\nhaving to know which run last failed the gate.",
        "operationId": "gate_directed_latest_api_flywheel_gate_directed_get",
        "parameters": [
          {
            "in": "query",
            "name": "budget",
            "required": false,
            "schema": {
              "default": 500,
              "title": "Budget",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gate Directed Latest",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/gate-directed/{run_id}": {
      "get": {
        "description": "Diagnose why a training run cannot be promoted and plan the review batch that would unblock it.\n\nRead-only: it reports which safety classes miss their recall floor or regressed, how the label budget\nsplits across them, and how many frames a reviewer would open. A run the gate does not block returns no\nallocations rather than manufacturing work.",
        "operationId": "gate_directed_plan_api_flywheel_gate_directed__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "budget",
            "required": false,
            "schema": {
              "default": 500,
              "title": "Budget",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gate Directed Plan",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/gate-directed/{run_id}/materialize": {
      "post": {
        "description": "Create one labelops task per blocked safety class, holding exactly the frames worth reviewing.\n\nThese are review batches, not training data. Nothing here writes an accepted label: iteration 5 trained on\nunreviewed machine labels and drove pedestrian recall from 0.73 to 0.004, which is the failure this\nendpoint exists to route around.",
        "operationId": "gate_directed_materialize_api_flywheel_gate_directed__run_id__materialize_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GateBatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gate Directed Materialize",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/lineage/{deployment_id}": {
      "get": {
        "description": "Resolve a deployed model all the way back to its source sessions and their gate state, one query.",
        "operationId": "lineage_api_flywheel_lineage__deployment_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "deployment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Deployment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lineage",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/session/{session_id}/run": {
      "post": {
        "description": "Run the flywheel for a session: enforce the SANYX and CALYX gates, and report how far it proceeds.",
        "operationId": "run_api_flywheel_session__session_id__run_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/flywheel/stages": {
      "get": {
        "description": "The flywheel stage order, from the platform registry.",
        "operationId": "stages_api_flywheel_stages_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Stages",
        "tags": [
          "flywheel"
        ]
      }
    },
    "/api/forgyx/benchmark": {
      "post": {
        "description": "Ingest a benchmark measured on a target device (Jetson/Android/Hailo report their real numbers here).",
        "operationId": "ingest_benchmark_api_forgyx_benchmark_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BenchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ingest Benchmark",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/benchmarks": {
      "get": {
        "description": "The benchmark matrix across (model, target), Pareto-ranked on latency vs accuracy.",
        "operationId": "benchmarks_api_forgyx_benchmarks_get",
        "parameters": [
          {
            "in": "query",
            "name": "model_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Model Version"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Benchmarks",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/benchmarks/audit": {
      "get": {
        "description": "Which recorded benchmarks name an artifact that is not in object storage.\n\nReports rather than deletes. A missing artifact can mean a fabricated row or a rotated bucket under a\nreal measurement, and this cannot tell those apart; naming them is what lets somebody who knows decide.",
        "operationId": "benchmarks_audit_api_forgyx_benchmarks_audit_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Benchmarks Audit",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/capabilities": {
      "get": {
        "description": "Which edge targets this machine can actually build (the rest run on their target device).",
        "operationId": "capabilities_api_forgyx_capabilities_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Capabilities",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/cooptimize": {
      "post": {
        "description": "Plan model-target co-optimization: rank (prune, int8) configs and pick the most accurate one that clears\nthe target latency budget.",
        "operationId": "cooptimize_api_forgyx_cooptimize_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CooptIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cooptimize",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/deployments": {
      "get": {
        "description": "The deployment artifact registry, with lineage to the release and verdict.",
        "operationId": "deployments_api_forgyx_deployments_get",
        "parameters": [
          {
            "in": "query",
            "name": "model_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Model Version"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Deployments",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/export/{model_version}": {
      "post": {
        "description": "Export a registered model to ONNX, store the artifact, and time it on this machine.\n\nThe first thing in FORGYX that produces an artifact. The module could rank targets, sign manifests and\nplan rollouts, but nothing in it could make the thing all of that was about.\n\nThe target is named for the runtime that actually served the measurement, so a CPU fallback is never\nfiled as a GPU result. Boards this system does not host report their own numbers through\nPOST /forgyx/benchmark instead: an Orin figure has to come from an Orin.",
        "operationId": "export_model_api_forgyx_export__model_version__post",
        "parameters": [
          {
            "in": "path",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__forgyx__ExportIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Model",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/gate": {
      "post": {
        "description": "The dual regression gate: block on latency regression OR protected-slice accuracy regression.",
        "operationId": "gate_api_forgyx_gate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gate",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/rollout": {
      "post": {
        "description": "The rollout/rollback transition for a deployment; refuses an illegal jump (e.g. none straight to full).",
        "operationId": "rollout_api_forgyx_rollout_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolloutIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rollout",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/forgyx/thermal": {
      "post": {
        "description": "Check a device-farm sustained-load run against the target thermal/power envelope (refused without real\nreadings).",
        "operationId": "thermal_api_forgyx_thermal_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThermalIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Thermal",
        "tags": [
          "forgyx"
        ]
      }
    },
    "/api/frames/{frame_id}": {
      "get": {
        "description": "Frame meta for the editor: dimensions, image url, object count, and prev/next for keyboard\nnavigation.\n\nWith a job, prev/next stay inside that job's frames. Without one they walk the session by capture time,\nwhich is the right answer for somebody reviewing a drive and the wrong one for somebody working an\nassignment: session order walks straight out of the job at its first or last frame, and on a replica\njob that means leaving blind mode and drawing boxes the agreement pass will never see.\n\nUnder a blind audit this route is a leak if it is not scoped, and a worse one than it looks. The boxes\nare withheld by the objects route, but `n_objects` is a count of them: an auditor shown an empty canvas\nbeside \"14 objects\" has been told exactly how many things they missed and roughly how hard to look. So\nthe count is scoped to their own work, and `annotation_source` is dropped for the same reason.",
        "operationId": "get_frame_api_frames__frame_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "job_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Job Id"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Frame",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/adverse": {
      "get": {
        "operationId": "list_adverse_api_frames__frame_id__adverse_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Adverse",
        "tags": [
          "adverse"
        ]
      },
      "post": {
        "operationId": "create_adverse_api_frames__frame_id__adverse_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdverseIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Adverse",
        "tags": [
          "adverse"
        ]
      }
    },
    "/api/frames/{frame_id}/checkpoints": {
      "get": {
        "description": "This frame's saves, newest first.\n\nThe automatic ones a restore left behind are included and flagged rather than hidden, because they are\nthe states restores replaced and that is exactly what somebody hunting a lost state wants.",
        "operationId": "list_for_frame_api_frames__frame_id__checkpoints_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "include_auto",
            "required": false,
            "schema": {
              "default": true,
              "title": "Include Auto",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List For Frame",
        "tags": [
          "checkpoints"
        ]
      },
      "post": {
        "description": "Save the frame's annotations as they stand, under a name.",
        "operationId": "save_as_api_frames__frame_id__checkpoints_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckpointIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Save As",
        "tags": [
          "checkpoints"
        ]
      }
    },
    "/api/frames/{frame_id}/context": {
      "patch": {
        "description": "Record what the whole scene was like, over the top of what the ingest classifier guessed.\n\nMerged rather than replaced, and stamped per key. The classifier fills `scene` at ingest with a\nconfidence per axis and will run again; without a per-key record of who set what, the next pass\noverwrites a person's correction and nothing afterwards can tell that it did. `scene_provenance` is that\nrecord, so a re-classification can leave human-set keys alone.",
        "operationId": "set_frame_context_api_frames__frame_id__context_patch",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FrameContextIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Frame Context",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/cuboids": {
      "get": {
        "description": "Project every cuboid_3d on the frame onto the camera image, so the 3D box is visible (and editable)\nin the 2D editor. Uses the configured rig + nominal intrinsics, so it works without LiDAR calibration.",
        "operationId": "frame_cuboids_api_frames__frame_id__cuboids_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CuboidProjectionOut"
                  },
                  "title": "Response Frame Cuboids Api Frames  Frame Id  Cuboids Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Frame Cuboids",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/drivable": {
      "get": {
        "operationId": "get_drivable_api_frames__frame_id__drivable_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Drivable",
        "tags": [
          "drivable"
        ]
      },
      "post": {
        "operationId": "segment_frame_api_frames__frame_id__drivable_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segment Frame",
        "tags": [
          "drivable"
        ]
      },
      "put": {
        "operationId": "refine_drivable_api_frames__frame_id__drivable_put",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DrivableIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Refine Drivable",
        "tags": [
          "drivable"
        ]
      }
    },
    "/api/frames/{frame_id}/filmstrip": {
      "get": {
        "description": "The frames on either side of this one, in capture order, for the editor's filmstrip.\n\nThe editor could only step one frame at a time through prev/next, so a reviewer had no way to see what\nwas coming or to jump several frames back to where an object first appeared. That made every temporal\njudgement (is this the same vehicle, when did the occlusion start) a sequence of blind single steps.\n\nOrdered by ts_ns and restricted to the same camera: a multi-camera rig interleaves frames from every\ncamera at nearly the same timestamp, and mixing them would make the strip jump viewpoint every tile.",
        "operationId": "frame_filmstrip_api_frames__frame_id__filmstrip_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "span",
            "required": false,
            "schema": {
              "default": 12,
              "title": "Span",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Frame Filmstrip",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/image": {
      "get": {
        "description": "The frame image, and a record that somebody looked at it.\n\nA frame is where the personal data in this corpus actually lives: faces and registration marks are in\nthe pixels. `pii_audit` records what the redactor found in a frame; until this, nothing recorded who\nthen viewed it, so the system could describe its personal data and not say who had seen it. The record\nis written only when the frame is known to contain some, so ordinary empty road scenes do not bury the\naccesses that matter.",
        "operationId": "frame_image_api_frames__frame_id__image_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Frame Image",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/lanes": {
      "get": {
        "operationId": "list_lanes_api_frames__frame_id__lanes_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Lanes",
        "tags": [
          "lanes"
        ]
      },
      "post": {
        "operationId": "create_lane_api_frames__frame_id__lanes_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LaneIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Lane",
        "tags": [
          "lanes"
        ]
      }
    },
    "/api/frames/{frame_id}/lanes/propagate": {
      "post": {
        "description": "Carry this frame's lanes forward via optical flow; the annotator only fixes keyframes.",
        "operationId": "propagate_api_frames__frame_id__lanes_propagate_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "frames",
            "required": false,
            "schema": {
              "default": 8,
              "title": "Frames",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate",
        "tags": [
          "lanes"
        ]
      }
    },
    "/api/frames/{frame_id}/lanes/propose": {
      "post": {
        "operationId": "propose_api_frames__frame_id__lanes_propose_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propose",
        "tags": [
          "lanes"
        ]
      }
    },
    "/api/frames/{frame_id}/lift_ground": {
      "get": {
        "description": "The ego ground point (z=0) a pixel sees, for placing a cuboid on the road from an image click.",
        "operationId": "lift_ground_api_frames__frame_id__lift_ground_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "u",
            "required": true,
            "schema": {
              "title": "U",
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "v",
            "required": true,
            "schema": {
              "title": "V",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lift Ground",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/objects": {
      "get": {
        "description": "Every object on a frame, or only this job's when the job is blind.\n\nTwo kinds of blindness, for two different measurements:\n\nA REPLICA job exists to be compared against another annotator's independent answer. If the editor\nhanded it the machine pre-labels, both annotators would be correcting the same proposals and the\nagreement between them would measure how well two people agree with a third party neither of them can\nsee. 82.6% of frames here are pre-labelled, so this is the normal case.\n\nA BLIND AUDIT job is stricter still: it hides everything, including this job's own earlier work from\nother sources, because the audit's whole purpose is a human observation that is statistically\nindependent of the model. An auditor who has seen one prediction is no longer a second observer, and\nthe capture-recapture estimate built on them is not conservative, it is arbitrary.\n\nThe filter is server-side deliberately: hiding the pre-labels in the browser still ships them to the\nbrowser, and a hidden label is one keystroke away from being an unhidden one. For the same reason the\naudit filter also applies when no job_id is passed at all, provided the caller is the auditor: dropping\nthe query parameter must not be a way to see the answers.",
        "operationId": "frame_objects_api_frames__frame_id__objects_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "job_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Job Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 2000,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Frame Objects",
        "tags": [
          "objects"
        ]
      },
      "post": {
        "description": "Create a human-drawn object on a frame (source=human). Optional mask.\n\nThe requested state is clamped by role, exactly as a review verdict is. This path used to write\npayload.state verbatim, and it defaulted to \"accepted\": an annotator could POST ground-truth-grade\nrows straight past the validation stage the two-stage workflow exists to enforce. review_policy\nexists for precisely this and was only ever called from /api/review, which sits behind a reviewer\nfloor - so the clamp could never fire on the one path that could reach it from below.",
        "operationId": "create_object_api_frames__frame_id__objects_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateObjectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Object",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/relations": {
      "get": {
        "operationId": "relations_list_api_frames__frame_id__relations_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relations List",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/relations/propose": {
      "post": {
        "description": "Propose geometric scene-graph relations (occluded_by, following, parked_near, crossing_in_front_of).",
        "operationId": "relations_propose_api_frames__frame_id__relations_propose_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relations Propose",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/relationships": {
      "get": {
        "operationId": "frame_relationships_api_frames__frame_id__relationships_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RelationshipOut"
                  },
                  "title": "Response Frame Relationships Api Frames  Frame Id  Relationships Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Frame Relationships",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/segment": {
      "get": {
        "operationId": "get_segment_api_frames__frame_id__segment_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "default": "semantic",
              "title": "Kind",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Segment",
        "tags": [
          "segmentation"
        ]
      },
      "post": {
        "description": "Run SAM-everything + VLM to produce the dense raster for the frame. Expensive (GPU); on demand.",
        "operationId": "auto_segment_api_frames__frame_id__segment_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "default": "semantic",
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Auto Segment",
        "tags": [
          "segmentation"
        ]
      },
      "put": {
        "description": "Write a human correction of the dense raster, from polygons drawn on the canvas.\n\nThe path that makes the semantic layer a label rather than a visualisation. Marks the row source=human,\nwhich is what the export gate and the training set selection read to prefer a corrected raster over a\nproposed one.",
        "operationId": "edit_segment_api_frames__frame_id__segment_put",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SegmentEditIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Edit Segment",
        "tags": [
          "segmentation"
        ]
      }
    },
    "/api/frames/{frame_id}/segment/labelids.png": {
      "get": {
        "description": "The Cityscapes-style labelIds export: a single-channel PNG whose pixel value is the class id.",
        "operationId": "segment_labelids_api_frames__frame_id__segment_labelids_png_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "default": "semantic",
              "title": "Kind",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segment Labelids",
        "tags": [
          "segmentation"
        ]
      }
    },
    "/api/frames/{frame_id}/segment/overlay": {
      "get": {
        "operationId": "segment_overlay_api_frames__frame_id__segment_overlay_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "default": "semantic",
              "title": "Kind",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segment Overlay",
        "tags": [
          "segmentation"
        ]
      }
    },
    "/api/frames/{frame_id}/segment/panoptic.png": {
      "get": {
        "description": "COCO-panoptic id-encoded PNG: each pixel's RGB encodes its segment id (id = R + 256*G + 256^2*B).\nPair it with the segments map from GET /segment (category id + linked object id per segment).",
        "operationId": "segment_panoptic_png_api_frames__frame_id__segment_panoptic_png_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segment Panoptic Png",
        "tags": [
          "segmentation"
        ]
      }
    },
    "/api/frames/{frame_id}/vlm-target/generate": {
      "post": {
        "description": "Generate a grounded VLM training target for a labeled frame (awaits human review).",
        "operationId": "vlm_target_generate_api_frames__frame_id__vlm_target_generate_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Vlm Target Generate",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/frames/{frame_id}/vlm-targets": {
      "get": {
        "operationId": "vlm_targets_list_api_frames__frame_id__vlm_targets_get",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Vlm Targets List",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/govern/audit": {
      "get": {
        "operationId": "audit_api_govern_audit_get",
        "parameters": [
          {
            "in": "query",
            "name": "actor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Actor"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Audit",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/consent": {
      "post": {
        "description": "Set a session's consent/retention record; export is refused later unless consent is 'granted'.",
        "operationId": "consent_api_govern_consent_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Consent",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/consent/{consent_status}/gate": {
      "get": {
        "description": "The export consent gate (fails closed on anything but 'granted').",
        "operationId": "consent_gate_api_govern_consent__consent_status__gate_get",
        "parameters": [
          {
            "in": "path",
            "name": "consent_status",
            "required": true,
            "schema": {
              "title": "Consent Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Consent Gate",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/control/pending": {
      "get": {
        "description": "The control samples awaiting a verdict.\n\nThis corpus holds 601 of them, every one unjudged, because there was no way to list what needed judging\nand the verdict route had no caller. Measured precision, which the drift detector watches and which is\nmeant to be the number a buyer trusts over a self-reported one, has been null since the feature shipped.",
        "operationId": "control_pending_api_govern_control_pending_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Control Pending",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/control/precision": {
      "get": {
        "operationId": "control_precision_api_govern_control_precision_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Control Precision",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/control/seed": {
      "post": {
        "operationId": "control_seed_api_govern_control_seed_post",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 500,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "rate",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Rate"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Control Seed",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/control/{sample_id}/verdict": {
      "post": {
        "operationId": "control_verdict_api_govern_control__sample_id__verdict_post",
        "parameters": [
          {
            "in": "path",
            "name": "sample_id",
            "required": true,
            "schema": {
              "title": "Sample Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerdictIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Control Verdict",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/controller/tick": {
      "post": {
        "operationId": "controller_tick_api_govern_controller_tick_post",
        "parameters": [
          {
            "in": "query",
            "name": "schedule_bursts",
            "required": false,
            "schema": {
              "default": true,
              "title": "Schedule Bursts",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Controller Tick",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/cost/gate": {
      "post": {
        "description": "Admit or refuse a cloud GPU job against the per-job cap and the remaining window budget, before it is\ndispatched.",
        "operationId": "cost_ceiling_api_govern_cost_gate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CostGateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cost Ceiling",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/drift/scan": {
      "post": {
        "description": "Scan for drift, and raise it if it breached.\n\nSuperseded rather than appended: drift re-evaluates on a schedule, so an unresolved breach would\notherwise produce a fresh line every cycle until the bell was pure noise.",
        "operationId": "drift_scan_api_govern_drift_scan_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__govern__DriftIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Drift Scan",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/erase": {
      "post": {
        "description": "Erase one session on request: frames, annotations, PII audits, and image blobs.\n\nThis is the data-subject erasure path, which did not exist: the only deletion in the system was a\nper-object endpoint, nothing walked from a subject to its data, and nothing covered object storage, which\ndatabase cascades do not reach. Returns a signed certificate, because a deletion that leaves no evidence\nit happened cannot be shown to a regulator.",
        "operationId": "erase_api_govern_erase_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EraseIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Erase",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/killswitch/engage": {
      "post": {
        "description": "Stop the loop, and say so loudly. Critical severity: this is the one event where a person finding\nout an hour later is itself the incident.",
        "operationId": "killswitch_engage_api_govern_killswitch_engage_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EngageIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Killswitch Engage",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/killswitch/release": {
      "post": {
        "operationId": "killswitch_release_api_govern_killswitch_release_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Killswitch Release",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/lineage/{subject}": {
      "get": {
        "description": "The governance lineage of a subject: its audit decisions and (for a release) its redaction proof.",
        "operationId": "lineage_api_govern_lineage__subject__get",
        "parameters": [
          {
            "in": "path",
            "name": "subject",
            "required": true,
            "schema": {
              "title": "Subject",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lineage",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/pii-access": {
      "get": {
        "description": "Who viewed personal data. Admin-only: it is a record about employees as much as about subjects.",
        "operationId": "pii_access_api_govern_pii_access_get",
        "parameters": [
          {
            "in": "query",
            "name": "user_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User Id"
            }
          },
          {
            "in": "query",
            "name": "subject_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Subject Id"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Action"
            }
          },
          {
            "in": "query",
            "name": "since_hours",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Hours"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pii Access",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/govern/pii-access/summary": {
      "get": {
        "operationId": "pii_access_summary_api_govern_pii_access_summary_get",
        "parameters": [
          {
            "in": "query",
            "name": "hours",
            "required": false,
            "schema": {
              "default": 168,
              "maximum": 8760,
              "minimum": 1,
              "title": "Hours",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pii Access Summary",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/govern/promote": {
      "post": {
        "description": "Attempt a promotion, and tell somebody how it went.\n\nA blocked promotion was the loop's quietest failure: the gate refused, the reason was recorded, and\nunless a reviewer happened to open this page it could sit unnoticed for a day while the flywheel idled.",
        "operationId": "promote_api_govern_promote_post",
        "parameters": [
          {
            "in": "query",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "task",
            "required": false,
            "schema": {
              "default": "detection",
              "title": "Task",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Promote",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/redaction/proof": {
      "post": {
        "description": "Build and sign a release redaction proof from the per-frame PII audits; a release with an unredacted\nframe fails the proof and names it. Rejects an oversized or malformed frame set with a 400.",
        "operationId": "redaction_proof_api_govern_redaction_proof_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RedactionProofIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Redaction Proof",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/registry": {
      "get": {
        "operationId": "registry_list_api_govern_registry_get",
        "parameters": [
          {
            "in": "query",
            "name": "task",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Task"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Registry List",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/registry/register": {
      "post": {
        "operationId": "registry_register_api_govern_registry_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Registry Register",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/registry/register_run": {
      "post": {
        "operationId": "registry_register_run_api_govern_registry_register_run_post",
        "parameters": [
          {
            "in": "query",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "task",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Task"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Registry Register Run",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/retention/due": {
      "get": {
        "description": "Sessions past their retention deadline. Readable on its own so an operator can see what a sweep would\nerase before anything is deleted.",
        "operationId": "retention_due_api_govern_retention_due_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Retention Due",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/retention/sweep": {
      "post": {
        "description": "Erase every session past its retention deadline, returning a certificate per erasure.",
        "operationId": "retention_sweep_api_govern_retention_sweep_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetentionSweepIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retention Sweep",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/govern/state": {
      "get": {
        "operationId": "state_api_govern_state_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "State",
        "tags": [
          "govern"
        ]
      }
    },
    "/api/gpu/slot": {
      "get": {
        "description": "Whether the local GPU slot is held, so an operator can see why a job is waiting.\n\nAdvisory: the answer can be stale the instant it is returned, which is why nothing decides whether to\nstart work from it. Deciding is what acquiring the slot is for.",
        "operationId": "gpu_slot_status_api_gpu_slot_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Gpu Slot Status",
        "tags": [
          "cloud"
        ]
      }
    },
    "/api/hardening/efficiency": {
      "post": {
        "description": "The label-budget efficiency report: per-slice ROI ranked best-first, the overall gain per 1000 labels,\nand the slices whose spend returned nothing.",
        "operationId": "efficiency_api_hardening_efficiency_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EfficiencyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Efficiency",
        "tags": [
          "hardening"
        ]
      }
    },
    "/api/hardening/reproducible": {
      "post": {
        "description": "Check two build outputs for byte-stable reproducibility, naming the first diverging field if they\ndiffer.",
        "operationId": "reproducible_api_hardening_reproducible_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReproIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reproducible",
        "tags": [
          "hardening"
        ]
      }
    },
    "/api/hardening/slo": {
      "post": {
        "description": "Evaluate a plane's measured metrics against its SLO and record the tick to the observability ledger.",
        "operationId": "slo_tick_api_hardening_slo_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SloIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Slo Tick",
        "tags": [
          "hardening"
        ]
      }
    },
    "/api/hardening/slo/board": {
      "get": {
        "description": "The latest SLO evaluation per plane, and whether every plane is meeting its SLO.",
        "operationId": "slo_board_view_api_hardening_slo_board_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Slo Board View",
        "tags": [
          "hardening"
        ]
      }
    },
    "/api/hdmap/commits": {
      "get": {
        "operationId": "commits_api_hdmap_commits_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Commits",
        "tags": [
          "hdmap"
        ]
      }
    },
    "/api/hdmap/elements": {
      "get": {
        "description": "GeoJSON FeatureCollection of map elements (by commit, or per-drive by session).",
        "operationId": "elements_api_hdmap_elements_get",
        "parameters": [
          {
            "in": "query",
            "name": "commit_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Commit Id"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Elements",
        "tags": [
          "hdmap"
        ]
      }
    },
    "/api/hdmap/elements/metric": {
      "post": {
        "description": "Milestone F: a 3D metric polyline (lane boundary, stop line, crosswalk) drawn in the ego/BEV frame,\ngeoreferenced into a world-space MapElement.",
        "operationId": "create_metric_element_ep_api_hdmap_elements_metric_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MetricElementIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Metric Element Ep",
        "tags": [
          "hdmap"
        ]
      }
    },
    "/api/hdmap/fuse": {
      "post": {
        "operationId": "fuse_api_hdmap_fuse_post",
        "parameters": [
          {
            "description": "comma-separated session ids",
            "in": "query",
            "name": "session_ids",
            "required": true,
            "schema": {
              "description": "comma-separated session ids",
              "title": "Session Ids",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "region",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Region"
            }
          },
          {
            "in": "query",
            "name": "compute_target",
            "required": false,
            "schema": {
              "default": "local",
              "title": "Compute Target",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fuse",
        "tags": [
          "hdmap"
        ]
      }
    },
    "/api/hdmap/georef": {
      "post": {
        "operationId": "georef_api_hdmap_georef_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "height_m",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Height M"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Georef",
        "tags": [
          "hdmap"
        ]
      }
    },
    "/api/hdmap/provenance": {
      "get": {
        "operationId": "provenance_api_hdmap_provenance_get",
        "parameters": [
          {
            "in": "query",
            "name": "element_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Element Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Provenance",
        "tags": [
          "hdmap"
        ]
      }
    },
    "/api/health": {
      "get": {
        "description": "Liveness + dependency readiness: probes Postgres, Redis, and MinIO so a load balancer or operator\nsees a real status, not a static OK. Returns 200 with per-dependency detail; degraded deps are flagged.",
        "operationId": "health_api_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Health"
      }
    },
    "/api/imports": {
      "get": {
        "operationId": "list_jobs_api_imports_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Jobs",
        "tags": [
          "imports"
        ]
      }
    },
    "/api/imports/dry-run": {
      "post": {
        "description": "Parse a source and report what importing it would cost, without writing anything.\n\nA migration is the moment a customer finds out what their taxonomy survives. Telling them afterwards\nthat two of their classes became one of ours invites them to discover the loss a month later; telling\nthem here makes it a decision they get to make. Read-only by construction: it parses and remaps in\nmemory and touches no table.",
        "operationId": "dry_run_api_imports_dry_run_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportStartIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dry Run",
        "tags": [
          "imports"
        ]
      }
    },
    "/api/imports/formats": {
      "get": {
        "description": "Every format the importer can actually read, and which of them are raw media.\n\nServed rather than hardcoded in the client because it drifted: the import page carried a list of ten\nwhile the backend registered nineteen, and a format missing from that list was silently rewritten to\nCOCO. Nine formats, including all four competitor migrations, quietly landed on the wrong importer.",
        "operationId": "formats_api_imports_formats_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Formats",
        "tags": [
          "imports"
        ]
      }
    },
    "/api/imports/start": {
      "post": {
        "operationId": "start_api_imports_start_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportStartIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start",
        "tags": [
          "imports"
        ]
      }
    },
    "/api/imports/{job_id}": {
      "get": {
        "operationId": "status_api_imports__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Status",
        "tags": [
          "imports"
        ]
      }
    },
    "/api/inference-runs": {
      "post": {
        "description": "Ingest predictions from a model this engine did not run.\n\nTurns any model into something the harness can evaluate, the champion gate can compare against, and\nfailure mining can consume, without its weights ever leaving the caller's network.",
        "operationId": "ingest_run_api_inference_runs_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalRunIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ingest Run",
        "tags": [
          "predictions"
        ]
      }
    },
    "/api/ingest/progress": {
      "get": {
        "description": "Live ingest progress.\n\nRead from the ImportJob rows first and the batch log only as a fallback. It used to be the log alone,\nscraped with a regex, which silently reports a quiet system the moment the API runs in a different\ncontainer from the script rather than failing in a way anyone would notice.",
        "operationId": "ingest_progress_api_ingest_progress_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Ingest Progress",
        "tags": [
          "imports"
        ]
      }
    },
    "/api/inspector/health/sweep": {
      "post": {
        "description": "Run health checks across all MCAP sessions (indexing as needed). Returns the verdict tally.",
        "operationId": "health_sweep_api_inspector_health_sweep_post",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 500,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Health Sweep Api Inspector Health Sweep Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Health Sweep",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/index/backfill": {
      "post": {
        "description": "Index every MCAP session that is missing a current index.",
        "operationId": "index_backfill_api_inspector_index_backfill_post",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 500,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Index Backfill Api Inspector Index Backfill Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Index Backfill",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/layouts": {
      "get": {
        "description": "This user's saved Inspector layouts, plus the config default as a fallback.",
        "operationId": "list_layouts_api_inspector_layouts_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response List Layouts Api Inspector Layouts Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Layouts",
        "tags": [
          "inspector"
        ]
      },
      "post": {
        "description": "Save (or update by name) a named panel layout for this user.",
        "operationId": "save_layout_api_inspector_layouts_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LayoutIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Save Layout Api Inspector Layouts Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Save Layout",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/layouts/{layout_id}": {
      "delete": {
        "operationId": "delete_layout_api_inspector_layouts__layout_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "layout_id",
            "required": true,
            "schema": {
              "title": "Layout Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Delete Layout Api Inspector Layouts  Layout Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Layout",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions": {
      "get": {
        "description": "Sessions there is something to inspect in, each with its latest health verdict for the list chip.\n\nNot only MCAP sessions. That filter was correct when every panel was fed by a recording, and it stopped\nbeing correct when the 3D panel arrived: this deployment has one session with an MCAP and 124 with point\nclouds, so the panel was effectively unreachable through the product's own navigation.\n\nA session with clouds but no recording still has a clock of its own, extracted frames and geometry, all\naddressed by timestamp. What it does not have is topics, so the flags travel with each row and the page\ncan say which panels will do anything rather than opening seven empty ones.",
        "operationId": "list_sessions_api_inspector_sessions_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "object"
                  },
                  "title": "Response List Sessions Api Inspector Sessions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Sessions",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/annotations-at": {
      "get": {
        "description": "The nearest extracted frame's annotations, for the image panel's live overlay during playback.",
        "operationId": "annotations_at_api_inspector_sessions__session_id__annotations_at_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ts_ns",
            "required": true,
            "schema": {
              "title": "Ts Ns",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Annotations At Api Inspector Sessions  Session Id  Annotations At Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Annotations At",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/cloud": {
      "get": {
        "description": "The point cloud nearest `ts_ns`, as interleaved float32 [x, y, z, intensity].\n\nBinary rather than JSON: a 500,000-point cloud is about 6MB raw and several times that as text, and the\nbrowser can map these bytes straight into a Float32Array with no parse step at all.\n\nThe counts and the time offset ride in headers so the panel can caption itself honestly: how many points\nof how many it is drawing, and how far from the playhead the nearest cloud actually was.",
        "operationId": "session_cloud_api_inspector_sessions__session_id__cloud_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ts_ns",
            "required": true,
            "schema": {
              "title": "Ts Ns",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "max_points",
            "required": false,
            "schema": {
              "default": 200000,
              "title": "Max Points",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session Cloud",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/events": {
      "get": {
        "description": "The typed timeline markers: CAN events (hard braking, regen spikes) from the MCAP, plus scenario\ncandidates, quality flags, and gold frames from the records, all keyed to ts_ns.",
        "operationId": "session_events_api_inspector_sessions__session_id__events_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Session Events Api Inspector Sessions  Session Id  Events Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session Events",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/frame-at": {
      "get": {
        "description": "The extracted frame nearest a ts_ns (the image fast path and the Inspector-to-workspace deep link).\nReturns the frame id + its proxied image URL, or nulls if the session has no extracted frames.",
        "operationId": "frame_at_api_inspector_sessions__session_id__frame_at_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ts_ns",
            "required": true,
            "schema": {
              "title": "Ts Ns",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Frame At Api Inspector Sessions  Session Id  Frame At Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Frame At",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/health": {
      "get": {
        "description": "The latest health verdict + per-check detail for a session.",
        "operationId": "get_health_api_inspector_sessions__session_id__health_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Get Health Api Inspector Sessions  Session Id  Health Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Health",
        "tags": [
          "inspector"
        ]
      },
      "post": {
        "description": "Run the session health checks (rate, gaps, missing topics, cross-sensor offset, GNSS, integrity) and\nrecord a pass/warn/fail verdict. A fail gates the session from auto-labeling until reviewed.",
        "operationId": "run_health_api_inspector_sessions__session_id__health_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Run Health Api Inspector Sessions  Session Id  Health Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Health",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/index": {
      "get": {
        "description": "The stored MCAP index for a session (topics, time range, gaps).",
        "operationId": "get_index_api_inspector_sessions__session_id__index_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Get Index Api Inspector Sessions  Session Id  Index Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Index",
        "tags": [
          "inspector"
        ]
      },
      "post": {
        "description": "Build (or rebuild) the MCAP index for a session: per-topic schema, count, measured rate, time range,\nand gap windows. Cheap; reads message log_times without decoding payloads.",
        "operationId": "build_index_api_inspector_sessions__session_id__index_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Build Index Api Inspector Sessions  Session Id  Index Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Build Index",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/lichtblick": {
      "get": {
        "description": "Presign the session's MCAP and return a Lichtblick deep link that loads it as a remote file.",
        "operationId": "lichtblick_link_api_inspector_sessions__session_id__lichtblick_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Lichtblick Link Api Inspector Sessions  Session Id  Lichtblick Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lichtblick Link",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/inspector/sessions/{session_id}/mcap-url": {
      "get": {
        "description": "A presigned MCAP URL plus the index summary, so the browser panels can read the file directly over\nHTTP range requests (the native Inspector's read path). Returns the time range and topics from the index\nif it has been built, so a panel knows the clock bounds without scanning the whole file.",
        "operationId": "mcap_url_api_inspector_sessions__session_id__mcap_url_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Mcap Url Api Inspector Sessions  Session Id  Mcap Url Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mcap Url",
        "tags": [
          "inspector"
        ]
      }
    },
    "/api/integrations/events": {
      "get": {
        "description": "The events a webhook can subscribe to, named after what happened rather than which function ran.",
        "operationId": "known_events_api_integrations_events_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Known Events",
        "tags": [
          "integrations"
        ]
      }
    },
    "/api/integrations/sources": {
      "get": {
        "operationId": "list_sources_api_integrations_sources_get",
        "parameters": [
          {
            "in": "query",
            "name": "project_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Project Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Sources",
        "tags": [
          "integrations"
        ]
      },
      "post": {
        "operationId": "register_source_api_integrations_sources_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Register Source",
        "tags": [
          "integrations"
        ]
      }
    },
    "/api/integrations/sources/{source_id}": {
      "delete": {
        "operationId": "delete_source_api_integrations_sources__source_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "source_id",
            "required": true,
            "schema": {
              "title": "Source Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Source",
        "tags": [
          "integrations"
        ]
      }
    },
    "/api/integrations/sources/{source_id}/preview": {
      "get": {
        "description": "A bounded key listing, so a human can confirm a source points where they think before importing.",
        "operationId": "preview_source_api_integrations_sources__source_id__preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "source_id",
            "required": true,
            "schema": {
              "title": "Source Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview Source",
        "tags": [
          "integrations"
        ]
      }
    },
    "/api/integrations/webhooks": {
      "get": {
        "operationId": "list_webhooks_api_integrations_webhooks_get",
        "parameters": [
          {
            "in": "query",
            "name": "project_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Project Id"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Webhooks",
        "tags": [
          "integrations"
        ]
      },
      "post": {
        "description": "Admin-only: a webhook sends data outward, so creating one is a disclosure decision. The signing secret\nis returned once here, because the receiver needs it to verify deliveries.",
        "operationId": "create_webhook_api_integrations_webhooks_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Webhook",
        "tags": [
          "integrations"
        ]
      }
    },
    "/api/integrations/webhooks/{webhook_id}": {
      "delete": {
        "operationId": "delete_webhook_api_integrations_webhooks__webhook_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "title": "Webhook Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Webhook",
        "tags": [
          "integrations"
        ]
      }
    },
    "/api/intent/propose-session": {
      "post": {
        "description": "Trajectory-derived intent proposals across a whole session.",
        "operationId": "intent_propose_session_api_intent_propose_session_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Intent Propose Session",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/intent/vocab": {
      "get": {
        "description": "The governed closed intent vocabularies (VRU + vehicle) and which each assist path may propose.",
        "operationId": "intent_vocab_api_intent_vocab_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Intent Vocab",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/jobs": {
      "get": {
        "operationId": "jobs_api_jobs_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Jobs",
        "tags": [
          "jobs"
        ]
      }
    },
    "/api/jobs/{kind}/{job_id}/cancel": {
      "post": {
        "description": "Cancel a job of any kind. Answers whether it stopped or was only asked to.\n\nA job that never started, or whose process is already gone, is stopped the moment the row changes. A\nlive one stops at its next checkpoint, which is a frame for auto-label and a hundred frames for import.\nThe two are reported separately because an operator waiting for the GPU cares which one they got.",
        "operationId": "cancel_api_jobs__kind___job_id__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cancel",
        "tags": [
          "jobs"
        ]
      }
    },
    "/api/labelops/issues": {
      "get": {
        "description": "List issues. `mine=true` returns the ones raised about the caller's own work.\n\nThat dimension did not exist: every filter here was a way of asking what is wrong with a given frame,\njob or object, and none of them a way for an annotator to find what has been said about their labels.",
        "operationId": "list_issues_api_labelops_issues_get",
        "parameters": [
          {
            "in": "query",
            "name": "frame_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Frame Id"
            }
          },
          {
            "in": "query",
            "name": "job_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Job Id"
            }
          },
          {
            "in": "query",
            "name": "object_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Object Id"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "mine",
            "required": false,
            "schema": {
              "default": false,
              "title": "Mine",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Issues",
        "tags": [
          "labelops"
        ]
      },
      "post": {
        "operationId": "create_issue_api_labelops_issues_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Issue",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/issues/{issue_id}": {
      "get": {
        "operationId": "get_issue_api_labelops_issues__issue_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "issue_id",
            "required": true,
            "schema": {
              "title": "Issue Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Issue",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/issues/{issue_id}/comment": {
      "post": {
        "operationId": "comment_api_labelops_issues__issue_id__comment_post",
        "parameters": [
          {
            "in": "path",
            "name": "issue_id",
            "required": true,
            "schema": {
              "title": "Issue Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Comment",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/issues/{issue_id}/resolve": {
      "post": {
        "operationId": "resolve_issue_api_labelops_issues__issue_id__resolve_post",
        "parameters": [
          {
            "in": "path",
            "name": "issue_id",
            "required": true,
            "schema": {
              "title": "Issue Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "reopen",
            "required": false,
            "schema": {
              "default": false,
              "title": "Reopen",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve Issue",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/jobs": {
      "get": {
        "operationId": "list_jobs_api_labelops_jobs_get",
        "parameters": [
          {
            "in": "query",
            "name": "project_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Project Id"
            }
          },
          {
            "in": "query",
            "name": "task_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Task Id"
            }
          },
          {
            "in": "query",
            "name": "assignee_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Assignee Id"
            }
          },
          {
            "in": "query",
            "name": "stage",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Stage"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Jobs",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/jobs/{job_id}/assign": {
      "post": {
        "operationId": "assign_job_api_labelops_jobs__job_id__assign_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__labelops__AssignIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Assign Job",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/jobs/{job_id}/state": {
      "post": {
        "operationId": "set_state_api_labelops_jobs__job_id__state_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set State",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/jobs/{job_id}/submit": {
      "post": {
        "description": "Submit the current stage. Honeypots are scored here; failing the project floor sends the job back\nrather than advancing it.",
        "operationId": "submit_job_api_labelops_jobs__job_id__submit_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Submit Job",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/judge-agreement": {
      "get": {
        "description": "How well the machine judge tracks human reviewers, on the objects where both have ruled.\n\nThe scoreboard for the judge itself. Sensitivity and specificity here are what make a machine-derived\nprecision quotable, and `usable` is false when the judge has not been compared against enough human\nverdicts to say anything, which is the honest state for most of this corpus today.",
        "operationId": "read_judge_agreement_api_labelops_judge_agreement_get",
        "parameters": [
          {
            "in": "query",
            "name": "model_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Model Version"
            }
          },
          {
            "in": "query",
            "name": "batch_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Batch Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read Judge Agreement",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/my-jobs": {
      "get": {
        "description": "The caller's own queue: what they should be working on right now.",
        "operationId": "my_jobs_api_labelops_my_jobs_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "My Jobs",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/precision-batch": {
      "post": {
        "description": "Stamp a random sample of machine labels for review, to measure how many of them are correct.\n\nDistinct from the active-learning queue on purpose. That queue surfaces the hardest objects, which is\nright for improving a model and wrong for measuring one: judging it reports the accuracy of the worst\nobjects in the corpus rather than of the corpus. This samples randomly within class instead.",
        "operationId": "make_precision_batch_api_labelops_precision_batch_post",
        "parameters": [
          {
            "in": "query",
            "name": "target",
            "required": false,
            "schema": {
              "default": 300,
              "title": "Target",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Make Precision Batch",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/precision/{batch_id}": {
      "get": {
        "description": "Precision per class and for the corpus, from whatever of the batch has been judged so far.\n\nReports both the sample figure and a corpus figure re-weighted by how common each class actually is,\nbecause the batch over-samples rare classes deliberately and quoting the first as the second is the\nmistake this exists to prevent. Every rate carries a Wilson interval, so a number from 12 objects cannot\nbe mistaken for one from 12,000.",
        "operationId": "read_precision_api_labelops_precision__batch_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "title": "Batch Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read Precision",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/prereview/{batch_id}": {
      "get": {
        "description": "Machine-judged precision for a batch, and how much that judgement is worth.\n\nReturns the judge's raw agreement rate and, separately, that rate corrected for the judge's own measured\nerror. The two are never collapsed: the raw figure is a blend of how good the labels are and how good\nthe judge is, and quoting it as precision embeds the judge's error in every claim downstream. When too\nfew objects carry both a machine verdict and a human ruling, the corrected figure is null and the caveat\nsays what the raw number actually represents.",
        "operationId": "read_prereview_api_labelops_prereview__batch_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "title": "Batch Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "model_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Model Version"
            }
          },
          {
            "in": "query",
            "name": "agreement_batch_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Agreement Batch Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read Prereview",
        "tags": [
          "labelops"
        ]
      },
      "post": {
        "description": "Have a VLM judge every label in a batch, so a person adjudicates instead of judging from scratch.\n\nA reviewer action because it spends money and writes verdicts. Idempotent: re-running the same judge\nupdates rows rather than doubling them, and a different model version stands beside the old one instead\nof overwriting it, which is what lets two judges be compared on the same crops.",
        "operationId": "run_prereview_api_labelops_prereview__batch_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "title": "Batch Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Prereview",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/projects": {
      "get": {
        "operationId": "list_projects_api_labelops_projects_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Projects",
        "tags": [
          "labelops"
        ]
      },
      "post": {
        "operationId": "create_project_api_labelops_projects_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Project",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/projects/{project_id}/board": {
      "get": {
        "description": "Job counts per stage and state, plus who is currently loaded.",
        "operationId": "project_board_api_labelops_projects__project_id__board_get",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Project Board",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/replica-groups/{replica_group}/agreement": {
      "post": {
        "description": "Compare the replicas of one group and open an issue on every object they disagree about.",
        "operationId": "score_agreement_api_labelops_replica_groups__replica_group__agreement_post",
        "parameters": [
          {
            "in": "path",
            "name": "replica_group",
            "required": true,
            "schema": {
              "title": "Replica Group",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "iou_thresh",
            "required": false,
            "schema": {
              "default": 0.5,
              "title": "Iou Thresh",
              "type": "number"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Score Agreement",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/scorecards": {
      "get": {
        "description": "Per-annotator throughput and honeypot quality.\n\nReviewer-gated, like its neighbours. It was the one route in this section with no role floor, which\nmade every annotator's performance record readable by anybody the API let in, including an annotator\nreading their colleagues'. Reading your own record is a different question and has its own route below.",
        "operationId": "scorecards_api_labelops_scorecards_get",
        "parameters": [
          {
            "in": "query",
            "name": "project_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Project Id"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scorecards",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/scorecards/full": {
      "get": {
        "description": "People and vendors in one table, with the per-class record that decides what to send whom.",
        "operationId": "full_scorecards_api_labelops_scorecards_full_get",
        "parameters": [
          {
            "in": "query",
            "name": "confidence",
            "required": false,
            "schema": {
              "default": 0.95,
              "title": "Confidence",
              "type": "number"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Full Scorecards",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/scorecards/me": {
      "get": {
        "description": "Your own record. Everyone can see how they are doing; that is not a ranking of anybody else.",
        "operationId": "my_scorecard_api_labelops_scorecards_me_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "My Scorecard",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/tasks": {
      "post": {
        "operationId": "create_task_api_labelops_tasks_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Task",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelops/tasks/{task_id}/agreement": {
      "get": {
        "description": "How much the annotators on this task agreed, and which frames to look at first.",
        "operationId": "task_agreement_api_labelops_tasks__task_id__agreement_get",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Task Agreement",
        "tags": [
          "labelops"
        ]
      }
    },
    "/api/labelox/propagate4d": {
      "post": {
        "description": "Propagate an annotation across a clip with a single stable track identity, healing gaps by interpolation.",
        "operationId": "propagate4d_api_labelox_propagate4d_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Propagate4dIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate4D",
        "tags": [
          "labelox"
        ]
      }
    },
    "/api/labelox/quality/agreement": {
      "post": {
        "description": "Inter-annotator agreement for the same object across annotators.",
        "operationId": "quality_agreement_api_labelox_quality_agreement_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgreementIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Quality Agreement",
        "tags": [
          "labelox"
        ]
      }
    },
    "/api/labelox/quality/audit": {
      "post": {
        "description": "Gold-set audit: match annotations to gold and flag the ones that fail (catches bad labels).",
        "operationId": "quality_audit_api_labelox_quality_audit_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__labelox__AuditIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Quality Audit",
        "tags": [
          "labelox"
        ]
      }
    },
    "/api/labelox/queue": {
      "get": {
        "description": "The gated, SIEVYX-ranked label queue. Samples from SANYX-quarantined or CALYX-blocked sessions are\nexcluded; the rest are ordered by the combined priority score.",
        "operationId": "label_queue_api_labelox_queue_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Label Queue",
        "tags": [
          "labelox"
        ]
      }
    },
    "/api/labelox/reconcile/parity": {
      "post": {
        "description": "The learned-reconciler parity gate: may the learned fusion head replace the heuristic on this held-out?",
        "operationId": "reconcile_parity_gate_api_labelox_reconcile_parity_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParityIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reconcile Parity Gate",
        "tags": [
          "labelox"
        ]
      }
    },
    "/api/lanes/type-coverage": {
      "get": {
        "description": "How much of the corpus carries a measured lane type rather than the old hardcoded default.",
        "operationId": "lane_type_coverage_api_lanes_type_coverage_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Lane Type Coverage",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/lanes/{lane_id}": {
      "delete": {
        "operationId": "delete_lane_api_lanes__lane_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "lane_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lane Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Lane",
        "tags": [
          "lanes"
        ]
      },
      "put": {
        "operationId": "update_lane_api_lanes__lane_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "lane_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lane Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LaneIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Lane",
        "tags": [
          "lanes"
        ]
      }
    },
    "/api/lidar/aggregate": {
      "post": {
        "description": "Register, loop-close, and accumulate the clouds across sessions into a dense map (M-L3.2). Local on the\nbox; the A100 burst is the seam for large volumes.",
        "operationId": "aggregate_api_lidar_aggregate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AggregateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Aggregate",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/aggregate/{agg_id}/label": {
      "post": {
        "description": "One-shot 4D label: a cuboid drawn once in the aggregated scene propagates to every clip frame as a 3D\ntrack with one consistent size, each box transformed into that frame's ego pose. Routed to review.",
        "operationId": "aggregate_label_api_lidar_aggregate__agg_id__label_post",
        "parameters": [
          {
            "in": "path",
            "name": "agg_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Agg Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AggLabelIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Aggregate Label",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/analytics3d": {
      "get": {
        "description": "3D coverage metrics for the dashboard: object counts, point density, and 3D scene coverage (M-L3.4).",
        "operationId": "analytics3d_api_lidar_analytics3d_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Analytics3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}": {
      "get": {
        "operationId": "cloud_meta_api_lidar_clouds__cloud_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Meta",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/bev-labels": {
      "get": {
        "description": "Milestone F: the unified BEV label surface for a cloud, rasterizing its annotated cuboid footprints\nonto a top-down metric class grid (reads alongside the drivable and occupancy grids).",
        "operationId": "cloud_bev_labels_api_lidar_clouds__cloud_id__bev_labels_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Bev Labels",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/extract": {
      "post": {
        "description": "Extract static scene elements (poles, road edges, buildings, vegetation, markings) from a cloud and\nfeed them to the HD map (M-L3.0).",
        "operationId": "extract_static_api_lidar_clouds__cloud_id__extract_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Extract Static",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/ground-qa": {
      "get": {
        "description": "Milestone F: ground-plane labeling review. Flags whether the auto ground fit is ok / tilted / sparse /\nabsent so an annotator labels the surface by hand only on the clouds that need it.",
        "operationId": "cloud_ground_qa_api_lidar_clouds__cloud_id__ground_qa_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Ground Qa",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/lift": {
      "post": {
        "description": "AI-assist lift addressed by cloud: resolve the synchronized camera frame and lift its 2D objects.",
        "operationId": "lift_cloud_objects_api_lidar_clouds__cloud_id__lift_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lift Cloud Objects",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/link": {
      "post": {
        "description": "Link unlinked 3D cuboids on a cloud to the 2D objects by projection IoU (the unifying identity).",
        "operationId": "link_cloud_objects_api_lidar_clouds__cloud_id__link_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Cloud Objects",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/objects3d": {
      "get": {
        "operationId": "list_objects3d_api_lidar_clouds__cloud_id__objects3d_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Objects3D",
        "tags": [
          "lidar"
        ]
      },
      "post": {
        "operationId": "create_object3d_api_lidar_clouds__cloud_id__objects3d_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Cuboid3DIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Object3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/occupancy": {
      "post": {
        "description": "Milestone F: an occupancy / voxel grid (occupied, free, unknown) from a cloud's geometry, ray-carved\nfrom the ego origin. Works on pseudo-LiDAR the same as real LiDAR.",
        "operationId": "cloud_occupancy_api_lidar_clouds__cloud_id__occupancy_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "voxel_size",
            "required": false,
            "schema": {
              "default": 0.5,
              "title": "Voxel Size",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Occupancy",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/points": {
      "get": {
        "description": "Packed binary point stream for the browser: Float32 [x, y, z, intensity] interleaved, decimated to\n`max` unless `full`. The viewer reads it as one ArrayBuffer (no JSON parse of millions of numbers).",
        "operationId": "cloud_points_api_lidar_clouds__cloud_id__points_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "variant",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Variant"
            }
          },
          {
            "in": "query",
            "name": "max",
            "required": false,
            "schema": {
              "default": 400000,
              "maximum": 5000000,
              "minimum": 1000,
              "title": "Max",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "full",
            "required": false,
            "schema": {
              "default": false,
              "title": "Full",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cloud Points",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/quality3d": {
      "get": {
        "operationId": "list_quality3d_api_lidar_clouds__cloud_id__quality3d_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Quality3D",
        "tags": [
          "lidar"
        ]
      },
      "post": {
        "description": "Run the mandatory 3D quality checker over a cloud's objects (floating, below-ground, impossible dims,\nduplicate, misaligned, missing neighbour) and write quality_flag_3d rows (M-L3.3).",
        "operationId": "quality3d_api_lidar_clouds__cloud_id__quality3d_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Quality3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/segment": {
      "post": {
        "description": "Segment a cloud into per-point semantic and instance labels (M-L2.3). PTv3 on the burst node, else the\nprojected fallback locally; the low-confidence fraction is recorded for review.",
        "operationId": "segment_api_lidar_clouds__cloud_id__segment_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segment",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/segmentation": {
      "get": {
        "operationId": "get_segmentation_api_lidar_clouds__cloud_id__segmentation_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Segmentation",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/segmentation/points": {
      "get": {
        "description": "Packed Float32 [x, y, z, semantic_class] for the viewer's segmentation overlay, decimated with the\nlabels aligned to the same points.",
        "operationId": "segmentation_points_api_lidar_clouds__cloud_id__segmentation_points_get",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "max",
            "required": false,
            "schema": {
              "default": 300000,
              "minimum": 1000,
              "title": "Max",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segmentation Points",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/clouds/{cloud_id}/traverse": {
      "post": {
        "description": "Produce the 3D free-space grid, metric drivable surface, road-surface class, and elevation profile\nfor a cloud (M-L3.1).",
        "operationId": "traverse_api_lidar_clouds__cloud_id__traverse_post",
        "parameters": [
          {
            "in": "path",
            "name": "cloud_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Cloud Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Traverse",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/cuboids/{frame_id}": {
      "post": {
        "description": "Convert every oriented box on a LiDAR BEV frame into a 3D cuboid (object.cuboid_3d). The z extent\nis taken from the points each box encloses, so the cuboids are data-driven, not assumed.",
        "operationId": "compute_cuboids_api_lidar_cuboids__frame_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compute Cuboids",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/export3d": {
      "post": {
        "description": "Seal a 3D slice into a dataset commit and export it to OpenLABEL, nuScenes, KITTI, Waymo, and raw\nclouds (LAS/PCD), with a provenance sidecar and a pinned commit (M-L3.4).",
        "operationId": "export3d_api_lidar_export3d_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Export3DIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/frames/{frame_id}/lift": {
      "post": {
        "description": "AI-assist: lift the frame's 2D objects into ground-snapped 3D cuboids (M-L2.0), seeding the workspace\nfor the annotator to refine. Machine cuboids are rewritten; human cuboids survive.",
        "operationId": "lift_frame_objects_api_lidar_frames__frame_id__lift_post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lift Frame Objects",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects2d/{object_id}/linked3d": {
      "get": {
        "description": "The reverse: the 3D cuboid a 2D object belongs to, and its per-camera projections.",
        "operationId": "object2d_linked3d_api_lidar_objects2d__object_id__linked3d_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object2D Linked3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/batch_correct": {
      "post": {
        "description": "Apply a class or dimension correction to a batch of 3D objects as a human edit.",
        "operationId": "batch_correct_objects3d_api_lidar_objects3d_batch_correct_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchCorrectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Batch Correct Objects3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/{object_3d_id}": {
      "delete": {
        "operationId": "delete_object3d_api_lidar_objects3d__object_3d_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Object3D",
        "tags": [
          "lidar"
        ]
      },
      "patch": {
        "operationId": "edit_object3d_api_lidar_objects3d__object_3d_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Cuboid3DEdit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Edit Object3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/{object_3d_id}/consistency": {
      "post": {
        "description": "Cross-sensor 2D-3D consistency: reproject the cuboid into every camera that has a 2D detection of the\nsame object and score the box agreement. A gross mismatch writes a quality_flag_3d that routes the cuboid\nto review, the same loop as the geometric checks.",
        "operationId": "object3d_consistency_api_lidar_objects3d__object_3d_id__consistency_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object3D Consistency",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/{object_3d_id}/linked": {
      "get": {
        "description": "The 2D object and the per-camera projections of a 3D object: select it in the cloud, see it in every\nsynchronized camera view.",
        "operationId": "object3d_linked_api_lidar_objects3d__object_3d_id__linked_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object3D Linked",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/{object_3d_id}/projection": {
      "get": {
        "operationId": "project_object3d_api_lidar_objects3d__object_3d_id__projection_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cam_id",
            "required": false,
            "schema": {
              "default": "cam_f",
              "title": "Cam Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "w",
            "required": false,
            "schema": {
              "default": 1280,
              "title": "W",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "h",
            "required": false,
            "schema": {
              "default": 960,
              "title": "H",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Project Object3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/{object_3d_id}/properties": {
      "post": {
        "description": "Auto-compute distance, heading, velocity, acceleration, and occlusion for a 3D object and store them.",
        "operationId": "compute_properties_endpoint_api_lidar_objects3d__object_3d_id__properties_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compute Properties Endpoint",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/objects3d/{object_3d_id}/similar": {
      "get": {
        "description": "Objects similar to a 3D object (class plus dimensions), the candidates for a batch correction.",
        "operationId": "similar_objects3d_api_lidar_objects3d__object_3d_id__similar_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object 3D Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "k",
            "required": false,
            "schema": {
              "default": 10,
              "maximum": 100,
              "minimum": 1,
              "title": "K",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Similar Objects3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/quality3d/{flag_id}/confirm": {
      "post": {
        "description": "Confirm a 3D quality flag: demote the flagged object back to review (the same loop as 2D).",
        "operationId": "confirm_quality3d_api_lidar_quality3d__flag_id__confirm_post",
        "parameters": [
          {
            "in": "path",
            "name": "flag_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flag Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Confirm Quality3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/search3d": {
      "get": {
        "description": "Natural-language cloud search: clouds whose 3D objects co-occur with the classes named in the query.",
        "operationId": "search3d_api_lidar_search3d_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/build": {
      "post": {
        "description": "Build pseudo-LiDAR clouds from a session's camera frames on the local 5080. Bounded to `limit` frame\ngroups so the request stays interactive; bulk volume runs through the pointcloud_build burst job.",
        "operationId": "build_clouds_api_lidar_sessions__session_id__build_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/services__api__routers__lidar__BuildIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Build Clouds",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/clouds": {
      "get": {
        "description": "Every point cloud in a session with its derived variants, for the viewer's cloud picker.",
        "operationId": "list_clouds_api_lidar_sessions__session_id__clouds_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Clouds",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/rare3d": {
      "post": {
        "description": "Mine 3D rare cues (flooded road, animal, emergency vehicle, debris) into ScenarioCandidate rows.",
        "operationId": "rare3d_api_lidar_sessions__session_id__rare3d_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rare3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/scene3d": {
      "post": {
        "description": "Classify the 3D structure (tunnel/flyover/open) of a session and merge it into Frame.scene (M-L3.3).",
        "operationId": "scene3d_api_lidar_sessions__session_id__scene3d_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scene3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/static_elements": {
      "get": {
        "operationId": "list_static_elements_api_lidar_sessions__session_id__static_elements_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Static Elements",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/track3d": {
      "post": {
        "description": "Track the session's 3D objects across frames into track_3d, linked to the 2D tracks, with a dynamic\nstate per track (M-L2.2).",
        "operationId": "run_tracking_api_lidar_sessions__session_id__track3d_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Tracking",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/tracks3d": {
      "get": {
        "operationId": "list_tracks3d_api_lidar_sessions__session_id__tracks3d_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Tracks3D",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/trajectory": {
      "get": {
        "description": "The GNSS path expressed in the ego frame at ref_ts_ns (the cloud's timestamp), so it overlays the\nego-frame cloud with the vehicle at the origin. x forward, y left, metres.",
        "operationId": "trajectory_api_lidar_sessions__session_id__trajectory_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ref_ts_ns",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Ref Ts Ns"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trajectory",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/sessions/{session_id}/validate": {
      "post": {
        "description": "Run the automatic LiDAR validation: cloud quality across the session plus camera coverage\nconsistency. Records a lidar_calibration_validation row; a 'fail' excludes the session from 3D work.",
        "operationId": "validate_lidar_api_lidar_sessions__session_id__validate_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Validate Lidar",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lidar/tracks3d/{track_3d_id}/interpolate": {
      "post": {
        "description": "Fill the cuboid pose between the human keyframes on a 3D track, writing interpolated object_3d for the\nclouds in the span that lack one (M-L2.2 keyframe interpolation).",
        "operationId": "interpolate_track_api_lidar_tracks3d__track_3d_id__interpolate_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_3d_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track 3D Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Interpolate Track",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/lineage/dataset/{commit_id}": {
      "get": {
        "operationId": "dataset_lineage_api_lineage_dataset__commit_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dataset Lineage",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/lineage/model/{model_version}": {
      "get": {
        "description": "Everything a model is made of, as a DAG. The direction an audit asks in.",
        "operationId": "model_lineage_api_lineage_model__model_version__get",
        "parameters": [
          {
            "in": "path",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "max_sessions",
            "required": false,
            "schema": {
              "default": 40,
              "maximum": 200,
              "minimum": 1,
              "title": "Max Sessions",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Model Lineage",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/lineage/session/{session_id}": {
      "get": {
        "description": "The forward direction: given this footage, what did it end up in.\n\nThe question an erasure request asks, and the one that previously meant reading every commit's slice\nspec by hand.",
        "operationId": "session_lineage_api_lineage_session__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session Lineage",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/mapassist/match": {
      "post": {
        "operationId": "match_api_mapassist_match_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "max_dist_m",
            "required": false,
            "schema": {
              "default": 30.0,
              "title": "Max Dist M",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Match",
        "tags": [
          "mapassist"
        ]
      }
    },
    "/api/mapassist/priors": {
      "get": {
        "operationId": "priors_api_mapassist_priors_get",
        "parameters": [
          {
            "in": "query",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Priors",
        "tags": [
          "mapassist"
        ]
      }
    },
    "/api/mask/compose": {
      "post": {
        "description": "Apply brush/eraser stamps to a mask and return the recomputed polygons.",
        "operationId": "compose_api_mask_compose_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComposeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compose",
        "tags": [
          "segment"
        ]
      }
    },
    "/api/metrics": {
      "get": {
        "description": "Lightweight operational counts for a dashboard: corpus size, label states, queue depth, and the\ngovernance auto-accept switch. JSON, not Prometheus, to stay dependency-free.",
        "operationId": "metrics_api_metrics_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Metrics"
      }
    },
    "/api/mine": {
      "post": {
        "operationId": "mine_api_mine_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "title": "Payload",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mine",
        "tags": [
          "intelligence"
        ]
      }
    },
    "/api/models": {
      "get": {
        "operationId": "list_models_api_models_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Models",
        "tags": [
          "models"
        ]
      }
    },
    "/api/models/external": {
      "post": {
        "description": "Register a model whose weights live outside this system, so its runs are attributable.\n\nThere was no way to register a model at all: the registry is written by the training path, so a model\ntrained anywhere else could not be named, and a run that cannot name its model produces a number nobody\ncan act on.",
        "operationId": "register_external_api_models_external_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalModelIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Register External",
        "tags": [
          "predictions"
        ]
      }
    },
    "/api/multicam/associate": {
      "post": {
        "operationId": "associate_api_multicam_associate_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Associate",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/consistency-check": {
      "post": {
        "description": "Flag cross-view class disagreement on rig tracks as cross_cam_inconsistent error candidates.",
        "operationId": "consistency_check_ep_api_multicam_consistency_check_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Consistency Check Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/group/at": {
      "get": {
        "description": "The persisted group nearest a timestamp: how the workspace opens the rig view for a given frame.\n\nReturns null (200) when the session has no group at that instant. That is the ordinary case for a\nsingle-camera session, not an error: the frame editor asks this on every open to decide whether a rig\nview is available, so a 404 here turns a normal \"no rig\" answer into a console error on every frame. This\nmatches group/nav below, which also returns its result rather than 404 when there is nothing to return.",
        "operationId": "group_at_api_multicam_group_at_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ts_ns",
            "required": true,
            "schema": {
              "title": "Ts Ns",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Group At",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/group/confirm": {
      "post": {
        "description": "Confirm (or unconfirm) a whole rig group at once.",
        "operationId": "group_confirm_api_multicam_group_confirm_post",
        "parameters": [
          {
            "in": "query",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "confirmed",
            "required": false,
            "schema": {
              "default": true,
              "title": "Confirmed",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Group Confirm",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/group/nav": {
      "get": {
        "description": "The previous or next group in time (group-aware prev/next).",
        "operationId": "group_nav_api_multicam_group_nav_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "direction",
            "required": false,
            "schema": {
              "default": "next",
              "title": "Direction",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Group Nav",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/groups": {
      "get": {
        "description": "In-memory rig groups (no writes): live assembly at an arbitrary tolerance.",
        "operationId": "groups_api_multicam_groups_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tol_ms",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Tol Ms",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Groups",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/groups/build": {
      "post": {
        "description": "Assemble and persist the session's frame groups (idempotent backfill). Returns a health summary.",
        "operationId": "build_groups_api_multicam_groups_build_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tol_ms",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Tol Ms",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Build Groups",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/groups/persisted": {
      "get": {
        "description": "The session's persisted groups in time order, with per-group missing_cams and sync spread.",
        "operationId": "persisted_groups_api_multicam_groups_persisted_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Persisted Groups",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/link": {
      "post": {
        "description": "Bind two or more objects across views into one rig identity (manual or accepted appearance suggestion).",
        "operationId": "link_ep_api_multicam_link_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/propagate": {
      "post": {
        "description": "Place a source object into the other rig views by lens-aware projection (Tier 2). Returns gated=True\nwhen the session is not calibrated, so the client shows the Tier 1 (manual link) chip instead.",
        "operationId": "propagate_ep_api_multicam_propagate_post",
        "parameters": [
          {
            "in": "query",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "use_sam",
            "required": false,
            "schema": {
              "default": true,
              "title": "Use Sam",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/rig-objects": {
      "get": {
        "description": "The rig-first object list for a group: linked identities + unlinked singletons.",
        "operationId": "rig_objects_ep_api_multicam_rig_objects_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig Objects Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/rig-track/timeline": {
      "get": {
        "description": "One rig track's ordered instants (the cross-camera handoff over time).",
        "operationId": "rig_track_timeline_ep_api_multicam_rig_track_timeline_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "rig_track_id",
            "required": true,
            "schema": {
              "title": "Rig Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig Track Timeline Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/rig-tracks": {
      "get": {
        "description": "The session's rig tracks: instants, cameras, time span, voted class, and inconsistency flag.",
        "operationId": "rig_tracks_ep_api_multicam_rig_tracks_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig Tracks Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/rig-tracks/build": {
      "post": {
        "description": "Chain the per-instant rig identities into rig tracks across time and cameras (via per-camera tracks).",
        "operationId": "rig_tracks_build_ep_api_multicam_rig_tracks_build_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig Tracks Build Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/suggest-links": {
      "get": {
        "description": "DINOv3 appearance-based cross-camera link candidates (assist only, never applied).",
        "operationId": "suggest_links_ep_api_multicam_suggest_links_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appearance_cos",
            "required": false,
            "schema": {
              "default": 0.55,
              "title": "Appearance Cos",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Suggest Links Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/multicam/unlink": {
      "post": {
        "description": "Remove an object from its rig identity (dissolves the identity if fewer than two members remain).",
        "operationId": "unlink_ep_api_multicam_unlink_post",
        "parameters": [
          {
            "in": "query",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Unlink Ep",
        "tags": [
          "multicam"
        ]
      }
    },
    "/api/notifications": {
      "get": {
        "operationId": "list_notifications_api_notifications_get",
        "parameters": [
          {
            "in": "query",
            "name": "unread_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Unread Only",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Notifications",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/notifications/count": {
      "get": {
        "description": "What the bell renders. Cheap enough to call on every page mount.",
        "operationId": "count_notifications_api_notifications_count_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Count Notifications",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/notifications/read-all": {
      "post": {
        "operationId": "read_all_api_notifications_read_all_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read All",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/notifications/{notification_id}/read": {
      "post": {
        "operationId": "read_notification_api_notifications__notification_id__read_post",
        "parameters": [
          {
            "in": "path",
            "name": "notification_id",
            "required": true,
            "schema": {
              "title": "Notification Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read Notification",
        "tags": [
          "inbox"
        ]
      }
    },
    "/api/objects/bulk-review": {
      "post": {
        "description": "Apply one review action to many objects at once (accept/reject/relabel a filtered set). Each\nobject gets source=human + a Review audit row, exactly like single review.",
        "operationId": "bulk_review_api_objects_bulk_review_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkReviewIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Review",
        "tags": [
          "review"
        ]
      }
    },
    "/api/objects/classify": {
      "post": {
        "description": "Zero-shot: what class is the object in this box? Crops the region and scores it against the ontology\nwith SigLIP 2, so a SAM box or wand click can auto-detect the class instead of the annotator picking it.\nReturns the top-k class suggestions with confidence; the first is the auto-assigned class.",
        "operationId": "classify_object_api_objects_classify_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClassifyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Classify Object",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/crops": {
      "post": {
        "description": "One sprite sheet holding many crops, plus the map of where each landed.\n\nGrouped by frame so every frame is fetched and decoded exactly once however many of its objects are\nrequested, and the decode runs in a worker thread because it is CPU-bound work inside an async handler.\n\nReturned as a sheet rather than as N images because a grid wants one request, not N: at 200 tiles the\nper-request overhead alone dominates, and browsers cap concurrent connections per host, so the tail of\nthe grid arrives long after the reviewer has looked at it.",
        "operationId": "object_crop_sheet_api_objects_crops_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CropSheetIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object Crop Sheet",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/quality/backfill": {
      "post": {
        "description": "M-F.1: compute and store quality scores across a session or the whole corpus.",
        "operationId": "quality_backfill_ep_api_objects_quality_backfill_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Quality Backfill Ep",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}": {
      "delete": {
        "description": "Delete an object, leaving a record that outlives it.\n\nDeleting an object cascades its Review rows, so the object and its entire history left the database\ntogether and nothing said anyone had done it: the audit trail was destroyed by the very action most\nworth auditing. AuditDecision carries no foreign key to the object, which is exactly why the record\ngoes there and survives. The full state is written into the rationale, because after the delete there\nis nothing left to join against.",
        "operationId": "delete_object_api_objects__object_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Object",
        "tags": [
          "objects"
        ]
      },
      "get": {
        "operationId": "get_object_api_objects__object_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Object",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/crop": {
      "get": {
        "description": "A JPEG crop of the object's bbox (with padding) for the track timeline thumbnails.",
        "operationId": "object_crop_api_objects__object_id__crop_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pad",
            "required": false,
            "schema": {
              "default": 0.15,
              "title": "Pad",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object Crop",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/explain": {
      "get": {
        "description": "M-F.0: the plain-language decision story for an object, assembled from its real provenance.",
        "operationId": "explain_object_ep_api_objects__object_id__explain_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Explain Object Ep",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/history": {
      "get": {
        "description": "Everything that has happened to one object, in order.\n\nThe audit trail already recorded this and nothing ever showed it. A reviewer asking \"why is this a bus\"\nhad to take the current state on faith; now the answer is a list of who changed what, when, and what it\nwas before.",
        "operationId": "object_history_api_objects__object_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object History",
        "tags": [
          "checkpoints"
        ]
      }
    },
    "/api/objects/{object_id}/keyframe": {
      "post": {
        "operationId": "set_keyframe_api_objects__object_id__keyframe_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "value",
            "required": false,
            "schema": {
              "default": true,
              "title": "Value",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Keyframe",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/objects/{object_id}/mask": {
      "put": {
        "description": "Replace an object's mask, and record who replaced it.\n\nEvery other geometry change writes a Review row; this one rewrote the mask in place with no reviewer,\nno before-state and no role check, so a segment could be redrawn by anyone the API let in and the change\nleft no trace. The mask blob itself is content-addressed and the old key is not deleted, so the\nrecorded uri is enough to go back and look at what was there.",
        "operationId": "update_mask_api_objects__object_id__mask_put",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MaskIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Mask",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/propagate": {
      "post": {
        "description": "Label once, carry forward: optical-flow propagate this object's box across the next `frames`\nframes as an annotate-state track the human confirms. Yields the GPU to training is moot (CPU).",
        "operationId": "propagate_object_api_objects__object_id__propagate_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "frames",
            "required": false,
            "schema": {
              "default": 12,
              "title": "Frames",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate Object",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/quality": {
      "get": {
        "description": "M-F.1: the object's composite quality score with its factor breakdown.",
        "operationId": "object_quality_ep_api_objects__object_id__quality_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Object Quality Ep",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/reinterpolate": {
      "post": {
        "description": "M2.5 edit-propagation: fixing a keyframe re-interpolates only its adjacent segments.",
        "operationId": "reinterpolate_api_objects__object_id__reinterpolate_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "method",
            "required": false,
            "schema": {
              "default": "linear",
              "title": "Method",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reinterpolate",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/objects/{object_id}/relate": {
      "post": {
        "description": "Create a directed relationship from this object to another on the same frame.",
        "operationId": "relate_object_api_objects__object_id__relate_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relate Object",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/review": {
      "post": {
        "operationId": "review_object_api_objects__object_id__review_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Review Object",
        "tags": [
          "review"
        ]
      }
    },
    "/api/objects/{object_id}/sam_propagate": {
      "post": {
        "description": "Label once, carry both ways: propagate this keyframe object's box forward AND backward with optical\nflow, refining each into a mask with a SAM box prompt (interp_source=sam_propagated). Routed to review.",
        "operationId": "sam_propagate_api_objects__object_id__sam_propagate_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "frames",
            "required": false,
            "schema": {
              "default": 12,
              "title": "Frames",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "direction",
            "required": false,
            "schema": {
              "default": "both",
              "title": "Direction",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "refine",
            "required": false,
            "schema": {
              "default": true,
              "title": "Refine",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sam Propagate",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/objects/{object_id}/similar": {
      "get": {
        "operationId": "objects_similar_api_objects__object_id__similar_get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 12,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Objects Similar",
        "tags": [
          "search"
        ]
      }
    },
    "/api/ocr/region": {
      "post": {
        "description": "Read the text in one region of an image, for the document annotator's transcription field.\n\nSeparate from /ocr/run, which walks a session's sign objects. A document page is an Asset, not a Frame,\nand its regions are drawn by hand rather than detected, so there is nothing for the session path to\niterate. Without this the document editor could box a region and then required the annotator to retype\nwhat was already legible on screen.\n\nThe confidence comes back as None from the local reader and is passed through as None. A number here\nwould make the transcription look verified when nobody verified it, which is the mistake the OCR path\nwas already fixed once for.",
        "operationId": "ocr_region_api_ocr_region_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegionOcrIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Ocr Region Api Ocr Region Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ocr Region",
        "tags": [
          "ocr"
        ]
      }
    },
    "/api/ocr/run": {
      "post": {
        "description": "OCR a session's text-bearing sign/board objects; plate-overlapping regions are excluded.",
        "operationId": "run_api_ocr_run_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "ocr"
        ]
      }
    },
    "/api/ontology": {
      "get": {
        "operationId": "ontology_api_ontology_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Ontology",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/ontology/classes": {
      "post": {
        "description": "Add an annotator-defined custom class. It lands in the custom id block, is marked rare so the gate\nroutes it to human review, and is mirrored into the DB ontology table for the current version.\n\nReviewer-gated. Minting a class is not a per-object edit: it changes the vocabulary every subsequent\nlabel is drawn from, and a class the sidecar offers but the database will not store is what killed a\ncorpus relabel run at frame 13 of 25.",
        "operationId": "create_class_api_ontology_classes_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewClassIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Class",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/ontology/classes/merge": {
      "post": {
        "description": "Move every object and track from one class into another, as one reversible run.\n\n`merge_class` has existed in services/agent/ontology_merge.py and been reachable from nothing: the only\nontology write in the application was minting a class, so a mistake in the vocabulary could be added to\nand never repaired. Admin-gated because it rewrites the class of every object that carries it.",
        "operationId": "merge_classes_api_ontology_classes_merge_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Merge Classes",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/ontology/classes/rename": {
      "post": {
        "description": "Rename a custom class, keeping its id so every object that carries it follows the rename.\n\nOnly sidecar classes: the governed YAML is the versioned vocabulary and is edited in the file, not\nthrough an endpoint that would leave the file and the database disagreeing.",
        "operationId": "rename_class_api_ontology_classes_rename_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rename Class",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/ontology/classes/retire": {
      "post": {
        "description": "Stop offering these classes, without deleting the rows objects still point at.\n\nRetiring removes a class from the sidecar so nothing new can be labelled with it. The database row\nstays, because `prediction` and `eval_patch` hold immutable history that still references it, and\ndeleting it would either fail on a foreign key or take that history with it.",
        "operationId": "retire_classes_api_ontology_classes_retire_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "type": "integer"
                },
                "title": "Class Ids",
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retire Classes",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/ontology/merges/{run_id}/revert": {
      "post": {
        "description": "Undo a merge, putting every object back on the class it carried.",
        "operationId": "revert_merge_run_api_ontology_merges__run_id__revert_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revert Merge Run",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/oraclyx/board": {
      "get": {
        "description": "The consensus/disagreement board: auto-accepted vs human-routed pseudo-label counts.",
        "operationId": "board_api_oraclyx_board_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Board",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/disagreements/rank": {
      "post": {
        "description": "Rank pseudo labels for human review by descending expected information gain (the M14 review queue).",
        "operationId": "disagreements_rank_api_oraclyx_disagreements_rank_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RankIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Disagreements Rank",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/distillation": {
      "get": {
        "description": "The distillation manifest: consensus pseudo-labels with soft targets, the edge-model training signal.",
        "operationId": "distillation_api_oraclyx_distillation_get",
        "parameters": [
          {
            "in": "query",
            "name": "min_score",
            "required": false,
            "schema": {
              "default": 0.5,
              "title": "Min Score",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Distillation",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/mono-depth": {
      "post": {
        "description": "Recover a metric depth for a camera-only object from the ground and known-size priors, or refuse it.",
        "operationId": "mono_depth_api_oraclyx_mono_depth_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonoDepthIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mono Depth",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/object/{object_id}/consensus": {
      "post": {
        "description": "Vote fusion against the three auto-label paths for an object, persist the pseudo-label, and route the\nobject (auto_accept on consensus, review on disagreement).",
        "operationId": "consensus_api_oraclyx_object__object_id__consensus_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsensusIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Consensus",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/radar/fuse": {
      "post": {
        "description": "Fuse a radar Doppler range-rate onto a track box, rejecting mis-associated returns.",
        "operationId": "radar_fuse_api_oraclyx_radar_fuse_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RadarIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Radar Fuse",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/thresholds": {
      "get": {
        "description": "What is actually in force for a model, and how much of the ontology it covers.\n\nA class absent from `by_class` is falling back to the configured constant. That is the normal case and\nit is reported rather than hidden, because a constant nobody measured is not a precision floor.",
        "operationId": "thresholds_active_api_oraclyx_thresholds_get",
        "parameters": [
          {
            "in": "query",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Thresholds Active",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/oraclyx/thresholds/fit": {
      "post": {
        "description": "Fit a per-class operating point from a run's recorded outcomes. Stored inactive unless asked.",
        "operationId": "thresholds_fit_api_oraclyx_thresholds_fit_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FitThresholdsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Thresholds Fit",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/oraclyx/thresholds/{fit_id}": {
      "get": {
        "operationId": "thresholds_detail_api_oraclyx_thresholds__fit_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "fit_id",
            "required": true,
            "schema": {
              "title": "Fit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Thresholds Detail",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/oraclyx/thresholds/{fit_id}/activate": {
      "post": {
        "description": "Put a fit into force, retiring whichever fit for the same model was in force before.\n\nAdmin rather than reviewer: this changes what the engine will accept into the corpus without anybody\nlooking at it, across every class at once.",
        "operationId": "thresholds_activate_api_oraclyx_thresholds__fit_id__activate_post",
        "parameters": [
          {
            "in": "path",
            "name": "fit_id",
            "required": true,
            "schema": {
              "title": "Fit Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Thresholds Activate",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/oraclyx/tracks4d/stitch": {
      "post": {
        "description": "Stitch sparse per-frame consensus boxes into one 4D pseudo-GT track, healing short occlusion gaps.",
        "operationId": "tracks4d_stitch_api_oraclyx_tracks4d_stitch_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StitchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Tracks4D Stitch",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/oraclyx/uncertainty": {
      "post": {
        "description": "Calibrated pseudo-GT uncertainty and the distillation soft-target weight for one label.",
        "operationId": "uncertainty_api_oraclyx_uncertainty_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UncertaintyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Uncertainty",
        "tags": [
          "oraclyx"
        ]
      }
    },
    "/api/platforms": {
      "get": {
        "description": "The platform registry: the seven platforms the data engine hosts (annotation core + the six folded\nsubsystems), in launcher order. The frontend mirror (web/platforms/registry.ts) must match these ids;\na test reconciles the two.",
        "operationId": "list_platforms_api_platforms_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Platforms",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/predictions/{prediction_id}/crop": {
      "get": {
        "description": "A JPEG crop of a prediction's bbox (with padding), for the evaluation patch grid.",
        "operationId": "prediction_crop_api_predictions__prediction_id__crop_get",
        "parameters": [
          {
            "in": "path",
            "name": "prediction_id",
            "required": true,
            "schema": {
              "title": "Prediction Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pad",
            "required": false,
            "schema": {
              "default": 0.15,
              "title": "Pad",
              "type": "number"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Prediction Crop",
        "tags": [
          "predictions"
        ]
      }
    },
    "/api/projects/{project_id}/assets": {
      "get": {
        "operationId": "list_assets_api_projects__project_id__assets_get",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "media_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Media Type"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Assets",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/projects/{project_id}/label-config": {
      "post": {
        "description": "Set the project's labeling interface. Validated here so a broken config cannot be saved and then\nsilently reject every annotation later.",
        "operationId": "set_label_config_api_projects__project_id__label_config_post",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": {},
                "title": "Config",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Label Config",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/projects/{project_id}/stats": {
      "get": {
        "operationId": "project_stats_api_projects__project_id__stats_get",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Project Stats",
        "tags": [
          "assets"
        ]
      }
    },
    "/api/qa/vlm": {
      "post": {
        "description": "Run a VLM auto-QA + auto-attributes pass on a session in the background: flags cross-superclass\ndisagreements into the QA queue and pre-fills typed attributes. GPU-light (Ollama), yields to\ntraining. Flagged objects surface in triage's QA queue (state=submitted).",
        "operationId": "qa_vlm_api_qa_vlm_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 40,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Qa Vlm",
        "tags": [
          "review"
        ]
      }
    },
    "/api/quality/attr-audit/{session_id}": {
      "get": {
        "description": "Milestone I: scan a session's objects for attribute-schema violations against each object's current\nclass (surfaces labels invalidated by a class change or written before validation).",
        "operationId": "attr_audit_api_quality_attr_audit__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Attr Audit",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/calibrate/fit": {
      "post": {
        "operationId": "calibrate_fit_api_quality_calibrate_fit_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalibrateFitIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Calibrate Fit",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/gold-sets": {
      "get": {
        "operationId": "gold_sets_api_quality_gold_sets_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Gold Sets",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/gold/seal": {
      "post": {
        "operationId": "seal_api_quality_gold_seal_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoldSealIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Seal",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/gold/{gold_id}/measure": {
      "post": {
        "description": "Score a sealed gold set, in the background.\n\nThe page told the operator to run `make m9 ARGS=\"--gold <id>\"` from a shell, which is not something a\nreviewer has, so a sealed set stayed unmeasured until an engineer happened to do it. GPU work, so it\nyields to a training job exactly as the other GPU routes do, and it refuses a set whose objects no\nlonger exist rather than spending the GPU to measure nothing: five of the seven on this deployment are\nin that state.",
        "operationId": "measure_api_quality_gold__gold_id__measure_post",
        "parameters": [
          {
            "in": "path",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Measure",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/iaa": {
      "post": {
        "description": "Milestone I: inter-annotator agreement between two independent label sets on a frame: detection\nagreement, class agreement, mean IoU, and Cohen's kappa.",
        "operationId": "inter_annotator_agreement_api_quality_iaa_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IaaIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Inter Annotator Agreement",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/sheet": {
      "get": {
        "operationId": "sheet_api_quality_sheet_get",
        "parameters": [
          {
            "in": "query",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sheet",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/track-gap-fill": {
      "post": {
        "operationId": "track_gap_fill_api_quality_track_gap_fill_post",
        "parameters": [
          {
            "in": "query",
            "name": "max_tracks",
            "required": false,
            "schema": {
              "default": 20000,
              "title": "Max Tracks",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Track Gap Fill",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/track-gap-fill/plan": {
      "get": {
        "operationId": "track_gap_plan_api_quality_track_gap_fill_plan_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Track Gap Plan",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/track-relabel-backfill": {
      "post": {
        "operationId": "track_relabel_backfill_api_quality_track_relabel_backfill_post",
        "parameters": [
          {
            "in": "query",
            "name": "max_tracks",
            "required": false,
            "schema": {
              "default": 5000,
              "title": "Max Tracks",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Track Relabel Backfill",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/quality/track-relabel-backfill/plan": {
      "get": {
        "operationId": "track_relabel_plan_api_quality_track_relabel_backfill_plan_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Track Relabel Plan",
        "tags": [
          "quality"
        ]
      }
    },
    "/api/readyz": {
      "get": {
        "description": "Readiness probe: 200 only when every dependency is reachable, 503 otherwise.\n\n/api/health is a liveness probe and deliberately returns 200 with a degraded body so an operator can see\nwhich dependency is down. A load balancer reading that as healthy would keep routing traffic to a node\nwhose Postgres is gone, so readiness needs its own endpoint that actually fails. Public for the same\nreason /api/health is: a probe cannot carry a token.",
        "operationId": "readyz_api_readyz_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Readyz"
      }
    },
    "/api/reasoner/attribution": {
      "get": {
        "description": "Per check: how often it argued against a label, and how often it was right to.\n\nMeasured over reviewed objects only, because an object nobody looked at is not evidence a check was\nright; counting it would let a check earn precision on things nobody examined.",
        "operationId": "attribution_api_reasoner_attribution_get",
        "parameters": [
          {
            "in": "query",
            "name": "since_hours",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Hours"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Attribution",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/coverage": {
      "get": {
        "description": "How much of the corpus carries a reasoning trace at all.",
        "operationId": "coverage_api_reasoner_coverage_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Coverage",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/explain": {
      "post": {
        "description": "Run Tier 1 over a hypothetical detection and return every finding.\n\nThe tuning surface. Adjusting a height band or a scene rule and seeing what it does to a known-bad\ndetection is far more useful than reading the weights, and needs no session to try.",
        "operationId": "explain_api_reasoner_explain_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExplainIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Explain",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/outcomes": {
      "get": {
        "description": "Did the reasoner's own decisions hold up?\n\nThe number the layer is accountable to: of the objects it accepted, how many did a human later reject.",
        "operationId": "outcomes_api_reasoner_outcomes_get",
        "parameters": [
          {
            "in": "query",
            "name": "since_hours",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Hours"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Outcomes",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/priors": {
      "get": {
        "description": "The physical and contextual priors the checks read.\n\nExposed so a domain expert can see what the system believes about India's roads and argue with it. A\nheight band nobody can inspect is a magic number.",
        "operationId": "priors_api_reasoner_priors_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Priors",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/rerun/{session_id}": {
      "post": {
        "description": "Reason over a session's existing objects, without re-detecting.\n\nThe way to apply an improved prior to work already annotated, and the way to see what the reasoner\nwould have caught before trusting it with new sessions. `apply` is off by default: seeing what it\nwould do is a different act from doing it, and the second should be deliberate.",
        "operationId": "rerun_api_reasoner_rerun__session_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 500,
              "maximum": 5000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "apply",
            "required": false,
            "schema": {
              "default": false,
              "title": "Apply",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rerun",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/trace/{object_id}": {
      "get": {
        "description": "Why this object is in the state it is in.\n\nWhat makes rapid review fast: the reviewer sees the reasoning rather than working it out from the crop.",
        "operationId": "trace_api_reasoner_trace__object_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trace",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/reasoner/weights": {
      "get": {
        "description": "What the weights would be if they followed the measurements.\n\nReported, never applied. A scoring function that silently rewrites itself from a few hundred verdicts\ndrifts in a way nobody notices until a class collapses.",
        "operationId": "suggested_weights_api_reasoner_weights_get",
        "parameters": [
          {
            "in": "query",
            "name": "since_hours",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Hours"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Suggested Weights",
        "tags": [
          "reasoner"
        ]
      }
    },
    "/api/recall/candidates": {
      "get": {
        "operationId": "candidates_api_recall_candidates_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "pending",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Candidates",
        "tags": [
          "recall"
        ]
      }
    },
    "/api/recall/candidates/{candidate_id}/{verdict}": {
      "post": {
        "description": "Confirm or reject a mined candidate.\n\nNothing could write these statuses before, so `fit_channel_reliability` selected on a set that was\nguaranteed empty and the per-channel priors stayed hand-guessed forever. The feature was built to learn\nwhich channel is worth trusting and had no way to be told.",
        "operationId": "rule_api_recall_candidates__candidate_id___verdict__post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "verdict",
            "required": true,
            "schema": {
              "title": "Verdict",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rule",
        "tags": [
          "recall"
        ]
      }
    },
    "/api/recall/progress": {
      "get": {
        "description": "How much of the mining has been judged, in total and per channel.\n\nPer channel because the reliability fit needs a minimum number of verdicts before it applies a\nmeasurement, so a healthy-looking total can still hide a channel nobody has ruled on.",
        "operationId": "progress_api_recall_progress_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Progress",
        "tags": [
          "recall"
        ]
      }
    },
    "/api/recall/run/{session_id}": {
      "post": {
        "description": "Source recall candidates over a session. With shortlist_only the model channels touch only the\nactive-learning shortlist; trackgap always runs full-session.",
        "operationId": "run_api_recall_run__session_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "shortlist_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Shortlist Only",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "recall"
        ]
      }
    },
    "/api/relabel/ingest": {
      "post": {
        "operationId": "ingest_api_relabel_ingest_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ingest",
        "tags": [
          "relabel"
        ]
      }
    },
    "/api/relabel/runs": {
      "get": {
        "operationId": "runs_api_relabel_runs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Runs",
        "tags": [
          "relabel"
        ]
      }
    },
    "/api/relabel/runs/{run_id}/revert": {
      "post": {
        "operationId": "revert_api_relabel_runs__run_id__revert_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revert",
        "tags": [
          "relabel"
        ]
      }
    },
    "/api/relabel/start": {
      "post": {
        "operationId": "start_api_relabel_start_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelabelStartIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start",
        "tags": [
          "relabel"
        ]
      }
    },
    "/api/relations/{relationship_id}/status": {
      "post": {
        "operationId": "relation_status_api_relations__relationship_id__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "relationship_id",
            "required": true,
            "schema": {
              "title": "Relationship Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": true,
            "schema": {
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relation Status",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/relationships/{relationship_id}": {
      "delete": {
        "operationId": "delete_relationship_api_relationships__relationship_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "relationship_id",
            "required": true,
            "schema": {
              "title": "Relationship Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Relationship",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/release/gold/{gold_id}/lineage": {
      "get": {
        "description": "Resolve a sealed gold set back to its sessions and each session's health and calibration state, so a\nsingle query answers whether a release drew from sessions a plane later flagged.",
        "operationId": "lineage_api_release_gold__gold_id__lineage_get",
        "parameters": [
          {
            "in": "path",
            "name": "gold_id",
            "required": true,
            "schema": {
              "title": "Gold Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Lineage",
        "tags": [
          "release"
        ]
      }
    },
    "/api/release/registry": {
      "get": {
        "description": "The Release registry: content-addressed dataset commits with their parent lineage, newest first.",
        "operationId": "registry_api_release_registry_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Registry",
        "tags": [
          "release"
        ]
      }
    },
    "/api/release/{commit_id}/verify": {
      "get": {
        "description": "Enforce release immutability: recompute the content fingerprint from the live objects the commit's\nslice selects and compare it to the one sealed at export time. A mismatch means an annotation was mutated\nafter the release was cut (the commit_id, hashing only object ids, would not have caught it).",
        "operationId": "verify_api_release__commit_id__verify_get",
        "parameters": [
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "title": "Commit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Verify",
        "tags": [
          "release"
        ]
      }
    },
    "/api/sanyx/board": {
      "get": {
        "description": "The ingest board: recent sessions with their latest SANYX health score and decision.",
        "operationId": "board_api_sanyx_board_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Board",
        "tags": [
          "sanyx"
        ]
      }
    },
    "/api/sanyx/compat-matrix": {
      "get": {
        "description": "The learned class-compatibility matrix, with the support each cell rests on.\n\nCells are ordered by support rather than by probability: a cell at 1.0 on one observation is not a\nfinding, and ordering by probability would put exactly those at the top.",
        "operationId": "compat_matrix_view_api_sanyx_compat_matrix_get",
        "parameters": [
          {
            "in": "query",
            "name": "top",
            "required": false,
            "schema": {
              "default": 25,
              "title": "Top",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Compat Matrix View",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/sanyx/gate/{session_id}": {
      "get": {
        "description": "The quarantine gate view downstream planes consult before spending work on a session.",
        "operationId": "gate_api_sanyx_gate__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Gate",
        "tags": [
          "sanyx"
        ]
      }
    },
    "/api/sanyx/rig/{vehicle_id}/trends": {
      "get": {
        "description": "SANYX predictive maintenance: per-component health trends across the vehicle's sessions, with alerts on\nmodules degrading toward failure before they fail.",
        "operationId": "rig_trends_view_api_sanyx_rig__vehicle_id__trends_get",
        "parameters": [
          {
            "in": "path",
            "name": "vehicle_id",
            "required": true,
            "schema": {
              "title": "Vehicle Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rig Trends View",
        "tags": [
          "sanyx"
        ]
      }
    },
    "/api/sanyx/session/{session_id}": {
      "get": {
        "operationId": "session_report_api_sanyx_session__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session Report",
        "tags": [
          "sanyx"
        ]
      }
    },
    "/api/sanyx/session/{session_id}/override": {
      "post": {
        "description": "Human override of a SANYX decision, with a captured reason. Writes a new health row so the override is\nauditable and the latest decision reflects the human call, without mutating the machine report.",
        "operationId": "override_api_sanyx_session__session_id__override_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OverrideIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Override",
        "tags": [
          "sanyx"
        ]
      }
    },
    "/api/sanyx/session/{session_id}/run": {
      "post": {
        "description": "Run the six checks on demand and persist a fresh HealthReport.",
        "operationId": "run_api_sanyx_session__session_id__run_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run",
        "tags": [
          "sanyx"
        ]
      }
    },
    "/api/scenarios": {
      "get": {
        "operationId": "list_scenarios_api_scenarios_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          },
          {
            "in": "query",
            "name": "city",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "City"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Scenarios",
        "tags": [
          "intelligence"
        ]
      }
    },
    "/api/scenarios/search": {
      "get": {
        "operationId": "scenarios_search_api_scenarios_search_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "city",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "City"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "semantic",
            "required": false,
            "schema": {
              "default": false,
              "title": "Semantic",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scenarios Search",
        "tags": [
          "intelligence"
        ]
      }
    },
    "/api/scenarios/{scenario_id}": {
      "get": {
        "operationId": "scenario_detail_api_scenarios__scenario_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "scenario_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Scenario Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scenario Detail",
        "tags": [
          "intelligence"
        ]
      }
    },
    "/api/scene-graph/vocab": {
      "get": {
        "operationId": "scene_graph_vocab_api_scene_graph_vocab_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Scene Graph Vocab",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/scene/classify": {
      "post": {
        "description": "Zero-shot scene tags (weather/time_of_day/road_type/density) for a session, or the whole corpus.\nCheap: a matmul over the SigLIP 2 frame vectors already in the index, no image decode.",
        "operationId": "scene_classify_api_scene_classify_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Scene Classify",
        "tags": [
          "search"
        ]
      }
    },
    "/api/search/objects": {
      "get": {
        "operationId": "search_objects_api_search_objects_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 24,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search Objects",
        "tags": [
          "search"
        ]
      }
    },
    "/api/search/semantic": {
      "get": {
        "description": "Natural-language frame search: parse scene/class filters, SigLIP 2 pgvector rerank, rarity blend.\n\n`rarity_weight` trades match against how much a frame would teach. The corpus is 88% one class across\n34,132 frames, so a broad query returns a screenful of the commonest thing in it while the frame worth\nlabelling sits just under the cut. Set 0 for pure similarity; the response always reports which was used.",
        "operationId": "search_semantic_api_search_semantic_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "k",
            "required": false,
            "schema": {
              "default": 24,
              "title": "K",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "rarity_weight",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Rarity Weight"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search Semantic",
        "tags": [
          "search"
        ]
      }
    },
    "/api/search/similar": {
      "post": {
        "description": "Visual (DINOv3) or semantic (SigLIP 2) neighbours of a frame, an object, or an uploaded image, reranked\nfor diversity and a similarity floor (services/intelligence/search/similar.py).",
        "operationId": "search_similar_api_search_similar_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimilarIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search Similar",
        "tags": [
          "search"
        ]
      }
    },
    "/api/sec/identities": {
      "get": {
        "description": "Appearance signatures, never names. The signature itself is never returned.",
        "operationId": "list_identities_api_sec_identities_get",
        "parameters": [
          {
            "in": "query",
            "name": "min_cameras",
            "required": false,
            "schema": {
              "default": 1,
              "maximum": 20,
              "minimum": 1,
              "title": "Min Cameras",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Identities",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/identities/{identity_id}": {
      "delete": {
        "description": "Erase a signature and everything attributed to it.\n\nPresent because it must be: a signature is derived from a person's appearance, so it is personal data\nunder DPDPA whether or not a name is attached, and an erasure request has to be able to reach it.",
        "operationId": "forget_identity_api_sec_identities__identity_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "identity_id",
            "required": true,
            "schema": {
              "title": "Identity Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Forget Identity",
        "tags": [
          "security"
        ]
      },
      "get": {
        "operationId": "identity_detail_api_sec_identities__identity_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "identity_id",
            "required": true,
            "schema": {
              "title": "Identity Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Identity Detail",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/incidents": {
      "get": {
        "operationId": "list_incidents_api_sec_incidents_get",
        "parameters": [
          {
            "in": "query",
            "name": "camera_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Camera Id"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "since_hours",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since Hours"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Incidents",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/incidents/{incident_id}/acknowledge": {
      "post": {
        "operationId": "acknowledge_api_sec_incidents__incident_id__acknowledge_post",
        "parameters": [
          {
            "in": "path",
            "name": "incident_id",
            "required": true,
            "schema": {
              "title": "Incident Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "close",
            "required": false,
            "schema": {
              "default": false,
              "title": "Close",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Acknowledge",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/rtsp/ingest": {
      "post": {
        "description": "Sample a live camera into a session.\n\nBounded by frames and by seconds, both. A live stream has no end, so a request without a limit is a\nrequest to run forever, and the caller almost never means that.",
        "operationId": "rtsp_ingest_api_sec_rtsp_ingest_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RtspIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rtsp Ingest",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/sessions/{session_id}/evaluate": {
      "post": {
        "description": "Run every active zone for this session's camera over its tracks, and raise what fires.",
        "operationId": "evaluate_session_api_sec_sessions__session_id__evaluate_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Evaluate Session",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/sessions/{session_id}/link-identities": {
      "post": {
        "operationId": "link_identities_api_sec_sessions__session_id__link_identities_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Identities",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/sessions/{session_id}/stitch-plates": {
      "post": {
        "description": "Attach plate reads to the incidents that happened at the same moment on the same camera.\n\nThe join an operator was doing in their head: a crossing at 14:02:11 and a plate read at 14:02:11 on\nthe same camera are one van.",
        "operationId": "stitch_plates_api_sec_sessions__session_id__stitch_plates_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Stitch Plates",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/zones": {
      "get": {
        "operationId": "list_zones_api_sec_zones_get",
        "parameters": [
          {
            "in": "query",
            "name": "camera_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Camera Id"
            }
          },
          {
            "in": "query",
            "name": "active_only",
            "required": false,
            "schema": {
              "default": true,
              "title": "Active Only",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Zones",
        "tags": [
          "security"
        ]
      },
      "post": {
        "operationId": "create_zone_api_sec_zones_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ZoneIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Zone",
        "tags": [
          "security"
        ]
      }
    },
    "/api/sec/zones/{zone_id}": {
      "delete": {
        "operationId": "delete_zone_api_sec_zones__zone_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Zone",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/pack": {
      "get": {
        "description": "What the security pack authorises and how it sees the world.\n\nThe console reads this to decide what to render: a deployment running the AV pack should be told ANPR is\nrefused there, not shown a plate console that 403s on every action.",
        "operationId": "security_pack_api_security_pack_get",
        "parameters": [
          {
            "in": "query",
            "name": "pack_id",
            "required": false,
            "schema": {
              "default": "sec",
              "title": "Pack Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Security Pack",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/reads": {
      "get": {
        "description": "The read feed, most recent first, filterable and paged.\n\nReading this list is reading registration marks, which are personal data under DPDPA, so the access is\nrecorded. This is the one place in the application where the plain text of somebody's plate is shown to\na human on purpose, which makes it exactly the access an enquiry will ask about.",
        "operationId": "get_reads_api_security_reads_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "camera_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Camera Id"
            }
          },
          {
            "in": "query",
            "name": "plate",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Plate"
            }
          },
          {
            "in": "query",
            "name": "state_code",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State Code"
            }
          },
          {
            "in": "query",
            "name": "hits_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Hits Only",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Reads",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/recognize": {
      "post": {
        "description": "Read the plates in the given regions of a frame, match them against the watchlist, and record them.\n\nThe pack is resolved from the frame's own session, not from a request parameter: which domain a capture\nbelongs to is a property of the capture, and letting a caller assert it would make the AV pack's refusal\nbypassable by anyone who could send a request.",
        "operationId": "recognize_api_security_recognize_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecognizeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recognize",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/sessions": {
      "get": {
        "description": "Sessions captured under the security pack.\n\nThis is per-session pack routing made visible: a session records the pack it belongs to, and the console\nlists only its own domain's captures instead of every dashcam drive in the corpus.",
        "operationId": "security_sessions_api_security_sessions_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Security Sessions",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/stats": {
      "get": {
        "description": "Headline counts for the console, including how many reads carry no measured confidence.",
        "operationId": "get_stats_api_security_stats_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Stats",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/watchlist": {
      "get": {
        "operationId": "get_watchlist_api_security_watchlist_get",
        "parameters": [
          {
            "in": "query",
            "name": "active_only",
            "required": false,
            "schema": {
              "default": true,
              "title": "Active Only",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 500,
              "maximum": 2000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Watchlist",
        "tags": [
          "security"
        ]
      },
      "post": {
        "description": "Watch a registration mark. Stored on its normalised form so however it is written, it is one entry.",
        "operationId": "add_watchlist_api_security_watchlist_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WatchlistIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Add Watchlist",
        "tags": [
          "security"
        ]
      }
    },
    "/api/security/watchlist/{entry_id}": {
      "delete": {
        "description": "Deactivate an entry. Kept rather than deleted so an already-recorded hit stays explainable.",
        "operationId": "delete_watchlist_api_security_watchlist__entry_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "title": "Entry Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Watchlist",
        "tags": [
          "security"
        ]
      }
    },
    "/api/segment": {
      "post": {
        "operationId": "segment_api_segment_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SegmentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Segment",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/service-accounts": {
      "get": {
        "description": "Every account, without the keys, which are not recoverable.",
        "operationId": "index_api_service_accounts_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_revoked",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Revoked",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Index",
        "tags": [
          "service-accounts"
        ]
      },
      "post": {
        "description": "Mint a machine credential. The key is in this response and nowhere else, ever.",
        "operationId": "create_api_service_accounts_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MintIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create",
        "tags": [
          "service-accounts"
        ]
      }
    },
    "/api/service-accounts/{account_id}/revoke": {
      "post": {
        "description": "Stop this key working now. Idempotent.",
        "operationId": "kill_api_service_accounts__account_id__revoke_post",
        "parameters": [
          {
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "title": "Account Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Kill",
        "tags": [
          "service-accounts"
        ]
      }
    },
    "/api/service-accounts/{account_id}/rotate": {
      "post": {
        "description": "Replace the secret, keeping the identity, so a leaked key is swapped without re-pointing whatever it\nauthorises at a different account.",
        "operationId": "new_key_api_service_accounts__account_id__rotate_post",
        "parameters": [
          {
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "title": "Account Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "New Key",
        "tags": [
          "service-accounts"
        ]
      }
    },
    "/api/sessions": {
      "get": {
        "operationId": "sessions_api_sessions_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sessions",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/sessions/page": {
      "get": {
        "description": "Paginated session list with a total, so the browser can page through all 2000+ drives instead of\nbeing silently capped at the first window. Optional vehicle_id narrows to one fleet.",
        "operationId": "sessions_page_api_sessions_page_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "vehicle_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vehicle Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sessions Page",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/sessions/states": {
      "get": {
        "description": "One row per session saying what state the work is in, for the editor's drive picker.\n\nThe picker needs to separate a drive nobody has started from one somebody is part way through, and the\nexisting progress fraction cannot: accepted-plus-auto_accept over total has a median of 0.011 across\nthis corpus, so a percentage bar reads about 1% on nearly every drive and tells the annotator nothing.\nWhat does separate them is coarser and true: whether the frames carry any detections at all (42\nsessions have none), and whether a PERSON has ruled on any of it (125 have).\n\n`user_id IS NOT NULL` is what makes the second half honest. Machine writers put rows in `review` too:\n27,396 of them here are from the track-relabel backfill alone, against 1,613 written by a human, and\ncounting those would mark almost every drive as reviewed by somebody who never opened it.\n\nTwo queries rather than one join, because the human-review side is small and joining it against 714,415\nobjects to count 1,613 rows is the expensive way to get the same answer.",
        "operationId": "session_states_api_sessions_states_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Session States",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/sessions/{session_id}/driving-events": {
      "get": {
        "description": "One session's driving events, narrowed by kind, review state, severity, or actor.",
        "operationId": "list_driving_events_api_sessions__session_id__driving_events_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "track_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Track Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 2000,
              "maximum": 20000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Driving Events",
        "tags": [
          "driving-events"
        ]
      },
      "post": {
        "description": "Author a driving event by hand, including the human-only kinds no deriver may propose.",
        "operationId": "create_api_sessions__session_id__driving_events_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DrivingEventIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/sessions/{session_id}/driving-events/derive": {
      "post": {
        "description": "Derive lane and signal events for a session and reconcile them with what is stored.\n\nSafe to re-run: matching candidates update in place rather than duplicating, human decisions are never\ntouched, and candidates the geometry no longer implies are pruned unless prune_stale is turned off.",
        "operationId": "derive_api_sessions__session_id__driving_events_derive_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prune_stale",
            "required": false,
            "schema": {
              "default": true,
              "title": "Prune Stale",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Derive",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/sessions/{session_id}/driving-events/preview": {
      "post": {
        "description": "What deriving would produce, without writing anything.\n\nThe way to try a changed threshold in the taxonomy against a real session before letting it rewrite the\nsession's candidates, which is the same posture the reasoner's rerun takes for the same reason.",
        "operationId": "preview_api_sessions__session_id__driving_events_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/sessions/{session_id}/driving-events/summary": {
      "get": {
        "description": "Counts by kind, severity and review state. What a session header shows without pulling every event.",
        "operationId": "summary_api_sessions__session_id__driving_events_summary_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Summary",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/sessions/{session_id}/egostate": {
      "get": {
        "description": "The derived ego-state series for a session (source=derived). Drives the inertial timeline.",
        "operationId": "ego_state_api_sessions__session_id__egostate_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ego State",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/events": {
      "get": {
        "description": "All timeline events for a session, optionally filtered by modality.",
        "operationId": "list_timeline_events_api_sessions__session_id__events_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "modality",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Modality"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Timeline Events",
        "tags": [
          "inertial"
        ]
      },
      "post": {
        "description": "Place a human event on the timeline (imu/audio/scene/geo).",
        "operationId": "create_timeline_event_api_sessions__session_id__events_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Timeline Event",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/events/auto": {
      "post": {
        "description": "Persist the auto-detected inertial spikes as unconfirmed candidates (source=auto), never accepted.",
        "operationId": "persist_auto_events_api_sessions__session_id__events_auto_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Persist Auto Events",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/events/correlate": {
      "post": {
        "description": "Bind the inertial spike, the frame, and the audio region at ts into one crossmodal event.",
        "operationId": "correlate_timeline_event_api_sessions__session_id__events_correlate_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ts_ns",
            "required": true,
            "schema": {
              "title": "Ts Ns",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "window_ns",
            "required": false,
            "schema": {
              "default": 250000000,
              "title": "Window Ns",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Correlate Timeline Event",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/events/scene": {
      "post": {
        "description": "Segment adverse-condition runs (rain, fog, night, dusk) from frame.scene into unconfirmed scene events.",
        "operationId": "persist_scene_events_ep_api_sessions__session_id__events_scene_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Persist Scene Events Ep",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/first-frame": {
      "get": {
        "description": "The chronological first frame of a session, so a card can open it directly in the editor.",
        "operationId": "first_frame_api_sessions__session_id__first_frame_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "First Frame",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/sessions/{session_id}/inertial_events": {
      "get": {
        "description": "Tagged inertial events (hard brake, hard accel, swerve, impact), anomaly pre-marks, and maneuver\nsegments for a session, computed from the ego-state series.",
        "operationId": "inertial_events_api_sessions__session_id__inertial_events_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Inertial Events",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/lanes/classify": {
      "post": {
        "description": "Read each lane's type off the frame it was drawn on.\n\nThe other half of the lane prerequisite, alongside linking. Linking says which crossings exist; typing\nsays which of them are offences. A lane a person typed is never overwritten, and `reclassify` decides\nwhether lanes already measured are looked at again, which is what a threshold change needs.",
        "operationId": "classify_lanes_api_sessions__session_id__lanes_classify_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "apply",
            "required": false,
            "schema": {
              "default": true,
              "title": "Apply",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "reclassify",
            "required": false,
            "schema": {
              "default": false,
              "title": "Reclassify",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Classify Lanes",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/sessions/{session_id}/lanes/link": {
      "post": {
        "description": "Give a session's lanes an identity across frames, from the control points alone.\n\nA prerequisite for any lane behaviour rather than a feature in itself, which is why the derive route runs\nit on demand. Exposed separately so the result can be inspected before deriving, and because a session\nwhose lanes were corrected by hand is worth relinking without waiting for the next derivation.",
        "operationId": "link_lanes_api_sessions__session_id__lanes_link_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "apply",
            "required": false,
            "schema": {
              "default": true,
              "title": "Apply",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Lanes",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/sessions/{session_id}/qa/consistency": {
      "get": {
        "description": "Milestone C: the worst-first cross-modal QA queue - the 2D-3D reprojection-inconsistency flags ranked\nby severity plus the timestamp-seam flags (events with no aligned camera frame).",
        "operationId": "qa_consistency_api_sessions__session_id__qa_consistency_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Qa Consistency",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sessions/{session_id}/static-dynamic": {
      "get": {
        "description": "Milestone G: partition the session's 3D tracks into static (parked, label once) and dynamic (label\nper frame), so a parked car or pole is labeled once instead of frame by frame.",
        "operationId": "session_static_dynamic_api_sessions__session_id__static_dynamic_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session Static Dynamic",
        "tags": [
          "lidar"
        ]
      }
    },
    "/api/sessions/{session_id}/stats": {
      "get": {
        "description": "Per-session progress for the Open Annotation browser: frame count + object counts by state, and a\nprogress fraction (auto-accepted + human-accepted over total).",
        "operationId": "session_stats_api_sessions__session_id__stats_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session Stats",
        "tags": [
          "meta"
        ]
      }
    },
    "/api/sessions/{session_id}/timeline": {
      "get": {
        "description": "The canonical multimodal timeline (Milestone A): modalities present, ts range, and the sync method +\naccumulated-error estimate. The single axis the synchronized workspace scrubs.",
        "operationId": "timeline_api_sessions__session_id__timeline_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Timeline",
        "tags": [
          "inertial"
        ]
      }
    },
    "/api/sievyx/cliques": {
      "get": {
        "description": "The posteriors, and whether any of them has ever been moved by a labelling cycle.",
        "operationId": "cliques_report_api_sievyx_cliques_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Cliques Report",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/sievyx/cliques/reward": {
      "post": {
        "description": "Report what a labelled batch bought, so the posterior for that clique can move.",
        "operationId": "cliques_reward_api_sievyx_cliques_reward_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CliqueRewardIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cliques Reward",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/sievyx/cliques/select": {
      "post": {
        "description": "Select frames to label next, split across confusion cliques and ranked within each.",
        "operationId": "cliques_select_api_sievyx_cliques_select_post",
        "parameters": [
          {
            "in": "query",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "budget",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Budget",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "seed",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Seed"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cliques Select",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/sievyx/composition": {
      "get": {
        "description": "The queue-composition dashboard: the class mix, rarity-band split, and mean per-signal contribution of\nthe top priority items, so a human can see whether the budget is buying rare tail data or common data.",
        "operationId": "composition_api_sievyx_composition_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "top_n",
            "required": false,
            "schema": {
              "default": 500,
              "title": "Top N",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Composition",
        "tags": [
          "sievyx"
        ]
      }
    },
    "/api/sievyx/discover": {
      "get": {
        "description": "Unsupervised long-tail discovery: cluster a sample of object embeddings and surface the rarest groups\nfor naming, growing the scenario ontology from data.",
        "operationId": "discover_api_sievyx_discover_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 400,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "min_size",
            "required": false,
            "schema": {
              "default": 2,
              "title": "Min Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Discover",
        "tags": [
          "sievyx"
        ]
      }
    },
    "/api/sievyx/maneuver": {
      "post": {
        "description": "Recognize the maneuver of a track's trajectory (cut-in, unprotected turn, U-turn, lane change, jaywalk).",
        "operationId": "maneuver_api_sievyx_maneuver_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManeuverIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Maneuver",
        "tags": [
          "sievyx"
        ]
      }
    },
    "/api/sievyx/odd/gaps": {
      "post": {
        "description": "ODD coverage-gap report: scenario cells underrepresented against the target operational design domain.",
        "operationId": "odd_gaps_api_sievyx_odd_gaps_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OddIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Odd Gaps",
        "tags": [
          "sievyx"
        ]
      }
    },
    "/api/sievyx/priority": {
      "get": {
        "description": "The label queue ranked by the combined priority score (uncertainty + diversity + rarity + error +\nrecall value). This is the order a human should label in; SIEVYX feeds it to the LabeloxAV workspace.",
        "operationId": "priority_api_sievyx_priority_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Priority",
        "tags": [
          "sievyx"
        ]
      }
    },
    "/api/signs/recognize": {
      "post": {
        "description": "Type the session's traffic_sign detections against the taxonomy; flag text-bearing for OCR.",
        "operationId": "recognize_api_signs_recognize_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recognize",
        "tags": [
          "signs"
        ]
      }
    },
    "/api/signs/taxonomy": {
      "get": {
        "operationId": "taxonomy_api_signs_taxonomy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Taxonomy",
        "tags": [
          "signs"
        ]
      }
    },
    "/api/superpixels/{frame_id}": {
      "post": {
        "description": "SLIC superpixels for a frame, as polygons to click into a mask.",
        "operationId": "superpixels_api_superpixels__frame_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "frame_id",
            "required": true,
            "schema": {
              "title": "Frame Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "n",
            "required": false,
            "schema": {
              "default": 300,
              "title": "N",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Superpixels",
        "tags": [
          "segment"
        ]
      }
    },
    "/api/system/resources": {
      "get": {
        "description": "GPU, memory, CPU and disk, read now.\n\nEvery slow thing in this system is slow for one of a few reasons and none of them were visible from\ninside the app: a GPU held by another tenant, a full disk, work parked for hardware that is not here.\nThose were questions you answered in a terminal, and most people using this do not have one.",
        "operationId": "system_resources_api_system_resources_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "System Resources",
        "tags": [
          "hardening"
        ]
      }
    },
    "/api/track-events/{event_id}": {
      "delete": {
        "description": "Admin only. Rejecting an event is the reviewer's action and it keeps the record of the disagreement;\ndeleting removes the evidence that anybody ever thought the span was there.",
        "operationId": "delete_event_api_track_events__event_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Event",
        "tags": [
          "tracks"
        ]
      },
      "patch": {
        "description": "Accept, reject, retime or annotate one event.\n\nAccepting a proposal keeps `source=heuristic`: the record of who suggested it is what makes the\nproposer's precision measurable later, and overwriting it with `human` would make every accepted\nproposal indistinguishable from a hand-drawn span.",
        "operationId": "update_event_api_track_events__event_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Event Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackEventPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Event",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracklets/objects/{object_id}/keyframe": {
      "post": {
        "description": "Mark a frame as observed, optionally correcting its box.\n\nCorrecting necessarily makes it a keyframe: a corrected box that stayed derived would be overwritten\nby the next derive, which is the single most infuriating thing a video annotator can experience.",
        "operationId": "set_keyframe_api_tracklets_objects__object_id__keyframe_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyframeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Keyframe",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracklets/objects/{object_id}/propagate": {
      "post": {
        "operationId": "propagate_api_tracklets_objects__object_id__propagate_post",
        "parameters": [
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "title": "Object Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "direction",
            "required": false,
            "schema": {
              "default": "both",
              "title": "Direction",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "frames",
            "required": false,
            "schema": {
              "default": 12,
              "maximum": 120,
              "minimum": 1,
              "title": "Frames",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "refine",
            "required": false,
            "schema": {
              "default": true,
              "title": "Refine",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Propagate",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracklets/stats/summary": {
      "get": {
        "operationId": "tracklet_stats_api_tracklets_stats_summary_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Tracklet Stats",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracklets/{track_id}": {
      "get": {
        "operationId": "load_tracklet_api_tracklets__track_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "title": "Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Load Tracklet",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracklets/{track_id}/attributes": {
      "post": {
        "description": "Set an attribute once for a whole track. A vehicle's colour does not change between frames.",
        "operationId": "set_track_attributes_api_tracklets__track_id__attributes_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackAttrsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Track Attributes",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracklets/{track_id}/derive": {
      "post": {
        "operationId": "derive_api_tracklets__track_id__derive_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "method",
            "required": false,
            "schema": {
              "default": "linear",
              "title": "Method",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "overwrite_human",
            "required": false,
            "schema": {
              "default": false,
              "title": "Overwrite Human",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Derive",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracklets/{track_id}/suggest-keyframes": {
      "get": {
        "description": "Where the next correction buys the most frames.",
        "operationId": "suggest_keyframes_api_tracklets__track_id__suggest_keyframes_get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "budget",
            "required": false,
            "schema": {
              "default": 8,
              "maximum": 50,
              "minimum": 1,
              "title": "Budget",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Suggest Keyframes",
        "tags": [
          "campaigns"
        ]
      }
    },
    "/api/tracks/retrack": {
      "post": {
        "description": "Re-run BoT-SORT + DINOv3 tracking over a session: stable track_ids across occlusions/re-entries.",
        "operationId": "retrack_api_tracks_retrack_post",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retrack",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}": {
      "delete": {
        "operationId": "delete_track_api_tracks__track_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Track",
        "tags": [
          "tracks"
        ]
      },
      "get": {
        "operationId": "get_track_api_tracks__track_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Track",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/attribute-timeline": {
      "get": {
        "description": "M-4D / Milestone G: the transition timeline of one attribute across a track (e.g. signal_state,\nbrake, indicator), as contiguous value segments so the change points are explicit.",
        "operationId": "attribute_timeline_api_tracks__track_id__attribute_timeline_get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Attribute Timeline",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/driving-events": {
      "get": {
        "description": "Everything derived about one actor, in time order.\n\nWhat the track inspector shows: the behaviour of this vehicle over the clip, rather than a list of the\nboxes that make it up.",
        "operationId": "track_events_api_tracks__track_id__driving_events_get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Track Events",
        "tags": [
          "driving-events"
        ]
      }
    },
    "/api/tracks/{track_id}/events": {
      "get": {
        "description": "Every event on a track, earliest first, with the pack's vocabulary alongside.\n\nThe vocabulary rides with the list so the picker does not need a second request, and so the definitions\nan annotator reads always come from the pack this track's session was captured under.",
        "operationId": "list_events_api_tracks__track_id__events_get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Events",
        "tags": [
          "tracks"
        ]
      },
      "post": {
        "operationId": "create_event_api_tracks__track_id__events_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackEventIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Event",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/intent/propose": {
      "post": {
        "description": "Propose trajectory-derived intents for a track (geometric: cut_in, hard_brake, crossing, ...).",
        "operationId": "intent_propose_api_tracks__track_id__intent_propose_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Intent Propose",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/intent/set": {
      "post": {
        "description": "Human confirms or sets a track's intent from the closed vocabulary (or 'unknown' to clear).",
        "operationId": "intent_set_api_tracks__track_id__intent_set_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntentSetIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Intent Set",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/intent/vlm": {
      "post": {
        "description": "Propose a VLM-derived intent for a VRU track (looking_at_vehicle, hesitating, jaywalking).",
        "operationId": "intent_vlm_api_tracks__track_id__intent_vlm_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Intent Vlm",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/interpolate": {
      "post": {
        "description": "Fill this track's gaps, skipping holes whose bracketing anchors are not plausibly one object.\n\nAnchors default to detections rather than human keyframes: only 179 of 11,406 tracks carry two\nhuman-verified boxes, so the keyframe policy fills nothing on a machine-labelled track. The response\nreports refusals by reason, which is the part worth reading - a track that fills nothing because its\nendpoints teleport is a tracking problem, not an interpolation one.",
        "operationId": "interpolate_api_tracks__track_id__interpolate_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "method",
            "required": false,
            "schema": {
              "default": "cubic",
              "title": "Method",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "anchor_policy",
            "required": false,
            "schema": {
              "default": "detection",
              "title": "Anchor Policy",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Interpolate",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/interpolate-keyframed": {
      "post": {
        "description": "M2.5: fill frames between human keyframes with linear/cubic boxes, marked source=interpolated.",
        "operationId": "interpolate_keyframed_api_tracks__track_id__interpolate_keyframed_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "method",
            "required": false,
            "schema": {
              "default": "linear",
              "title": "Method",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Interpolate Keyframed",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/merge": {
      "post": {
        "description": "Milestone G re-ID: merge a fragmented track (from_track_id) into this one. Refuses with 409 if the two\ntracks share a frame (they coexist, so they are not the same object) unless force is set.",
        "operationId": "merge_track_ep_api_tracks__track_id__merge_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeTrackIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Merge Track Ep",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/relabel": {
      "post": {
        "description": "Set one class on every object in the track. Fixes a class flip in one action instead of N per-frame\nedits.\n\nThis is what a class correction in the frame editor now fans out through, and the reason it had to be\nhardened first. Measured before the change: 413 tracks carried an unambiguous human class, and of the\n44,097 objects on them only 5,798 had it. The median track is 93 frames and the median number of frames\na person actually touched is 1, so 86.9% of every correction ever made was sitting on one frame.\n\nThe per-object work is services/review_apply.py, shared with bulk review, which is what gives this path\nthe optimistic lock, the role clamp, attribute revalidation and a revertible run it previously had none\nof.",
        "operationId": "relabel_track_api_tracks__track_id__relabel_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelabelTrackIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relabel Track",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/seg4d-consistency": {
      "get": {
        "description": "Milestone G 4D semantic seg: temporal consistency of the track's per-frame class, with the count of\nisolated flickers a temporal majority filter would correct (proposed, not auto-applied).",
        "operationId": "seg4d_consistency_api_tracks__track_id__seg4d_consistency_get",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "window",
            "required": false,
            "schema": {
              "default": 2,
              "title": "Window",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Seg4D Consistency",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/smooth": {
      "post": {
        "description": "M-4D.2: smooth the track's motion path, shifting each box to its low-pass-filtered centroid (jitter\nand velocity discontinuities removed) while keeping box sizes and the true endpoints.",
        "operationId": "smooth_track_path_api_tracks__track_id__smooth_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "window",
            "required": false,
            "schema": {
              "default": 5,
              "title": "Window",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Smooth Track Path",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/tracks/{track_id}/split": {
      "post": {
        "description": "Milestone G re-ID: split a track that collapsed two objects, at a frame timestamp. Objects at or after\nthe boundary move to a new track; objects before stay.",
        "operationId": "split_track_ep_api_tracks__track_id__split_post",
        "parameters": [
          {
            "in": "path",
            "name": "track_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Track Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SplitTrackIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Split Track Ep",
        "tags": [
          "tracks"
        ]
      }
    },
    "/api/training": {
      "get": {
        "operationId": "list_jobs_api_training_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Jobs",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/registry": {
      "get": {
        "description": "Model lines grouped by purpose; the active model per line is its latest promoted run.",
        "operationId": "registry_api_training_registry_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Registry",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/runs": {
      "get": {
        "description": "Recorded model runs (finetune close-the-loop output), newest first, with baseline vs candidate\nmetrics and the promotion gate - the data behind the graphical comparison.",
        "operationId": "runs_api_training_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Runs",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/runs/{run_id}/curve": {
      "get": {
        "description": "Per-epoch training curves parsed from ultralytics results.csv for this run's dataset.",
        "operationId": "run_curve_api_training_runs__run_id__curve_get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Curve",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/start": {
      "post": {
        "operationId": "start_api_training_start_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingStartIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/sweep": {
      "post": {
        "description": "Enqueue one training job per hyperparameter point.\n\nTrials are ordinary training jobs so they inherit gating, cancellation, and progress. None of them\nauto-promote: the winner has to be chosen by comparing trials, and promoting whichever finished first\nwould make that a function of scheduling order.",
        "operationId": "start_sweep_endpoint_api_training_sweep_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SweepIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start Sweep Endpoint",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/sweep/{name}": {
      "get": {
        "description": "The ranking for a sweep, with an honest count of trials that produced no metric.",
        "operationId": "sweep_status_api_training_sweep__name__get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "metric",
            "required": false,
            "schema": {
              "default": "map50",
              "title": "Metric",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sweep Status",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/tasks": {
      "get": {
        "operationId": "tasks_api_training_tasks_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Tasks",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/{job_id}": {
      "get": {
        "operationId": "status_api_training__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Status",
        "tags": [
          "training"
        ]
      }
    },
    "/api/training/{job_id}/cancel": {
      "post": {
        "operationId": "cancel_api_training__job_id__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cancel",
        "tags": [
          "training"
        ]
      }
    },
    "/api/triage": {
      "get": {
        "operationId": "triage_api_triage_get",
        "parameters": [
          {
            "in": "query",
            "name": "states",
            "required": false,
            "schema": {
              "default": "review,annotate",
              "title": "States",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          },
          {
            "in": "query",
            "name": "klass",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Klass"
            }
          },
          {
            "in": "query",
            "name": "city",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "City"
            }
          },
          {
            "in": "query",
            "name": "flywheel",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Flywheel"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TriageRow"
                  },
                  "title": "Response Triage Api Triage Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Triage",
        "tags": [
          "triage"
        ]
      }
    },
    "/api/upload/abort": {
      "post": {
        "operationId": "abort_api_upload_abort_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MultipartAbortIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Abort",
        "tags": [
          "upload"
        ]
      }
    },
    "/api/upload/complete": {
      "post": {
        "operationId": "complete_api_upload_complete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MultipartCompleteIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Complete",
        "tags": [
          "upload"
        ]
      }
    },
    "/api/upload/init": {
      "post": {
        "operationId": "init_api_upload_init_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MultipartInitIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Init",
        "tags": [
          "upload"
        ]
      }
    },
    "/api/upload/presign-put": {
      "post": {
        "operationId": "presign_put_api_upload_presign_put_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MultipartInitIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Presign Put",
        "tags": [
          "upload"
        ]
      }
    },
    "/api/upload/sign": {
      "post": {
        "operationId": "sign_api_upload_sign_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MultipartSignIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sign",
        "tags": [
          "upload"
        ]
      }
    },
    "/api/users": {
      "get": {
        "description": "Paginated, and bounded by a ceiling the caller cannot raise. The list was previously unbounded, so it\ngrew without limit as the team did and a caller could not page through it.\n\nNewest first: on a paginated admin list the recently added users are the ones an operator is looking for,\nand oldest-first would bury a just-created account on the last page.",
        "operationId": "list_users_api_users_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Users",
        "tags": [
          "users"
        ]
      },
      "post": {
        "operationId": "create_user_api_users_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create User",
        "tags": [
          "users"
        ]
      }
    },
    "/api/users/me": {
      "get": {
        "description": "Resolve the caller's own identity from their Bearer token. Lets the web client turn a pasted token into\na name/role for display without trusting anything client-side.",
        "operationId": "whoami_api_users_me_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Whoami",
        "tags": [
          "users"
        ]
      }
    },
    "/api/users/{user_id}/revoke-tokens": {
      "post": {
        "description": "Revoke every outstanding token for a user by incrementing its token_version. The next request carrying\nan old token fails verification and the user must obtain a fresh one. Per-user, no session store.",
        "operationId": "revoke_tokens_api_users__user_id__revoke_tokens_post",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Revoke Tokens Api Users  User Id  Revoke Tokens Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revoke Tokens",
        "tags": [
          "users"
        ]
      }
    },
    "/api/users/{user_id}/token": {
      "post": {
        "description": "Re-issue a user's Bearer token (e.g. after a lost credential). Admin-only. To also invalidate the old\ntoken, call POST /users/{id}/revoke-tokens first, which bumps the user's token_version.",
        "operationId": "reissue_token_api_users__user_id__token_post",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reissue Token",
        "tags": [
          "users"
        ]
      }
    },
    "/api/verdyx/blind-audit/seed": {
      "post": {
        "description": "Choose the frames and create the job that serves them blind. Nothing is measured yet.",
        "operationId": "blind_audit_seed_api_verdyx_blind_audit_seed_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeedAuditIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Blind Audit Seed",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/blind-audit/{audit_id}": {
      "get": {
        "operationId": "blind_audit_get_api_verdyx_blind_audit__audit_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "audit_id",
            "required": true,
            "schema": {
              "title": "Audit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Blind Audit Get",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/blind-audit/{audit_id}/estimate": {
      "get": {
        "description": "Every persisted slice of the estimate: per stratum, per class, and pooled.\n\nAn unmeasurable slice is returned as a row with measured false and a reason, not omitted. \"We checked\nand cannot tell\" is a different statement from \"we did not check\", and only one of them is safe to\nread as the absence of a problem.",
        "operationId": "blind_audit_estimate_api_verdyx_blind_audit__audit_id__estimate_get",
        "parameters": [
          {
            "in": "path",
            "name": "audit_id",
            "required": true,
            "schema": {
              "title": "Audit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Blind Audit Estimate",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/blind-audit/{audit_id}/mark-labeled": {
      "post": {
        "description": "Declare the auditor finished with every frame that is not already marked.\n\nExplicit rather than inferred, because a frame with no boxes on it is either an empty frame or one\nnobody opened, and scoring the second as the first reports the model as having missed nothing exactly\nwhere it was never checked.",
        "operationId": "blind_audit_mark_labeled_api_verdyx_blind_audit__audit_id__mark_labeled_post",
        "parameters": [
          {
            "in": "path",
            "name": "audit_id",
            "required": true,
            "schema": {
              "title": "Audit Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Blind Audit Mark Labeled",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/blind-audit/{audit_id}/score": {
      "post": {
        "description": "Match the two observations and persist the estimate. Refuses while too little of it is labelled.",
        "operationId": "blind_audit_score_api_verdyx_blind_audit__audit_id__score_post",
        "parameters": [
          {
            "in": "path",
            "name": "audit_id",
            "required": true,
            "schema": {
              "title": "Audit Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "min_frames",
            "required": false,
            "schema": {
              "default": 1,
              "title": "Min Frames",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Blind Audit Score",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/blind-audits": {
      "get": {
        "operationId": "blind_audit_list_api_verdyx_blind_audits_get",
        "parameters": [
          {
            "in": "query",
            "name": "run_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Run Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Blind Audit List",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/evaluate": {
      "post": {
        "description": "Record a per-slice evaluation and compute the protected-slice verdict governance consumes.\n\nGiven run_id + gold_id the slice metrics are computed here from the immutable prediction plane, so the\nsafety gate reads numbers derived from the model it is judging. Previously per_slice arrived in the\nrequest body and nothing in the tree produced it, which made the protected-slice gate only as trustworthy\nas the JSON someone typed.",
        "operationId": "evaluate_api_verdyx_evaluate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__verdyx__EvalIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Evaluate",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/hierarchical": {
      "get": {
        "description": "AP at every level of the class tree, and what the gap between levels says to work on.\n\nA large leaf-to-l1 gap means the detector finds objects and names them wrong, so labelling class\nboundaries buys AP. A small one means it is not finding them, and more class labels will not help.",
        "operationId": "hierarchical_eval_api_verdyx_hierarchical_get",
        "parameters": [
          {
            "in": "query",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "gold_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Gold Id"
            }
          },
          {
            "in": "query",
            "name": "score_thr",
            "required": false,
            "schema": {
              "default": 0.0,
              "title": "Score Thr",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Hierarchical Eval",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/matrix": {
      "get": {
        "description": "The slice matrix: champion vs challenger per slice, colored only by regression state in the UI.",
        "operationId": "slice_matrix_view_api_verdyx_matrix_get",
        "parameters": [
          {
            "in": "query",
            "name": "champion",
            "required": true,
            "schema": {
              "title": "Champion",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "challenger",
            "required": true,
            "schema": {
              "title": "Challenger",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "slice_metric",
            "required": false,
            "schema": {
              "default": "map",
              "title": "Slice Metric",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Slice Matrix View",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/model/{model_version}/evals": {
      "get": {
        "description": "Per-model evaluation history.",
        "operationId": "model_evals_api_verdyx_model__model_version__evals_get",
        "parameters": [
          {
            "in": "path",
            "name": "model_version",
            "required": true,
            "schema": {
              "title": "Model Version",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Model Evals",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/pairs": {
      "get": {
        "description": "Recent challenger/champion pairs that have evaluations, so the matrix has something to compare.",
        "operationId": "pairs_api_verdyx_pairs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Pairs",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/safety/recall": {
      "post": {
        "description": "The safety-weighted recall panel: critical-object recall, TTC-weighted recall, and the near-miss slice\nwith the missed-object escalation list.",
        "operationId": "safety_recall_api_verdyx_safety_recall_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SafetyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Safety Recall",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/shadow/triage": {
      "post": {
        "description": "Regression triage over a shadow snapshot: name the regressed slices worst-first and alarm on a protected\nslice drop.",
        "operationId": "shadow_triage_api_verdyx_shadow_triage_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriageIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Shadow Triage",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/stats/bootstrap": {
      "post": {
        "description": "A percentile bootstrap CI on a per-object metric, so a point estimate carries its uncertainty.",
        "operationId": "stats_bootstrap_api_verdyx_stats_bootstrap_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BootstrapIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Stats Bootstrap",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/verdyx/stats/significance": {
      "post": {
        "description": "A paired permutation test: is the challenger's per-object gain over the champion real or chance?",
        "operationId": "stats_significance_api_verdyx_stats_significance_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignificanceIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Stats Significance",
        "tags": [
          "verdyx"
        ]
      }
    },
    "/api/vlm-dataset/export": {
      "get": {
        "description": "Export the approved VLM targets in the multimodal per-frame format.",
        "operationId": "vlm_dataset_export_api_vlm_dataset_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Vlm Dataset Export",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/vlm-targets/{target_id}/status": {
      "post": {
        "description": "Human review gate: approve or reject a generated target (only approved export).",
        "operationId": "vlm_target_status_api_vlm_targets__target_id__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "target_id",
            "required": true,
            "schema": {
              "title": "Target Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": true,
            "schema": {
              "title": "Status",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Vlm Target Status",
        "tags": [
          "objects"
        ]
      }
    },
    "/api/workforce": {
      "post": {
        "description": "Register a workforce and mint its callback secret.\n\nAdmin, because registering a workforce creates a credential that can write annotations into the corpus.\nThe secret is returned exactly once, here; no read path returns it again.",
        "operationId": "register_api_workforce_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkforceIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Register",
        "tags": [
          "workforce"
        ]
      }
    },
    "/api/workforce/dispatch": {
      "post": {
        "description": "Send a job to a workforce, choosing one automatically when none is named.\n\nReviewer, matching assign_job: directing other people's time is a reviewer action.",
        "operationId": "dispatch_api_workforce_dispatch_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services__api__routers__workforce__DispatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dispatch",
        "tags": [
          "workforce"
        ]
      }
    },
    "/api/workforce/rating": {
      "get": {
        "description": "Accept rate per workforce, with the interval and the count.\n\n`routing_weight` is the lower bound, not the point estimate: three accepted batches out of three is 1.0\nand means very little. A workforce below the evidence floor is marked unproven rather than poor.",
        "operationId": "rating_api_workforce_rating_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          },
          {
            "in": "header",
            "name": "x-lbx-user-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Lbx-User-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rating",
        "tags": [
          "workforce"
        ]
      }
    },
    "/api/workforce/{workforce_id}/pending": {
      "get": {
        "description": "Open dispatches, for a workforce that polls rather than hosting a callback endpoint.\n\nSignature-authenticated like the return path, because the caller is the vendor rather than an operator.\nRequiring every vendor to host an HTTPS callback would exclude exactly the smaller outfits an\nIndia-focused operation would want to work with.",
        "operationId": "pending_api_workforce__workforce_id__pending_get",
        "parameters": [
          {
            "in": "path",
            "name": "workforce_id",
            "required": true,
            "schema": {
              "title": "Workforce Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "x-labelox-signature",
            "required": false,
            "schema": {
              "default": "",
              "title": "X-Labelox-Signature",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pending",
        "tags": [
          "workforce"
        ]
      }
    },
    "/api/workforce/{workforce_id}/return": {
      "post": {
        "description": "A workforce returns a finished batch. Honeypots decide whether it is accepted.\n\nThe raw body is read and verified before it is parsed, because the signature covers the bytes that were\nsent. Parsing first and re-serialising would verify a reconstruction of the message rather than the\nmessage, and key ordering or spacing would break it in ways that look like an attack.",
        "operationId": "submit_return_api_workforce__workforce_id__return_post",
        "parameters": [
          {
            "in": "path",
            "name": "workforce_id",
            "required": true,
            "schema": {
              "title": "Workforce Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-labelox-signature",
            "required": false,
            "schema": {
              "default": "",
              "title": "X-Labelox-Signature",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Submit Return",
        "tags": [
          "workforce"
        ]
      }
    },
    "/api/workforce/{workforce_id}/return/upload": {
      "post": {
        "description": "A workforce returns its actual annotations, not a count of them.\n\nThe plain return endpoint takes `objects_returned` as a number the vendor asserts, and nothing it sends\nbecomes a row. That made the honeypot gate meaningless for an outside team: `score_honeypots` grades\nhuman-sourced objects on the gold frames, and a vendor had no way to create one, so it was scoring rows\nthe vendor could not have written.\n\nThis ingests the batch first and then settles the assignment against what actually arrived, so the count\nis measured rather than claimed and the quality check has something real to check. A batch that fails\nits bar is removed whole, because the verdict lands after the write.",
        "operationId": "submit_return_upload_api_workforce__workforce_id__return_upload_post",
        "parameters": [
          {
            "in": "path",
            "name": "workforce_id",
            "required": true,
            "schema": {
              "title": "Workforce Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-labelox-signature",
            "required": false,
            "schema": {
              "default": "",
              "title": "X-Labelox-Signature",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Submit Return Upload",
        "tags": [
          "workforce"
        ]
      }
    },
    "/metrics": {
      "get": {
        "description": "Prometheus scrape target: request rates/latencies (in-process) plus live corpus gauges (review-queue\ndepth, embedding backlog). Unauthenticated like a conventional metrics port; bind it internally in prod.",
        "operationId": "metrics_endpoint_metrics_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Metrics Endpoint"
      }
    }
  }
}