{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "version": {
      "const": "1"
    },
    "code": {
      "type": "string",
      "enum": [
        "authentication_required",
        "insufficient_scope",
        "not_found",
        "validation_failed",
        "capability_unsupported",
        "contract_version_unsupported",
        "precondition_required",
        "precondition_failed",
        "version_conflict",
        "idempotency_key_required",
        "idempotency_key_reused",
        "source_access_revoked",
        "source_unavailable",
        "unsupported_provider_write",
        "source_conflict",
        "upload_expired",
        "checksum_mismatch",
        "schema_incompatible",
        "limit_reached",
        "rate_limited",
        "event_cursor_resync_required",
        "bridge_disconnected",
        "verification_unavailable",
        "internal_error"
      ]
    },
    "message": {
      "type": "string",
      "maxLength": 4096
    },
    "correlationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,128}$"
    },
    "details": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "field": {
            "type": "string",
            "maxLength": 1024
          },
          "issue": {
            "type": "string",
            "maxLength": 1024
          }
        },
        "required": [
          "field",
          "issue"
        ]
      },
      "maxItems": 100,
      "minItems": 0
    },
    "retryable": {
      "type": "boolean"
    }
  },
  "required": [
    "version",
    "code",
    "message",
    "correlationId"
  ]
}