openmobilityfoundation / mobility-data-specification

A data standard to enable right-of-way regulation and two-way communication between mobility companies and local governments.
https://www.openmobilityfoundation.org/about-mds/
Other
676 stars 232 forks source link

Add state transition from removed to non-operational #821

Closed benwedge closed 1 year ago

benwedge commented 1 year ago

Is your feature request related to a problem? Please describe.

When vehicles are being placed in the PROW prior to the start of service for the day, there needs to be a valid state transition from removed to non_operational as the vehicle will not transition from non_operational to available until some future time

Describe the solution you'd like

Add a valid state in the Vehicle State Events table for transitioning from removed to non_operational following either the provider_drop_off or agency_drop_off events

Is this a breaking change

A breaking change would require consumers or implementors of the API to modify their code for it to continue to function (ex: renaming of a required field or the change in data type of an existing field). A non-breaking change would allow existing code to continue to function (ex: addition of an optional field or the creation of a new optional endpoint).

Impacted Spec

For which spec is this feature being requested?

Describe alternatives you've considered

There are no other alternatives as I cannot assume that a feed consumer would anticipate this state transition.

Additional context

None required

schnuerle commented 1 year ago

Can you take a look at the latest work for MDS 2.0 in our development branch and see if the new states, events, and diagram address this issue you raise?

https://github.com/openmobilityfoundation/mobility-data-specification/blob/dev/modes/micromobility.md#state-machine-diagram

benwedge commented 1 year ago

@schnuerle it is not covered in the 2.0 spec - the state machine diagram and table does not show a valid transition from removed to a state other than available, whereas we want to go from removed to non_operational.

marie-x commented 1 year ago

This is exactly why we have multiple event_types in a single event. For the case described here, the event would have an ordered pair of event_type: [provider_drop_off, maintenance], with the resulting vehicle_state of non_operational.

You have alternatives for maintenance such as off_hours, system_suspend, etc. per the state machine.

IMHO no change to spec is needed to handle this.

benwedge commented 1 year ago

Thank you for clarifying @marie-x. In this case I will close the issue.