{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://autoqa.example/schemas/common.schema.json",
  "title": "AutoQA Common Definitions",
  "type": "object",
  "$defs": {
    "Identifier": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,127}$"
    },
    "SemVer": {
      "type": "string",
      "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
    },
    "ContentHash": {
      "type": "string",
      "pattern": "^sha256:[a-f0-9]{64}$"
    },
    "DateTime": {
      "type": "string",
      "format": "date-time"
    },
    "ConfidenceBand": {
      "type": "string",
      "enum": [
        "high",
        "medium",
        "low",
        "uncalibrated"
      ]
    },
    "Severity": {
      "type": "string",
      "enum": [
        "none",
        "advisory",
        "minor",
        "major",
        "critical"
      ]
    },
    "OperationalAction": {
      "type": "string",
      "enum": [
        "accept",
        "accept_with_notes",
        "rework",
        "reject",
        "escalate"
      ]
    },
    "CriterionVerdict": {
      "type": "string",
      "enum": [
        "met",
        "partially_met",
        "not_met",
        "ambiguous",
        "unknown",
        "not_applicable"
      ]
    },
    "ContractRef": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "contractId",
        "contractVersion",
        "contentHash"
      ],
      "properties": {
        "contractId": {
          "$ref": "#/$defs/Identifier"
        },
        "contractVersion": {
          "$ref": "#/$defs/SemVer"
        },
        "contentHash": {
          "$ref": "#/$defs/ContentHash"
        }
      }
    },
    "CaseRef": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "caseId"
      ],
      "properties": {
        "caseId": {
          "$ref": "#/$defs/Identifier"
        },
        "contentHash": {
          "$ref": "#/$defs/ContentHash"
        }
      }
    },
    "SpanRef": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "artifactType",
        "artifactId",
        "quotedText"
      ],
      "properties": {
        "artifactType": {
          "type": "string",
          "enum": [
            "task",
            "evidence",
            "attempt",
            "human_review",
            "reference",
            "tool_trace"
          ]
        },
        "artifactId": {
          "$ref": "#/$defs/Identifier"
        },
        "startChar": {
          "type": "integer",
          "minimum": 0
        },
        "endChar": {
          "type": "integer",
          "minimum": 0
        },
        "quotedText": {
          "type": "string",
          "minLength": 1
        },
        "locator": {
          "type": "string"
        }
      },
      "allOf": [
        {
          "if": {
            "required": [
              "startChar"
            ]
          },
          "then": {
            "required": [
              "endChar"
            ]
          }
        },
        {
          "if": {
            "required": [
              "endChar"
            ]
          },
          "then": {
            "required": [
              "startChar"
            ]
          }
        }
      ]
    },
    "Confidence": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "band"
      ],
      "properties": {
        "rawScore": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "calibratedScore": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "band": {
          "$ref": "#/$defs/ConfidenceBand"
        },
        "calibrationProfileId": {
          "$ref": "#/$defs/Identifier"
        },
        "rationale": {
          "type": "string"
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "band": {
                "const": "uncalibrated"
              }
            },
            "required": [
              "band"
            ]
          },
          "then": {
            "not": {
              "anyOf": [
                {
                  "required": [
                    "calibratedScore"
                  ]
                },
                {
                  "required": [
                    "calibrationProfileId"
                  ]
                }
              ]
            }
          }
        },
        {
          "if": {
            "properties": {
              "band": {
                "enum": [
                  "high",
                  "medium",
                  "low"
                ]
              }
            },
            "required": [
              "band"
            ]
          },
          "then": {
            "required": [
              "calibratedScore",
              "calibrationProfileId"
            ]
          }
        }
      ]
    },
    "GenerationSource": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "componentId"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "deterministic_validator",
            "llm_judge",
            "human",
            "hybrid"
          ]
        },
        "componentId": {
          "$ref": "#/$defs/Identifier"
        },
        "modelRunId": {
          "$ref": "#/$defs/Identifier"
        },
        "humanActorId": {
          "$ref": "#/$defs/Identifier"
        }
      }
    },
    "Condition": {
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind"
          ],
          "properties": {
            "kind": {
              "const": "always"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "fieldPath",
            "operator"
          ],
          "properties": {
            "kind": {
              "const": "predicate"
            },
            "fieldPath": {
              "type": "string",
              "minLength": 1
            },
            "operator": {
              "type": "string",
              "enum": [
                "equals",
                "not_equals",
                "in",
                "not_in",
                "contains",
                "exists",
                "greater_than",
                "greater_than_or_equal",
                "less_than",
                "less_than_or_equal",
                "matches_regex"
              ]
            },
            "value": {}
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "conditions"
          ],
          "properties": {
            "kind": {
              "const": "all"
            },
            "conditions": {
              "type": "array",
              "minItems": 1,
              "items": {
                "$ref": "#/$defs/Condition"
              }
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "conditions"
          ],
          "properties": {
            "kind": {
              "const": "any"
            },
            "conditions": {
              "type": "array",
              "minItems": 1,
              "items": {
                "$ref": "#/$defs/Condition"
              }
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "condition"
          ],
          "properties": {
            "kind": {
              "const": "not"
            },
            "condition": {
              "$ref": "#/$defs/Condition"
            }
          }
        }
      ]
    },
    "Finding": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "findingId",
        "findingType",
        "summary",
        "materiality",
        "severity",
        "confidence",
        "status",
        "source"
      ],
      "properties": {
        "findingId": {
          "$ref": "#/$defs/Identifier"
        },
        "findingType": {
          "type": "string",
          "enum": [
            "positive",
            "negative",
            "omission",
            "ambiguity",
            "counterevidence",
            "integrity"
          ]
        },
        "criterionId": {
          "$ref": "#/$defs/Identifier"
        },
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "detail": {
          "type": "string"
        },
        "claimIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "expectedElementIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "targetSpans": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SpanRef"
          }
        },
        "evidenceIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "relationship": {
          "type": "string",
          "enum": [
            "directly_entails",
            "reasonably_supports",
            "weakly_supports",
            "contradicts",
            "irrelevant",
            "insufficient",
            "not_applicable"
          ]
        },
        "materiality": {
          "type": "string",
          "enum": [
            "incidental",
            "supporting",
            "central",
            "decisive"
          ]
        },
        "severity": {
          "$ref": "#/$defs/Severity"
        },
        "confidence": {
          "$ref": "#/$defs/Confidence"
        },
        "status": {
          "type": "string",
          "enum": [
            "observed",
            "challenged",
            "confirmed",
            "retracted"
          ]
        },
        "source": {
          "$ref": "#/$defs/GenerationSource"
        }
      }
    },
    "Claim": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "claimId",
        "proposition",
        "claimType",
        "importance",
        "explicitness",
        "attemptSpans"
      ],
      "properties": {
        "claimId": {
          "$ref": "#/$defs/Identifier"
        },
        "proposition": {
          "type": "string",
          "minLength": 1
        },
        "claimType": {
          "type": "string",
          "enum": [
            "factual",
            "interpretive",
            "predictive",
            "normative",
            "preference",
            "procedural"
          ]
        },
        "importance": {
          "type": "string",
          "enum": [
            "incidental",
            "supporting",
            "central"
          ]
        },
        "explicitness": {
          "type": "string",
          "enum": [
            "explicit",
            "implied"
          ]
        },
        "attemptSpans": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/SpanRef"
          }
        },
        "qualifiers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "citedEvidenceIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        }
      }
    },
    "ExpectedElement": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "elementId",
        "criterionId",
        "description",
        "required",
        "importance",
        "coverage"
      ],
      "properties": {
        "elementId": {
          "$ref": "#/$defs/Identifier"
        },
        "criterionId": {
          "$ref": "#/$defs/Identifier"
        },
        "description": {
          "type": "string",
          "minLength": 1
        },
        "required": {
          "type": "boolean"
        },
        "importance": {
          "type": "string",
          "enum": [
            "supporting",
            "central",
            "decisive"
          ]
        },
        "acceptableAlternatives": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "observedSpans": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SpanRef"
          }
        },
        "coverage": {
          "type": "string",
          "enum": [
            "complete",
            "partial",
            "missing",
            "not_applicable",
            "unknown"
          ]
        }
      }
    },
    "EvidenceRelationship": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "relationshipId",
        "subjectType",
        "subjectId",
        "evidenceId",
        "relationship",
        "sourceQuality",
        "temporalValidity",
        "confidence"
      ],
      "properties": {
        "relationshipId": {
          "$ref": "#/$defs/Identifier"
        },
        "subjectType": {
          "type": "string",
          "enum": [
            "claim",
            "expected_element",
            "finding"
          ]
        },
        "subjectId": {
          "$ref": "#/$defs/Identifier"
        },
        "evidenceId": {
          "$ref": "#/$defs/Identifier"
        },
        "relationship": {
          "type": "string",
          "enum": [
            "directly_entails",
            "reasonably_supports",
            "weakly_supports",
            "contradicts",
            "irrelevant",
            "insufficient"
          ]
        },
        "sourceQuality": {
          "type": "string",
          "enum": [
            "high",
            "acceptable",
            "weak",
            "disallowed",
            "unknown"
          ]
        },
        "temporalValidity": {
          "type": "string",
          "enum": [
            "valid",
            "stale",
            "not_time_sensitive",
            "unknown"
          ]
        },
        "evidenceSpans": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SpanRef"
          }
        },
        "confidence": {
          "$ref": "#/$defs/Confidence"
        },
        "notes": {
          "type": "string"
        }
      }
    },
    "CriterionAssessment": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "criterionId",
        "applicability",
        "positiveFindingIds",
        "negativeFindingIds",
        "omissionFindingIds",
        "counterEvidenceFindingIds",
        "unresolvedFindingIds",
        "groundingStatus",
        "truthStatus",
        "warrantStatus",
        "relevanceStatus",
        "verdict",
        "severity",
        "confidence",
        "decisionEffect",
        "rationale"
      ],
      "properties": {
        "criterionId": {
          "$ref": "#/$defs/Identifier"
        },
        "applicability": {
          "type": "string",
          "enum": [
            "applies",
            "does_not_apply",
            "uncertain"
          ]
        },
        "positiveFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "negativeFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "omissionFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "counterEvidenceFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "unresolvedFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "groundingStatus": {
          "type": "string",
          "enum": [
            "grounded",
            "partially_grounded",
            "ungrounded",
            "not_applicable",
            "unknown"
          ]
        },
        "truthStatus": {
          "type": "string",
          "enum": [
            "verified_true",
            "verified_false",
            "mixed",
            "not_evaluated",
            "not_applicable",
            "unknown"
          ]
        },
        "warrantStatus": {
          "type": "string",
          "enum": [
            "justified",
            "overstated",
            "invalid",
            "not_applicable",
            "unknown"
          ]
        },
        "relevanceStatus": {
          "type": "string",
          "enum": [
            "relevant",
            "partially_relevant",
            "irrelevant",
            "not_applicable",
            "unknown"
          ]
        },
        "verdict": {
          "$ref": "#/$defs/CriterionVerdict"
        },
        "severity": {
          "$ref": "#/$defs/Severity"
        },
        "confidence": {
          "$ref": "#/$defs/Confidence"
        },
        "decisionEffect": {
          "type": "string",
          "enum": [
            "none",
            "accept_with_note",
            "rework",
            "reject",
            "escalate"
          ]
        },
        "rationale": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "GlobalAssessment": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "axisId",
        "verdict",
        "findingIds",
        "confidence",
        "rationale"
      ],
      "properties": {
        "axisId": {
          "$ref": "#/$defs/Identifier"
        },
        "verdict": {
          "$ref": "#/$defs/CriterionVerdict"
        },
        "findingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "score": {
          "type": "number"
        },
        "confidence": {
          "$ref": "#/$defs/Confidence"
        },
        "rationale": {
          "type": "string"
        }
      }
    },
    "PolicyTraceEntry": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "ruleId",
        "matched",
        "result"
      ],
      "properties": {
        "ruleId": {
          "$ref": "#/$defs/Identifier"
        },
        "matched": {
          "type": "boolean"
        },
        "inputs": {
          "type": "object",
          "additionalProperties": true
        },
        "result": {
          "type": "string"
        }
      }
    },
    "Decision": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "target",
        "action",
        "policyVersion",
        "triggeredRuleIds",
        "decisiveCriterionIds",
        "unresolvedFindingIds",
        "confidence",
        "policyTrace",
        "rationale",
        "decidedAt"
      ],
      "properties": {
        "action": {
          "$ref": "#/$defs/OperationalAction"
        },
        "policyVersion": {
          "$ref": "#/$defs/SemVer"
        },
        "triggeredRuleIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "decisiveCriterionIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "unresolvedFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "confidence": {
          "$ref": "#/$defs/Confidence"
        },
        "policyTrace": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PolicyTraceEntry"
          }
        },
        "rationale": {
          "type": "string",
          "minLength": 1
        },
        "decidedAt": {
          "$ref": "#/$defs/DateTime"
        },
        "target": {
          "$ref": "#/$defs/DecisionTarget"
        }
      }
    },
    "ResolutionOption": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "optionId",
        "label"
      ],
      "properties": {
        "optionId": {
          "$ref": "#/$defs/Identifier"
        },
        "label": {
          "type": "string",
          "minLength": 1
        },
        "description": {
          "type": "string"
        },
        "effectSummary": {
          "type": "string"
        }
      }
    },
    "HumanResolutionRequest": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "requestId",
        "triggerCriterionIds",
        "questionType",
        "question",
        "contextFindingIds",
        "options",
        "decisionChanging",
        "hideProvisionalDecision",
        "status",
        "createdAt"
      ],
      "properties": {
        "requestId": {
          "$ref": "#/$defs/Identifier"
        },
        "triggerCriterionIds": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "questionType": {
          "type": "string",
          "enum": [
            "applicability",
            "instruction_precedence",
            "evidence_authority",
            "inference_permission",
            "severity",
            "valid_alternative",
            "rubric_ambiguity",
            "domain_expertise"
          ]
        },
        "question": {
          "type": "string",
          "minLength": 1
        },
        "contextFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "options": {
          "type": "array",
          "minItems": 2,
          "items": {
            "$ref": "#/$defs/ResolutionOption"
          }
        },
        "decisionChanging": {
          "type": "boolean"
        },
        "hideProvisionalDecision": {
          "type": "boolean"
        },
        "requiredExpertiseTags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "answered",
            "cancelled"
          ]
        },
        "createdAt": {
          "$ref": "#/$defs/DateTime"
        }
      }
    },
    "HumanResolutionResponse": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "requestId",
        "selectedOptionId",
        "responderId",
        "respondedAt"
      ],
      "properties": {
        "requestId": {
          "$ref": "#/$defs/Identifier"
        },
        "selectedOptionId": {
          "$ref": "#/$defs/Identifier"
        },
        "responderId": {
          "$ref": "#/$defs/Identifier"
        },
        "rationale": {
          "type": "string"
        },
        "respondedAt": {
          "$ref": "#/$defs/DateTime"
        }
      }
    },
    "HumanResolutionInteraction": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "request",
        "decisionTarget"
      ],
      "properties": {
        "request": {
          "$ref": "#/$defs/HumanResolutionRequest"
        },
        "response": {
          "$ref": "#/$defs/HumanResolutionResponse"
        },
        "decisionBefore": {
          "$ref": "#/$defs/OperationalAction"
        },
        "decisionAfter": {
          "$ref": "#/$defs/OperationalAction"
        },
        "changedDecision": {
          "type": "boolean"
        },
        "decisionTarget": {
          "$ref": "#/$defs/DecisionTarget"
        }
      }
    },
    "FeedbackItem": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "feedbackId",
        "audience",
        "feedbackType",
        "findingIds",
        "message",
        "priority",
        "repairValidationStatus"
      ],
      "properties": {
        "feedbackId": {
          "$ref": "#/$defs/Identifier"
        },
        "audience": {
          "type": "string",
          "enum": [
            "attempter",
            "reviewer",
            "project_owner"
          ]
        },
        "criterionId": {
          "$ref": "#/$defs/Identifier"
        },
        "feedbackType": {
          "type": "string",
          "enum": [
            "strength",
            "defect",
            "omission",
            "ambiguity"
          ]
        },
        "findingIds": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "message": {
          "type": "string",
          "minLength": 1
        },
        "minimalRepair": {
          "type": "string"
        },
        "priority": {
          "type": "integer",
          "minimum": 1
        },
        "repairValidationStatus": {
          "type": "string",
          "enum": [
            "validated",
            "plausible_unvalidated",
            "not_applicable"
          ]
        }
      }
    },
    "AnnotationAssessment": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "annotationPresent",
        "labelSupport",
        "rationaleSupport",
        "criterionAttribution",
        "evidenceAlignment",
        "severityAlignment",
        "omittedPositiveFindingIds",
        "omittedNegativeFindingIds",
        "unsupportedReviewerFindingIds",
        "disagreementTypes",
        "confidence",
        "rationale"
      ],
      "properties": {
        "annotationPresent": {
          "type": "boolean"
        },
        "labelSupport": {
          "type": "string",
          "enum": [
            "supported",
            "partially_supported",
            "unsupported",
            "reasonable_disagreement",
            "rubric_ambiguous",
            "not_applicable"
          ]
        },
        "rationaleSupport": {
          "type": "string",
          "enum": [
            "supported",
            "contains_unsupported_reasoning",
            "does_not_support_label",
            "missing",
            "not_applicable"
          ]
        },
        "criterionAttribution": {
          "type": "string",
          "enum": [
            "correct",
            "partially_correct",
            "wrong_criterion",
            "unstated_preference",
            "not_applicable"
          ]
        },
        "evidenceAlignment": {
          "type": "string",
          "enum": [
            "aligned",
            "partially_aligned",
            "misquoted",
            "irrelevant",
            "missing",
            "not_applicable"
          ]
        },
        "severityAlignment": {
          "type": "string",
          "enum": [
            "appropriate",
            "too_severe",
            "too_lenient",
            "uncertain",
            "not_applicable"
          ]
        },
        "omittedPositiveFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "omittedNegativeFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "unsupportedReviewerFindingIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "disagreementTypes": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "none",
              "observation",
              "evidence_authority",
              "applicability",
              "criterion_interpretation",
              "inference",
              "threshold",
              "severity",
              "attention",
              "expertise",
              "reasonable_disagreement",
              "rubric_defect"
            ]
          }
        },
        "confidence": {
          "$ref": "#/$defs/Confidence"
        },
        "rationale": {
          "type": "string"
        }
      }
    },
    "ModelRun": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "modelRunId",
        "role",
        "provider",
        "modelName",
        "promptTemplateId",
        "promptTemplateVersion",
        "promptTemplateHash",
        "startedAt",
        "completedAt"
      ],
      "properties": {
        "modelRunId": {
          "$ref": "#/$defs/Identifier"
        },
        "role": {
          "type": "string",
          "enum": [
            "claim_extractor",
            "evidence_retriever",
            "positive_prover",
            "negative_challenger",
            "coverage_auditor",
            "warrant_auditor",
            "criterion_adjudicator",
            "holistic_judge",
            "annotation_auditor",
            "feedback_generator",
            "repair_validator",
            "ensemble_aggregator"
          ]
        },
        "provider": {
          "type": "string",
          "minLength": 1
        },
        "modelName": {
          "type": "string",
          "minLength": 1
        },
        "modelVersion": {
          "type": "string"
        },
        "promptTemplateId": {
          "$ref": "#/$defs/Identifier"
        },
        "promptTemplateVersion": {
          "$ref": "#/$defs/SemVer"
        },
        "promptTemplateHash": {
          "$ref": "#/$defs/ContentHash"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": true
        },
        "parentRunIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/$defs/Identifier"
          }
        },
        "inputHash": {
          "$ref": "#/$defs/ContentHash"
        },
        "outputHash": {
          "$ref": "#/$defs/ContentHash"
        },
        "startedAt": {
          "$ref": "#/$defs/DateTime"
        },
        "completedAt": {
          "$ref": "#/$defs/DateTime"
        }
      }
    },
    "DecisionTarget": {
      "type": "string",
      "enum": [
        "attempt",
        "annotation",
        "composite_case",
        "batch"
      ]
    },
    "ValidatorRun": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "validatorRunId",
        "validatorId",
        "validatorVersion",
        "role",
        "status",
        "inputHash",
        "outputHash",
        "startedAt",
        "completedAt"
      ],
      "properties": {
        "validatorRunId": {
          "$ref": "#/$defs/Identifier"
        },
        "validatorId": {
          "$ref": "#/$defs/Identifier"
        },
        "validatorVersion": {
          "$ref": "#/$defs/SemVer"
        },
        "role": {
          "type": "string",
          "enum": [
            "schema_validation",
            "format_check",
            "citation_check",
            "calculation",
            "code_execution",
            "duplicate_detection",
            "integrity_check",
            "custom"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "passed",
            "failed",
            "warning",
            "error"
          ]
        },
        "parameters": {
          "type": "object",
          "additionalProperties": true
        },
        "inputHash": {
          "$ref": "#/$defs/ContentHash"
        },
        "outputHash": {
          "$ref": "#/$defs/ContentHash"
        },
        "startedAt": {
          "$ref": "#/$defs/DateTime"
        },
        "completedAt": {
          "$ref": "#/$defs/DateTime"
        }
      }
    }
  }
}
