## OCPP-specific conventions
- **Command naming**: Follow OCPP standard naming exactly (e.g., RemoteStartTransaction, BootNotification, StatusNotification).
+- **Enumeration naming**: Use standard OCPP specifications enumeration names and values exactly (e.g., ConnectorStatusEnumType with values Available, Occupied). Avoid string literals when an enumeration exists.
- **Version handling**: Clearly distinguish between OCPP 1.6 and 2.0.x implementations in separate namespaces/files.
- **Payload validation**: Validate against OCPP JSON schemas when ocppStrictCompliance is enabled.
- **Message format**: Use standard SRPC format: [messageTypeId, messageId, action, payload] or [messageTypeId, messageId, payload].
- **UUID tracking**: Use UUIDs to correlate requests with responses; store pending operations in Maps with UUID keys.
-- **Response handling**: Wait for all expected responses before resolving broadcast requests.
+- **Response handling**: Ensure to wait for all expected responses before resolving broadcast requests.
## Quality gates