{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://dicworkflowkit.local/schemas/final-result.schema.json",
  "title": "DIC Final Result",
  "type": "object",
  "required": ["schema", "status", "final", "summary", "artifacts"],
  "properties": {
    "schema": { "const": "dic.final-result.v1" },
    "status": {
      "enum": ["PASS", "PARTIAL", "BLOCKED", "FAIL"],
      "description": "Backward-compatible DIC consistency status. Prefer consistencyStatus for new output."
    },
    "consistencyStatus": {
      "enum": ["PASS", "PARTIAL", "BLOCKED", "FAIL"],
      "description": "Design-implementation consistency outcome. When present, it must not be treated as repository admission."
    },
    "qualityStatus": {
      "enum": ["PASS", "PASS WITH FOLLOW-UP", "BLOCKED", "NOT_EVALUATED"],
      "description": "Current aggregate decision across all applicable specialist quality gates."
    },
    "admissionStatus": {
      "enum": ["ADMIT", "ADMIT WITH FOLLOW-UP", "REJECT", "NOT_EVALUATED"],
      "description": "Pre-commit repository admission outcome for the frozen candidate."
    },
    "final": { "type": "boolean" },
    "summary": { "type": "string" },
    "artifacts": { "type": "array", "items": { "type": "string" } },
    "validation": { "type": "array", "items": { "type": "object" } },
    "changedFiles": { "type": "array", "items": { "type": "string" } },
    "residualRisks": { "type": "array", "items": { "type": "string" } },
    "ontologyAttestation": {
      "type": ["string", "null"],
      "description": "Path to the content-addressed ontology attestation when one was produced."
    },
    "ontologyInvariants": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "status", "severity", "message", "objectIds"],
        "properties": {
          "id": { "type": "string" },
          "status": { "enum": ["PASS", "FAIL", "NOT_APPLICABLE"] },
          "severity": { "enum": ["info", "warning", "blocking"] },
          "message": { "type": "string" },
          "objectIds": { "type": "array", "items": { "type": "string" } }
        }
      }
    }
  },
  "additionalProperties": true
}
