{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://venuemind.dev/schemas/venue-error.schema.json",
  "title": "VenueMind Error",
  "type": "object",
  "required": [
    "code",
    "message",
    "remediation",
    "details"
  ],
  "properties": {
    "code": {
      "enum": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "SNAPSHOT_INVALID",
        "PROJECT_SCHEMA_UNSUPPORTED",
        "ADJUSTMENT_REQUIRED",
        "PROPOSAL_NOT_REVIEWABLE",
        "PROPOSAL_MISMATCH",
        "PROPOSAL_EMPTY",
        "PLANNING_EFFECT_INVALID",
        "BRANCH_NAME_REQUIRED",
        "BRANCH_NOT_FOUND",
        "REBASE_CONFLICT",
        "CONFLICT_NOT_FOUND",
        "CONFLICT_RESOLUTION_INVALID",
        "CONFLICT_HUMAN_REQUIRED",
        "LOCK_CONFLICT",
        "LOCK_HUMAN_REQUIRED",
        "LOCK_OBJECT_NOT_FOUND",
        "LOCK_TYPE_INVALID",
        "LOCK_NOT_FOUND",
        "PLAN_VERSION_CONFLICT",
        "OPERATIONAL_RESOURCE_FRESHNESS_REQUIRED",
        "OPERATIONAL_RESOURCE_STALE",
        "VALIDATION_FAILED",
        "WARNING_WAIVER_REQUIRED",
        "EMERGENCY_REVIEW_REQUIRED",
        "EMERGENCY_REVIEW_UNAUTHORIZED",
        "WAIVER_HUMAN_REQUIRED",
        "WAIVER_AUTHOR_REQUIRED",
        "WAIVER_REASON_INVALID",
        "WARNING_NOT_WAIVABLE",
        "WARNING_ALREADY_WAIVED",
        "CONSTRAINT_NOT_FOUND",
        "CONSTRAINT_INVALID",
        "CONSTRAINT_DUPLICATE",
        "CONSTRAINT_EVIDENCE_INVALID",
        "CONSTRAINT_EVALUATOR_UNSUPPORTED",
        "GEOMETRY_INVALID",
        "SPATIAL_CHANGE_TARGET_MISSING",
        "SPATIAL_CHANGE_TARGET_EXISTS",
        "SPATIAL_CHANGE_UNSUPPORTED",
        "TEMPLATE_VERSION_NOT_FOUND",
        "TEMPLATE_SCHEMA_UNSUPPORTED",
        "TEMPLATE_BINDING_NOT_FOUND",
        "TEMPLATE_VERSION_CURRENT",
        "COMMENT_INVALID",
        "COMMENT_ANCHOR_INVALID",
        "COMMENT_AUTHOR_REQUIRED",
        "COMMENT_NOT_FOUND",
        "PROJECT_NOT_FOUND",
        "PROJECT_TOOL_UNAVAILABLE",
        "OBJECT_NOT_FOUND",
        "VALIDATION_NOT_FOUND",
        "SCENARIO_RUN_NOT_FOUND",
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "RESOURCE_LIMIT_EXCEEDED",
        "TOOL_CALL_CANCELLED",
        "LEDGER_INTEGRITY_FAILED",
        "RUNBOOK_SCHEDULE_REQUIRED",
        "RUNBOOK_DEFINITION_INVALID",
        "RUNBOOK_TASK_NOT_FOUND",
        "RUNBOOK_TASK_REVISION_CONFLICT",
        "RUNBOOK_TRANSITION_INVALID",
        "RUNBOOK_DEPENDENCIES_INCOMPLETE",
        "RUNBOOK_EVIDENCE_REQUIRED",
        "OCCUPANCY_BASELINE_INVALID",
        "OCCUPANCY_SIGNAL_INVALID",
        "OCCUPANCY_PRIVACY_REJECTED",
        "OCCUPANCY_SIGNAL_OUT_OF_ORDER",
        "OCCUPANCY_REVISION_CONFLICT",
        "OCCUPANCY_ALERT_NOT_FOUND",
        "OCCUPANCY_ACKNOWLEDGEMENT_INVALID",
        "OCCUPANCY_LEDGER_INTEGRITY_FAILED",
        "OCCUPANCY_MONITOR_NOT_FOUND",
        "OCCUPANCY_TOOL_UNAVAILABLE",
        "INCIDENT_BASELINE_INVALID",
        "INCIDENT_REGISTER_NOT_FOUND",
        "INCIDENT_NOT_FOUND",
        "INCIDENT_ID_CONFLICT",
        "INCIDENT_INVALID",
        "INCIDENT_PRIVACY_REJECTED",
        "INCIDENT_LOCATION_INVALID",
        "INCIDENT_REVISION_CONFLICT",
        "INCIDENT_TRANSITION_INVALID",
        "INCIDENT_OWNER_INVALID",
        "INCIDENT_ACKNOWLEDGEMENT_INVALID",
        "INCIDENT_ESCALATION_INVALID",
        "INCIDENT_HANDOFF_INVALID",
        "INCIDENT_EMERGENCY_ACTION_INVALID",
        "INCIDENT_HUMAN_REQUIRED",
        "INCIDENT_LEDGER_INTEGRITY_FAILED",
        "INCIDENT_TOOL_UNAVAILABLE",
        "DEVIATION_BASELINE_INVALID",
        "DEVIATION_REGISTER_NOT_FOUND",
        "DEVIATION_TOOL_UNAVAILABLE",
        "DEVIATION_NOT_FOUND",
        "DEVIATION_ID_CONFLICT",
        "DEVIATION_INVALID",
        "DEVIATION_LOCATION_INVALID",
        "DEVIATION_REVISION_CONFLICT",
        "DEVIATION_REGISTER_REVISION_CONFLICT",
        "DEVIATION_TRANSITION_INVALID",
        "DEVIATION_CONSTRAINT_UNAVAILABLE",
        "DEVIATION_POST_EVENT_PROPOSAL_EMPTY",
        "DEVIATION_LEDGER_INTEGRITY_FAILED",
        "POST_EVENT_BASELINE_INVALID",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_HUMAN_REQUIRED",
        "POST_EVENT_REVIEW_TRANSITION_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED",
        "VENUE_INTERNAL_ERROR"
      ]
    },
    "message": {
      "type": "string",
      "minLength": 1
    },
    "remediation": {
      "type": "string",
      "minLength": 1
    },
    "details": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}
