{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/eccaai-com/json-schema/eccaai-com-atomic-claim-record-schema.json",
  "title": "AtomicClaimRecord",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/eccaai-com-api-openapi.json#/components/schemas/AtomicClaimRecord",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "id",
    "url",
    "sealed",
    "checkedAt",
    "engineCount",
    "measured",
    "splitCount",
    "claims",
    "limitation"
  ],
  "properties": {
    "schema": {
      "const": "ecca.claim-verification.v1"
    },
    "id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{4,64}$"
    },
    "url": {
      "type": "string",
      "pattern": "^https://eccaai\\.com/p/[a-zA-Z0-9_-]{4,64}$"
    },
    "sealed": {
      "type": "boolean"
    },
    "checkedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "engineCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "measured": {
      "type": "boolean"
    },
    "splitCount": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "claims": {
      "type": "array",
      "maxItems": 72,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "pointId",
          "text",
          "variants",
          "comparison",
          "category",
          "tie",
          "engines",
          "checks",
          "sources"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^claim-[a-f0-9]{24}$"
          },
          "pointId": {
            "type": "string",
            "pattern": "^point-[a-f0-9]{24}$"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400
          },
          "variants": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "engineId",
                "text"
              ],
              "properties": {
                "engineId": {
                  "type": "string",
                  "enum": [
                    "speed",
                    "depth",
                    "breadth",
                    "logic",
                    "context",
                    "agentic"
                  ]
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 400
                }
              }
            }
          },
          "comparison": {
            "type": "string",
            "enum": [
              "split",
              "agreement"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "factual",
              "interpretive",
              "scope",
              "ambiguity",
              "temporal",
              "hallucination",
              null
            ]
          },
          "tie": {
            "type": "boolean"
          },
          "engines": {
            "type": "array",
            "minItems": 1,
            "maxItems": 6,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "engineId",
                "number",
                "position"
              ],
              "properties": {
                "engineId": {
                  "type": "string",
                  "enum": [
                    "speed",
                    "depth",
                    "breadth",
                    "logic",
                    "context",
                    "agentic"
                  ]
                },
                "number": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 6
                },
                "position": {
                  "type": "string",
                  "enum": [
                    "agrees",
                    "disagrees",
                    "not-measured"
                  ]
                }
              }
            }
          },
          "checks": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "evidence",
              "logic",
              "assumptions"
            ],
            "properties": {
              "evidence": {
                "const": "untested"
              },
              "logic": {
                "const": "untested"
              },
              "assumptions": {
                "const": "untested"
              }
            }
          },
          "sources": {
            "type": "array",
            "maxItems": 0,
            "description": "No sealed claim-source binding exists in legacy proofs. Answer-level URLs are not attached to a claim by inference."
          }
        }
      }
    },
    "limitation": {
      "const": "Agreement is not proof. Open the sources."
    }
  }
}