{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://autoqa.example/schemas/evaluation-output.schema.json",
  "title": "AutoQA Evaluation Output",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "documentType",
    "schemaVersion",
    "evaluationId",
    "evaluationVersion",
    "caseRef",
    "contractRef",
    "createdAt",
    "status",
    "runManifest",
    "validatorManifest",
    "findings",
    "claims",
    "expectedElements",
    "evidenceRelationships",
    "criterionAssessments",
    "globalAssessments",
    "provisionalDecisions",
    "finalDecisions",
    "feedback",
    "audit"
  ],
  "properties": {
    "documentType": {
      "const": "evaluation_output"
    },
    "schemaVersion": {
      "$ref": "common.schema.json#/$defs/SemVer"
    },
    "evaluationId": {
      "$ref": "common.schema.json#/$defs/Identifier"
    },
    "evaluationVersion": {
      "$ref": "common.schema.json#/$defs/SemVer"
    },
    "caseRef": {
      "$ref": "common.schema.json#/$defs/CaseRef"
    },
    "contractRef": {
      "$ref": "common.schema.json#/$defs/ContractRef"
    },
    "createdAt": {
      "$ref": "common.schema.json#/$defs/DateTime"
    },
    "status": {
      "type": "string",
      "enum": [
        "provisional",
        "awaiting_human",
        "final",
        "failed"
      ]
    },
    "runManifest": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/ModelRun"
      }
    },
    "integrityStatus": {
      "type": "string",
      "enum": [
        "clean",
        "warning",
        "failed",
        "unknown"
      ]
    },
    "findings": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/Finding"
      }
    },
    "claims": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/Claim"
      }
    },
    "expectedElements": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/ExpectedElement"
      }
    },
    "evidenceRelationships": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/EvidenceRelationship"
      }
    },
    "criterionAssessments": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/CriterionAssessment"
      }
    },
    "globalAssessments": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/GlobalAssessment"
      }
    },
    "annotationAssessment": {
      "$ref": "common.schema.json#/$defs/AnnotationAssessment"
    },
    "humanResolution": {
      "$ref": "common.schema.json#/$defs/HumanResolutionInteraction"
    },
    "feedback": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/FeedbackItem"
      }
    },
    "audit": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "caseInputHash",
        "contractHash",
        "sourceSnapshotHashes",
        "replayable",
        "warnings"
      ],
      "properties": {
        "caseInputHash": {
          "$ref": "common.schema.json#/$defs/ContentHash"
        },
        "contractHash": {
          "$ref": "common.schema.json#/$defs/ContentHash"
        },
        "sourceSnapshotHashes": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "common.schema.json#/$defs/ContentHash"
          }
        },
        "replayable": {
          "type": "boolean"
        },
        "warnings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "provisionalDecisions": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "common.schema.json#/$defs/Decision"
      }
    },
    "finalDecisions": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "common.schema.json#/$defs/Decision"
      }
    },
    "validatorManifest": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/ValidatorRun"
      }
    }
  }
}
