# Event and Alarm Codes v1 Status: draft canonical table for implementation. ## Hard-stop faults — reset required - `ESTOP_ACTIVATED` - `FORCE_OVER_LIMIT` - `ENCODER_LOST` - `DRIVE_FAULT` - `FT_SENSOR_INVALID` ## Recoverable pauses / warnings - `FORCE_UNDER_LIMIT` - `SPINDLE_RPM_DEVIATION` - `TABLE_RPM_DEVIATION` - `HOST_COMMS_TIMEOUT` - `ARM_GEOMETRY_DIVERGENCE` ## Refused transitions / blocked starts - `GEOMETRY_NOT_VALIDATED` - `ARM_HANDLING_INTERLOCK` - `WRONG_ARTIFACT_TYPE` - `SCHEMA_VALIDATION_FAILED` - `WRONG_MACHINE_ID` - `CONTROLLER_VERSION_MISMATCH` - `UNSUPPORTED_CAPABILITY` - `ILLEGAL_TRANSITION` ## Event fields Every event should include: ```json { "timestamp": "ISO-8601 or host monotonic mapping", "code": "GEOMETRY_NOT_VALIDATED", "severity": "info|warning|critical", "state": "IDLE|MANUAL|...", "detail": "short machine-readable or operator-readable detail" } ``` Do not use free text as the only control signal. Human messages are for UI; codes are for software.