Describe the issue with the specification
This might be a minor issue, but I found some Inconsistencies between micromobility state machine diagram (v2.0.2) and list of transitions found here.
The following transitions are missing from the diagram but are present in the table:
- from state
non_contactable to state available with event type agency_drop_off.
- from state
non_contactable to state available with event type provider_drop_off .
Expected behaviour
I would expect the diagram to reflect all the transitions listed in the table. Additionally, it’s unclear which should be considered the authoritative source. In this case, which should be followed? I’m currently assuming the table to be the source of truth, but maybe a sentence stating this would be useful.
Additional context
In my opinion, the current layout of the table contributes to confusion. I suggest breaking it into multiple tables, one for each state, to improve clarity:
Example of split MDS V2 State Machine Transitions Tables
From vehicle_state |
To vehicle_state |
With event_type |
available |
non_contactable |
comms_lost |
available |
non_contactable |
unspecified |
available |
non_operational |
battery_low |
available |
non_operational |
maintenance |
available |
non_operational |
off_hours |
available |
non_operational |
system_suspend |
available |
non_operational |
unspecified |
available |
on_trip |
trip_start |
available |
removed |
agency_pick_up |
available |
removed |
compliance_pick_up |
available |
removed |
decommissioned |
available |
removed |
maintenance_pick_up |
available |
removed |
rebalance_pick_up |
available |
removed |
unspecified |
available |
reserved |
reservation_start |
From vehicle_state |
To vehicle_state |
With event_type |
elsewhere |
non_contactable |
comms_lost |
elsewhere |
non_contactable |
unspecified |
elsewhere |
on_trip |
trip_enter_jurisdiction |
elsewhere |
removed |
agency_pick_up |
elsewhere |
removed |
compliance_pick_up |
elsewhere |
removed |
decommissioned |
elsewhere |
removed |
maintenance_pick_up |
elsewhere |
removed |
rebalance_pick_up |
elsewhere |
removed |
unspecified |
From vehicle_state |
To vehicle_state |
With event_type |
missing |
available |
agency_drop_off |
missing |
available |
located |
missing |
available |
provider_drop_off |
missing |
available |
unspecified |
missing |
elsewhere |
located |
missing |
elsewhere |
unspecified |
missing |
non_operational |
located |
missing |
non_operational |
unspecified |
missing |
on_trip |
located |
missing |
on_trip |
unspecified |
missing |
removed |
agency_pick_up |
missing |
removed |
decommissioned |
missing |
removed |
located |
missing |
removed |
unspecified |
missing |
reserved |
located |
missing |
reserved |
unspecified |
From vehicle_state |
To vehicle_state |
With event_type |
non_contactable |
available |
agency_drop_off |
non_contactable |
available |
comms_restored |
non_contactable |
available |
provider_drop_off |
non_contactable |
available |
unspecified |
non_contactable |
elsewhere |
comms_restored |
non_contactable |
elsewhere |
unspecified |
non_contactable |
missing |
not_located |
non_contactable |
missing |
unspecified |
non_contactable |
non_operational |
comms_restored |
non_contactable |
non_operational |
unspecified |
non_contactable |
on_trip |
comms_restored |
non_contactable |
on_trip |
unspecified |
non_contactable |
removed |
agency_pick_up |
non_contactable |
removed |
comms_restored |
non_contactable |
removed |
decommissioned |
non_contactable |
removed |
unspecified |
non_contactable |
reserved |
comms_restored |
non_contactable |
reserved |
unspecified |
From vehicle_state |
To vehicle_state |
With event_type |
non_operational |
available |
battery_charged |
non_operational |
available |
maintenance |
non_operational |
available |
on_hours |
non_operational |
available |
system_resume |
non_operational |
available |
unspecified |
non_operational |
non_contactable |
comms_lost |
non_operational |
non_contactable |
unspecified |
non_operational |
removed |
agency_pick_up |
non_operational |
removed |
compliance_pick_up |
non_operational |
removed |
decommissioned |
non_operational |
removed |
maintenance_pick_up |
non_operational |
removed |
rebalance_pick_up |
non_operational |
removed |
unspecified |
From vehicle_state |
To vehicle_state |
With event_type |
on_trip |
available |
trip_cancel |
on_trip |
available |
trip_end |
on_trip |
elsewhere |
trip_leave_jurisdiction |
on_trip |
non_contactable |
comms_lost |
on_trip |
non_contactable |
unspecified |
on_trip |
on_trip |
changed_geographies |
From vehicle_state |
To vehicle_state |
With event_type |
removed |
available |
agency_drop_off |
removed |
available |
provider_drop_off |
removed |
non_contactable |
comms_lost |
removed |
non_contactable |
unspecified |
From vehicle_state |
To vehicle_state |
With event_type |
reserved |
available |
reservation_cancel |
reserved |
non_contactable |
comms_lost |
reserved |
non_contactable |
unspecified |
reserved |
on_trip |
trip_start |