Skip to content

Inconsistency between micromobility state machine diagram and list of transitions #953

@viestat

Description

@viestat

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:

  1. from state non_contactable to state available with event type agency_drop_off.
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    State MachineChanges in the vehicle state events and state machine diagramadminAdministrative chores etc.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions