{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://wulfkaal.github.io/agentic-claim-graph/v1/schema/procedural-claim-v1.schema.json",
  "title": "Kaal Corpus Colloquium Procedural Claim v1",
  "type": "object",
  "required": ["id", "type", "claim_class", "text", "authored_by", "attribution_status", "original_claim_id", "report", "outcome", "evidence", "vote_receipts", "reviewer_independence", "validation_strength", "protocol", "settled_at", "settlement_receipt", "settlement_body_sha256", "lifecycle_status", "recursive_generation_allowed", "creates_substantive_claim", "derived_candidate_status"],
  "properties": {
    "id": { "type": "string", "pattern": "^kaal:procedural-claim:[a-f0-9]{32}$" },
    "type": { "const": "ProceduralClaim" },
    "claim_class": { "const": "colloquium_validation_pool_settlement" },
    "text": { "type": "string", "minLength": 20 },
    "authored_by": { "const": "Colloquium validation process" },
    "attribution_status": { "const": "procedural_not_wulf_authored" },
    "original_claim_id": { "type": "string", "pattern": "^kaal:claim:" },
    "report": { "type": "object", "required": ["id", "sha256"], "properties": { "id": { "type": "string" }, "sha256": { "$ref": "#/$defs/digest" } }, "additionalProperties": false },
    "outcome": { "enum": ["supports", "qualifies", "contests", "rejects", "indeterminate"] },
    "evidence": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/reference" } },
    "vote_receipts": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/reference" } },
    "reviewer_independence": { "type": "object", "required": ["counted_reviewers", "independently_verified", "operator_or_synthetic_count", "reviewer_subject_digests"], "properties": { "counted_reviewers": { "type": "integer", "minimum": 1 }, "independently_verified": { "type": "integer", "minimum": 1 }, "operator_or_synthetic_count": { "const": 0 }, "reviewer_subject_digests": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/digest" } } }, "additionalProperties": false },
    "validation_strength": { "type": "object", "required": ["quorum_required", "eligible_revealed_voters", "supporting_votes", "opposing_votes", "abstentions", "dissent_present", "evidence_items", "model_families", "open_challenges"], "properties": { "quorum_required": { "type": "integer", "minimum": 1 }, "eligible_revealed_voters": { "type": "integer", "minimum": 1 }, "supporting_votes": { "type": "integer", "minimum": 0 }, "opposing_votes": { "type": "integer", "minimum": 0 }, "abstentions": { "type": "integer", "minimum": 0 }, "dissent_present": { "type": "boolean" }, "evidence_items": { "type": "integer", "minimum": 1 }, "model_families": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "open_challenges": { "type": "integer", "minimum": 0 } }, "additionalProperties": false },
    "protocol": { "type": "object", "required": ["name", "version"], "properties": { "name": { "type": "string" }, "version": { "type": "string" } }, "additionalProperties": false },
    "settled_at": { "type": "string", "format": "date-time" },
    "settlement_receipt": { "type": "object" },
    "settlement_body_sha256": { "$ref": "#/$defs/digest" },
    "lifecycle_status": { "enum": ["current", "challenged", "superseded", "revoked"] },
    "supersedes": { "type": ["string", "null"] },
    "challenge_window": { "type": ["object", "null"] },
    "recursive_generation_allowed": { "const": false },
    "creates_substantive_claim": { "const": false },
    "derived_candidate_status": { "const": "requires_wulf_affirmation" }
  },
  "$defs": {
    "digest": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
    "reference": { "type": "object", "required": ["sha256"], "properties": { "id": { "type": "string" }, "sha256": { "$ref": "#/$defs/digest" } }, "additionalProperties": true }
  },
  "additionalProperties": false
}
