{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://oms.local/schemas/provider-observed.schema.json",
  "title": "OMS bounded provider observation",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "observation_id",
    "delivery_id",
    "occurrence_id",
    "provider",
    "provider_version",
    "hook_event",
    "observation_kind",
    "observation_state",
    "dispatch_id",
    "dispatch_version",
    "session_id",
    "session_version",
    "worker_record_id",
    "worker_version",
    "ticket_id",
    "ticket_version",
    "ticket_attempt",
    "observed_at",
    "native_session_sha256",
    "source_sha256",
    "terminal_authority"
  ],
  "properties": {
    "schema_version": { "const": 1 },
    "observation_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "delivery_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "occurrence_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "provider": { "type": "string", "enum": ["claude", "codex"] },
    "provider_version": { "type": "string", "enum": ["2.1.207", "2.1.210", "2.1.211", "2.1.214", "2.1.215", "0.145.0-alpha.2"] },
    "hook_event": {
      "type": "string",
      "enum": ["SessionStart", "UserPromptSubmit", "Stop", "StopFailure", "Notification", "SessionEnd"]
    },
    "observation_kind": {
      "type": "string",
      "enum": ["session", "activity", "health", "completion-observed", "quota"]
    },
    "observation_state": {
      "type": "string",
      "enum": ["started", "stopped", "idle", "working", "healthy", "parked", "stalled", "observed", "limited", "available"]
    },
    "dispatch_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "dispatch_version": { "type": "integer", "minimum": 0 },
    "session_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "session_version": { "type": "integer", "minimum": 0 },
    "worker_record_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "worker_version": { "type": "integer", "minimum": 0 },
    "ticket_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "ticket_version": { "type": "integer", "minimum": 0 },
    "ticket_attempt": { "type": "integer", "minimum": 1 },
    "observed_at": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$" },
    "native_session_sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
    "source_sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
    "terminal_authority": { "const": false }
  }
}
