{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://kaldenframelabs.com/schemas/replay-input-preflight-report-v1.schema.json",
  "title": "Replay Input Preflight report v1",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "tool", "version", "subject", "status", "contract_sha256", "workspace_declared", "limits", "observed_file_count", "observed_total_bytes", "authorities", "inputs", "discoveries", "issues", "boundaries"],
  "properties": {
    "schema": {"const": "kaldenframe.replay-input-preflight.report.v1"},
    "tool": {"const": "Replay Input Preflight"},
    "version": {"const": "1.0.0"},
    "subject": {"type": "string"},
    "status": {"enum": ["READY", "REVIEW", "BLOCKED"]},
    "contract_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "workspace_declared": {"type": "string"},
    "limits": {"type": "object"},
    "observed_file_count": {"type": "integer", "minimum": 0},
    "observed_total_bytes": {"type": "integer", "minimum": 0},
    "authorities": {"type": "array"},
    "inputs": {"type": "array"},
    "discoveries": {"type": "array"},
    "issues": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["severity", "code", "subject", "detail"],
        "properties": {
          "severity": {"enum": ["BLOCK", "WARN"]},
          "code": {"type": "string"},
          "subject": {"type": "string"},
          "detail": {"type": "string"}
        }
      }
    },
    "boundaries": {"type": "object", "additionalProperties": {"type": "boolean"}}
  }
}
