{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.internal/paddock/analysis-response.schema.json",
  "title": "AnalyzeResponse",
  "type": "object",
  "required": [
    "sessionId",
    "revision",
    "propositions",
    "elements",
    "llmTriggered",
    "serverLatencyMs"
  ],
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "revision": {
      "type": "integer",
      "minimum": 1
    },
    "propositions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "propositionId",
          "state",
          "coverage",
          "rationale",
          "slotDecisions",
          "updatedAtRevision"
        ],
        "properties": {
          "propositionId": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "unseen",
              "hinted",
              "confirmed",
              "conflicted",
              "rejected"
            ]
          },
          "coverage": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "rationale": {
            "type": "string"
          },
          "slotDecisions": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "slotId",
                "satisfied",
                "confidence",
                "evidence"
              ],
              "properties": {
                "slotId": {
                  "type": "string"
                },
                "satisfied": {
                  "type": "boolean"
                },
                "confidence": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "evidence": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "slotId",
                      "source",
                      "confidence",
                      "span"
                    ],
                    "properties": {
                      "slotId": {
                        "type": "string"
                      },
                      "source": {
                        "type": "string",
                        "enum": [
                          "registry",
                          "lexical",
                          "lemma",
                          "fuzzy",
                          "dense",
                          "llm",
                          "coref",
                          "numeric",
                          "negation"
                        ]
                      },
                      "confidence": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1
                      },
                      "span": {
                        "type": "object",
                        "required": [
                          "start",
                          "end",
                          "text"
                        ],
                        "properties": {
                          "start": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "end": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      },
                      "conceptId": {
                        "type": "string"
                      },
                      "entityId": {
                        "type": "string"
                      },
                      "notes": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "conflicts": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "updatedAtRevision": {
            "type": "integer",
            "minimum": 1
          }
        },
        "additionalProperties": false
      }
    },
    "elements": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "elementId",
          "state",
          "completionRatio"
        ],
        "properties": {
          "elementId": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "incomplete",
              "complete"
            ]
          },
          "completionRatio": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "additionalProperties": false
      }
    },
    "llmTriggered": {
      "type": "boolean"
    },
    "serverLatencyMs": {
      "type": "integer",
      "minimum": 0
    }
  },
  "additionalProperties": false
}
