{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agentdirective.org/schemas/control-event-v1.schema.json",
  "title": "AgentDirective Control Event v1",
  "description": "Append-only lifecycle event for a directive requirement.",
  "type": "object",
  "additionalProperties": false,
  "required": ["$schema", "event_version", "event_id", "event_type", "directive_id", "recorded_at", "basis"],
  "properties": {
    "$schema": { "type": "string", "format": "uri-reference" },
    "event_version": { "$ref": "#/$defs/semver" },
    "event_id": { "type": "string", "pattern": "^EVT-[A-Z0-9]{8,32}$" },
    "event_type": { "enum": ["directive_initialized", "implementation_started", "implemented", "partial", "unresolved", "not_applicable", "rejected_by_user", "requirement_weakened", "requirement_removed", "requirement_modified", "reassessed"] },
    "directive_id": { "type": "string", "pattern": "^AD-[A-Z0-9]{6,32}$" },
    "requirement_id": { "type": "string", "pattern": "^[A-Z]{2,10}-[0-9]{3,6}-R[0-9]{1,4}$" },
    "recorded_at": { "type": "string", "format": "date-time" },
    "basis": { "enum": ["compiler_generated", "agent_reported", "user_confirmed", "reassessment"] },
    "summary": { "type": "string", "minLength": 1, "maxLength": 2000 },
    "previous_status": { "$ref": "#/$defs/status" },
    "new_status": { "$ref": "#/$defs/status" },
    "evidence": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 500 } }
  },
  "$defs": {
    "semver": { "type": "string", "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$" },
    "status": { "enum": ["implemented", "partial", "unresolved", "not_applicable", "rejected_by_user"] }
  }
}
