{
  "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
  "version": 6,
  "name": "apx-alert-types",
  "creator": { "id": "a1000000-0000-4000-8000-000000000001", "className": "Organisation" },
  "locator": "https://apx-standard.org/registries/apx-alert-types.json",
  "userDefinedCodeListEntries": [
    { "definedValue": "noCheckOut", "entryDescription": "Vehicle/right shows no check-out for a completed stay (APDS Use Case C.2.2 transaction exception).", "entryIndex": 0 },
    { "definedValue": "wrongSpace", "entryDescription": "Vehicle occupies a different space than reserved/checked-in (C.2.2 transaction exception).", "entryIndex": 1 },
    { "definedValue": "occupiedWithoutCheckIn", "entryDescription": "Space occupied with no matching check-in/session (C.2.2 space status).", "entryIndex": 2 },
    { "definedValue": "iceInEvSpace", "entryDescription": "Non-EV vehicle occupying an EV charging space (C.2.2 transaction exception).", "entryIndex": 3 },
    { "definedValue": "overstay", "entryDescription": "Session exceeds its right's validity or maximum stay.", "entryIndex": 4 },
    { "definedValue": "deviceFault", "entryDescription": "A device reports a fault state.", "entryIndex": 5 },
    { "definedValue": "deviceOffline", "entryDescription": "A device stopped communicating (lastCommunication exceeded threshold).", "entryIndex": 6 },
    { "definedValue": "laneBlocked", "entryDescription": "A lane is blocked (vehicle stuck, barrier obstruction).", "entryIndex": 7 },
    { "definedValue": "occupancyThresholdExceeded", "entryDescription": "Occupancy demand crossed a configured threshold for a place element.", "entryIndex": 8 },
    { "definedValue": "paymentException", "entryDescription": "A payment failed, was reversed, or requires attention.", "entryIndex": 9 },
    { "definedValue": "intercomRequest", "entryDescription": "A customer requested assistance at a lane/device intercom.", "entryIndex": 10 },
    { "definedValue": "webhookDeliveryFailed", "entryDescription": "A subscription exhausted its delivery retry schedule and was marked failed (self-referential alert).", "entryIndex": 11 },
    { "definedValue": "wrongWayTravel", "entryDescription": "An operator-defined alert that a vehicle travelled against a lane's configured purpose (e.g. entered on an exit lane). APX does not raise it or define when it applies: LPR reads carry only the vehicle's accessEvent, and the lane used does not change it (Part 13 §13.3a(6)).", "entryIndex": 12 },
    { "definedValue": "evBayNotCharging", "entryDescription": "A vehicle has occupied an EV charging bay without connecting beyond the place's grace — the EV counterpart of iceInEvSpace, derived from the Part 23 §23.3 bay-presence fusion; the camera Observation is the evidence.", "entryIndex": 13 },
    { "definedValue": "evBayBlocked", "entryDescription": "An EV charging bay is obstructed by something other than a parked vehicle (cones, debris, a straddling vehicle), derived from the Part 23 §23.3 bay-presence fusion; the camera Observation is the evidence.", "entryIndex": 14 },
    { "definedValue": "watchListArrival", "entryDescription": "A credential on a watch plate list (Part 24) was read at a place where the list has alertOnArrival; relatedEntity is the PlateListEntry, the read is the evidence.", "entryIndex": 15 },
    { "definedValue": "scofflawArrival", "entryDescription": "A credential on a scofflaw plate list (Part 24) was read at a place where the list has alertOnArrival; relatedEntity is the PlateListEntry.", "entryIndex": 16 },
    { "definedValue": "refusedServiceArrival", "entryDescription": "A credential on a plate list with refuseService arrived at a lane and service was refused (the refused-service sign shown, the gate not vended); relatedEntity is the PlateListEntry, the displayMessage command's result.display is the proof of display.", "entryIndex": 17 },
    { "definedValue": "consumableLow", "entryDescription": "A device reports a supply at low or empty (tickets, receipt paper, cash, coins; DeviceStatus.consumables, Part 6 §6.4a); relatedEntity is the SupplementalEquipment.", "entryIndex": 18 },
    { "definedValue": "receiptRequested", "entryDescription": "A customer asked for a receipt that could not be sent during the interaction; relatedEntity is the PaymentRecord, supportInteraction the call.", "entryIndex": 19 },
    { "definedValue": "refundRequested", "entryDescription": "A customer asked for a refund that needs review or approval; relatedEntity is the PaymentRecord, supportInteraction the call.", "entryIndex": 20 },
    { "definedValue": "citationInquiry", "entryDescription": "A customer asked about a citation or notice the agent could not resolve; relatedEntity is the Violation when known.", "entryIndex": 21 },
    { "definedValue": "damageReported", "entryDescription": "A vehicle was reported damaged, broken into or towed at the place; relatedEntity is the Session when known, supportInteraction the call.", "entryIndex": 22 },
    { "definedValue": "customerCallbackRequested", "entryDescription": "A customer asked to be called back by the site or operator; supportInteraction is the call, which holds the contact details under its own scope.", "entryIndex": 23 }
  ]
}
