{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "AI evidence review output (advisory)",
  "type": "object",
  "additionalProperties": false,
  "required": ["case_id", "evidence_id", "source_evidence_ids", "evidence_type", "extracted_fields", "suggested_label", "rationale", "summary", "needs_review", "priority", "confidence", "confidence_note", "advisory", "model", "prompt_version"],
  "properties": {
    "case_id": {"type": "string", "pattern": "^[A-Z]{3}-\\d{3}$"},
    "evidence_id": {"type": "string", "minLength": 1},
    "source_evidence_ids": {"type": "array", "minItems": 1, "items": {"type": "string"}},
    "evidence_type": {"enum": ["access_review", "change_record", "change_export", "identity_extract", "backup_log", "alert_review_log", "access_ticket", "hr_record", "other"]},
    "extracted_fields": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["field", "value", "excerpt"],
        "properties": {"field": {"type": "string"}, "value": {"type": ["string", "number", "boolean", "null"]}, "excerpt": {"type": "string", "maxLength": 160}}}},
    "suggested_label": {"enum": ["Exception", "No exception", "Needs review", "Not relevant"]},
    "rationale": {"type": "string", "minLength": 1, "maxLength": 500},
    "summary": {"type": "string", "maxLength": 300},
    "needs_review": {"type": "boolean"},
    "priority": {"enum": ["High", "Medium", "Low"]},
    "confidence": {"type": "number", "minimum": 0, "maximum": 1},
    "confidence_note": {"const": "Uncalibrated heuristic score, not a probability"},
    "advisory": {"const": true},
    "model": {"type": "object", "additionalProperties": false, "required": ["name", "mode", "version"], "properties": {"name": {"type": "string"}, "mode": {"enum": ["mock", "fixture", "live"]}, "version": {"type": "string"}}},
    "prompt_version": {"type": "string"}
  }
}
