From dcb12c55ba5a7294d9c97b829cb3fa9f2faa64a4 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:46:20 +0200 Subject: [PATCH 01/23] Create delivery.md Creation of a delivery.md file on the same basis as for the passenger-services.md file --- modes/delivery.md | 222 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 modes/delivery.md diff --git a/modes/delivery.md b/modes/delivery.md new file mode 100644 index 00000000..069d0504 --- /dev/null +++ b/modes/delivery.md @@ -0,0 +1,222 @@ +# Mobility Data Specification: **Delivery** + + +**Delivey** refers to all forms of deliveries. Deliveries may or may not have a driver, there can be one or multiple orders on different trips at the same time. The state machine tracks the trip states of the orders separately from the vehicle state. + +See the [modes overview](/modes) for how the mode specific information below applies across MDS. + +## Robots Vs Other modes + +Robots require a driver whereas other forms of deliveries do not. For most of the robots delivery operators, there is only one order at once. The accepts here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. + +## Table of Contents + +- [Mode Attributes](#mode-attributes) +- [Vehicle States](#vehicle-states) +- [Event Types](#event-types) +- [Vehicle State Events](#vehicle-states-events) +- [State Machine Diagram](#state-machine-diagram) + +## Mode Attributes + +### Mode ID + +The short name identifier for deliveries used across MDS is `delivery`. + +### Journey ID + +Journeys may be point-to-point, multi-segment, or multi-segment overlapping. + +### Trip ID Requirements + +Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `customer_cancellation`, `provider_cancellation`, or `driver_cancellation`. +For the robots, the notion of driver does not exist + +Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdiction` or `leave_jurisdiction` event pertaining to a delivery trip. + +### Trip Type + +The `trip_type` field is used to describe the trip itself. It can be 'delivery' or 'roaming' or 'return' or 'advertising' + +### Trip Attributes + +The `trip_attributes` array is used with in delivery. + +### Vehicle Attributes + +The `vehicle_attributes` array may have the following key value pairs: + + +- `year` (integer) +- `make` (string) +- `model` (string) +- `capacity` (int) + +### Propulsion Types + +#### Valid for vehicle_types: "bicycle", "cargo_bicycle", + + +| `propulsion` | +| ----------------- | +| `electric assist` | +| `human` | + +#### Valid for vehicle_types: "scooter" + +| `propulsion` | +| ----------------- | +| `electric` | +| `electric assist` | +| `human` | + +#### Valid for vehicle_types: "car"; "moped" + +| `propulsion` | +| ----------------- | +| `electric` | +| `electric assist` | +| `combustion` | + +#### Valid for vehicle_types: "other" +| `propulsion` | +| ----------------- | +| `electric` | +| `electric assist` | +| `combustion` | +| `human` | + + +## Vehicle States + +Valid delivery vehicle states are + +- `removed` +- `available` +- `non_operational` +- `reserved` (necessary ?) +- `on_trip` +- `stopped` +- `elsewhere` +- `unknown` + +See [Vehicle States][vehicle-states] for descriptions. + +[Top][toc] + +## Event Types + +Valid delivery vehicle event types are + +- `comms_lost` +- `comms_restored` +- `driver_cancellation` (if we widen to all forms of deliveries) +- `decommission` +- `maintenance_end` +- `maintenance_start` +- `client_cancellation` +- `provider_cancellation` +- `recommission` +- `reservation_cancel` +- `reservation_start` +- `service_end` +- `service_start` +- `trip_cancel` (why another type of cancellation ?) +- `trip_end` +- `trip_enter_jurisdiction` +- `trip_leave_jurisdiction` +- `trip_resume` +- `trip_start` +- `trip_stop` +- `unspecified` + + +See vehicle [Event Types][vehicle-events] for descriptions. + +[Top][toc] + +## Vehicle States Events + +This is the list of `vehicle_state` and `event_type` pairings that constitute the valid transitions of the vehicle state machine. + +| **Previous** `vehicle_state` | `vehicle_state` | `trip_state` | `event_type` | Description | +|------------------------------|-------------------|--------------|--------------------------|------------------------------------------------------------------------------------------------------------------| +| `available` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while available for-hire | +| `available` | `non_operational` | N/A | `service_end` | The vehicle has went out of service (is unavailable for-hire) | +| `available` | `reserved` | `reserved` | `reserve` | The vehicle was reserved by a customer | +| `available` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while available for-use | +| `elsewhere` | `available` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while available for-hire | +| `elsewhere` | `non_operational` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while not operating commercially | +| `elsewhere` | `on_trip` | `on_trip` | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while on a trip | +| `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while reserved by a customer | +| `elsewhere` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while outside of jurisdictional boundaries | +| `non_operational` | `available` | N/A | `service_start` | The vehicle has went into service (is available for-hire) | +| `non_operational` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while not operating commercially | +| `non_operational` | `removed` | N/A | `decommissioned` | The vehicle has been removed from the Provider's fleet | +| `non_operational` | `removed` | N/A | `maintenance_start` | The vehicle has entered the depot for maintenance | +| `non_operational` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while not operating commercially | +| `on_trip` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while on a trip | +| `on_trip` | `stopped` | `stopped` | `trip_stop` | The vehicle has stopped while on a trip | +| `on_trip` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while on a trip | +| `removed` | `non_operational` | N/A | `maintenance_end` | The vehicle has left the depot | +| `removed` | `non_operational` | N/A | `recommissioned` | The vehicle has been re-added to the Provider's fleet after being previously `decommissioned` | +| `removed` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while removed | +| `reserved` | `available` | N/A | `driver_cancellation` | The driver has canceled the reservation | +| `reserved` | `available` | N/A | `customer_cancellation` | The customer has canceled the reservation | +| `reserved` | `available` | N/A | `provider_cancellation` | The provider has canceled the reservation | +| `reserved` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left the jurisdiction while in a reservation | +| `reserved` | `stopped` | `stopped` | `reserve_stop` | The vehicle has stopped to pick up the delivery | +| `reserved` | `unknown` | N/A | `comms_lost` | The vehicle went out of comms while being reserved by a customer | +| `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while waiting | +| `stopped` | `available` | N/A | `customer_cancellation` | The customer has canceled the trip while the vehicle is waiting | +| `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting | +| `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | +| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up a friend to go to the airport with) | +| `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | +| `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while stopped | +| `unknown` | `available` | N/A | `comms_restored` | The vehicle has come back into comms while available for-hire | +| `unknown` | `elsewhere` | N/A | `comms_restored` | The vehicle has come back into comms while outside of jurisdictional boundaries | +| `unknown` | `non_operational` | N/A | `comms_restored` | The vehicle has come back into comms while not operating commercially | +| `unknown` | `on_trip` | `on_trip` | `comms_restored` | The vehicle has come back into comms while on a trip | +| `unknown` | `removed` | N/A | `comms_restored` | The vehicle has come back into comms while removed | +| `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a customer | +| `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | + +### State Machine Diagram + +The *Delivery Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how taxi vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. + +#### Delivery State Notes + +When there is only one trip ongoing, `trip_state == vehicle_state` + +In cases where there are multiple trips ongoing, please follow the trip state model pseudocode for determining what the vehicle state should be: +``` +t = all on-going trips for vehicle +v = vehicle state +if t.any(state == ‘stopped’): +v = ‘stopped’ +else: +if t.any(state == ‘on_trip’): +v = ‘on_trip’ +else: +if t.any(state == ‘reserved’): + v = ‘reserved’ +``` +`trip_state` mappings should be the same as in the table above. + +[Top][toc] + +--- + +[Modes Overview][modes] + +--- + +[MDS Home][home] + +[home]: /README.md +[modes]: /modes/README.md +[toc]: #table-of-contents +[vehicle-states]: /modes/vehicle_states.md +[vehicle-events]: /modes/event_types.md From e83fab825a326e379aa9c4c5a6e0350a883b341f Mon Sep 17 00:00:00 2001 From: Alexandra Santiago Date: Thu, 16 Jun 2022 17:40:15 -0300 Subject: [PATCH 02/23] adding robot files --- general-information.md | 1 + modes/delivery-robots.md | 185 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 186 insertions(+) create mode 100644 modes/delivery-robots.md diff --git a/general-information.md b/general-information.md index be26f150..7be256fd 100644 --- a/general-information.md +++ b/general-information.md @@ -344,6 +344,7 @@ The list of allowed `vehicle_type` values in MDS. Aligning with [GBFS vehicle ty | car | A passenger car or similar light-duty vehicle | | scooter | A standing or seated fully-motorized mobility device intended for one rider, capable of travel at low or moderate speeds, and suited for operation in infrastructure shared with motorized bicycles | | moped | A seated fully-motorized mobility device capable of travel at moderate or high speeds and suited for operation in general urban traffic | +| delivery_robot | A robot intended for transporting goods | | other | A device that does not fit in the other categories | [Top][toc] diff --git a/modes/delivery-robots.md b/modes/delivery-robots.md new file mode 100644 index 00000000..ececccaf --- /dev/null +++ b/modes/delivery-robots.md @@ -0,0 +1,185 @@ +# Mobility Data Specification: **Delivery Robots** + +MDS Modes - Passenger Services + +**Delivery Robots** refers to robots that deliver goods. +See the [modes overview](/modes) for how the mode specific information below applies across MDS. + +## Table of Contents + +- [Mode Attributes](#mode-attributes) +- [Vehicle States](#vehicle-states) +- [Event Types](#event-types) +- [Vehicle State Events](#vehicle-states-events) +- [State Machine Diagram](#state-machine-diagram) + +## Mode Attributes + +### Mode ID + +The short name identifier for Passenger Services used across MDS is `passenger-services`. + +### Journey ID + +The `journey_id` field shall have a consistent value in overlapping trips, e.g. "pooled" or "shared" rides with different start and/or end locations. Journeys may be point-to-point, multi-segment, or multi-segment overlapping. + +### Trip ID Requirements + +Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `passenger_cancellation`, `provider_cancellation`, or `driver_cancellation`. + +Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdiction` or `leave_jurisdiction` event pertaining to a passenger trip. + +### Trip Type + +The `trip_type` field is not currently used in passenger services. + +### Trip Attributes + +The `trip_attributes` array is not used with in passenger services. + +### Vehicle Attributes + +The `vehicle_attributes` array may have the following key value pairs: + +- `year` (integer) +- `make` (string) +- `model` (string) + +### Propulsion Types + +#### Valid for vehicle_types: delivery_robot + +| `propulsion` | +| ----------------- | +| `electric` | + +## Vehicle States + +Valid passenger services vehicle states are + +- `removed` +- `available` +- `non_operational` +- `reserved` +- `on_trip` +- `stopped` +- `elsewhere` +- `unknown` + +See [Vehicle States][vehicle-states] for descriptions. + +[Top][toc] + +## Event Types + +Valid passenger services vehicle event types are + +- `comms_lost` +- `comms_restored` +- `client_cancellation` +- `provider_cancellation` +- `reservation_cancel` +- `reservation_start` +- `service_end` +- `service_start` +- `trip_cancel` +- `trip_end` +- `trip_resume` +- `trip_start` +- `trip_stop` +- `unspecified` + +This list is somewhat shorter than the micromobility event list, as delivery robots are controlled by a remote driver or potentially an AI. They are not picked up or dropped off for rebalancing or compliance, for example. + +See vehicle [Event Types][vehicle-events] for descriptions. + +[Top][toc] + +## Vehicle States Events + +This is the list of `vehicle_state` and `event_type` pairings that constitute the valid transitions of the vehicle state machine. + +| **Previous** `vehicle_state` | `vehicle_state` | `trip_state` | `event_type` | Description | +|------------------------------|-------------------|--------------|--------------------------|------------------------------------------------------------------------------------------------------------------| +| `available` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while available for-hire | +| `available` | `non_operational` | N/A | `service_end` | The vehicle has went out of service (is unavailable for-hire) | +| `available` | `reserved` | `reserved` | `reserve` | The vehicle was reserved by a passenger | +| `available` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while available for-use | +| `elsewhere` | `available` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while available for-hire | +| `elsewhere` | `non_operational` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while not operating commercially | +| `elsewhere` | `on_trip` | `on_trip` | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while on a trip | +| `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while reserved by a customer | +| `elsewhere` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while outside of jurisdictional boundaries | +| `non_operational` | `available` | N/A | `service_start` | The vehicle has went into service (is available for-hire) | +| `non_operational` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while not operating commercially | +| `non_operational` | `removed` | N/A | `decommissioned` | The vehicle has been removed from the Provider's fleet | +| `non_operational` | `removed` | N/A | `maintenance_start` | The vehicle has entered the depot for maintenance | +| `non_operational` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while not operating commercially | +| `on_trip` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while on a trip | +| `on_trip` | `stopped` | `stopped` | `trip_stop` | The vehicle has stopped while on a trip | +| `on_trip` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while on a trip | +| `removed` | `non_operational` | N/A | `maintenance_end` | The vehicle has left the depot | +| `removed` | `non_operational` | N/A | `recommissioned` | The vehicle has been re-added to the Provider's fleet after being previously `decommissioned` | +| `removed` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while removed | +| `reserved` | `available` | N/A | `driver_cancellation` | The driver has canceled the reservation | +| `reserved` | `available` | N/A | `passenger_cancellation` | The passenger has canceled the reservation | +| `reserved` | `available` | N/A | `provider_cancellation` | The provider has canceled the reservation | +| `reserved` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left the jurisdiction while in a reservation | +| `reserved` | `stopped` | `stopped` | `reserve_stop` | The vehicle has stopped to pick up the passenger | +| `reserved` | `unknown` | N/A | `comms_lost` | The vehicle went out of comms while being reserved by a passenger | +| `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while either waiting for the passenger, or dropping them off | +| `stopped` | `available` | N/A | `passenger_cancellation` | The passenger has canceled the trip while the vehicle is waiting to pick them up, or they are being dropped off | +| `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting for a passenger, or dropping them off | +| `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | +| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up a friend to go to the airport with) | +| `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | +| `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while stopped | +| `unknown` | `available` | N/A | `comms_restored` | The vehicle has come back into comms while available for-hire | +| `unknown` | `elsewhere` | N/A | `comms_restored` | The vehicle has come back into comms while outside of jurisdictional boundaries | +| `unknown` | `non_operational` | N/A | `comms_restored` | The vehicle has come back into comms while not operating commercially | +| `unknown` | `on_trip` | `on_trip` | `comms_restored` | The vehicle has come back into comms while on a trip | +| `unknown` | `removed` | N/A | `comms_restored` | The vehicle has come back into comms while removed | +| `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a passenger | +| `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | + +### State Machine Diagram + +The *Passenger Services State Machine Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how taxi vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. + +![Passenger Services State Machine Diagram](passenger-services-state-machine-diagram.svg) + +#### Passenger Services State Notes + +When there is only one trip ongoing, `trip_state == vehicle_state` + +In cases where there are multiple trips ongoing, please follow the trip state model pseudocode for determining what the vehicle state should be: +``` +t = all on-going trips for vehicle +v = vehicle state + +if t.any(state == ‘stopped’): +v = ‘stopped’ +else: +if t.any(state == ‘on_trip’): +v = ‘on_trip’ +else: +if t.any(state == ‘reserved’): + v = ‘reserved’ +``` +`trip_state` mappings should be the same as in the table above. + +[Top][toc] + +--- + +[Modes Overview][modes] + +--- + +[MDS Home][home] + +[home]: /README.md +[modes]: /modes/README.md +[toc]: #table-of-contents +[vehicle-states]: /modes/vehicle_states.md +[vehicle-events]: /modes/event_types.md From 2ef64d83d748f20bdb5c04df5b421d2cd414de7a Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Tue, 21 Jun 2022 10:15:38 -0500 Subject: [PATCH 03/23] upload readme --- modes/delivery-robots.md | 42 +++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/modes/delivery-robots.md b/modes/delivery-robots.md index ececccaf..a19a067d 100644 --- a/modes/delivery-robots.md +++ b/modes/delivery-robots.md @@ -89,6 +89,31 @@ Valid passenger services vehicle event types are - `trip_stop` - `unspecified` +[//]: <> (Add by JCTR) + +- `maintenance_end` +- `maintenance_start` +- `bot_out_work` +- `spare_part_request` + +| Field | Type | Required/Optional | Comments | +| ----- | -------- | ----------------- | ----- | +| `maintenance_end` | [timestamp][ts] | Required | Date/time that maintenance finish | +| `maintenance_start`| [timestamp][ts] | Required | Date/time that maintenance start | +| `bot_out_work` | Enum[] | Required | See [Out of work][Out of work] | +| `spare_part_request` | String | Optional | Electronic device neccesary for specific robot | + +[Top][toc] + +### Out of work +| Type | Description | +| ---- | ------------| +| `Long_time` | Long time bot out of work (more than one day). For instance, when the robot need a specifit part for the robot | +| `Short_time` | Short time bot out of work (less than one day). It is when maintenance can solve itself | + +[//]: <> (FINISH Add by JCTR) + + This list is somewhat shorter than the micromobility event list, as delivery robots are controlled by a remote driver or potentially an AI. They are not picked up or dropped off for rebalancing or compliance, for example. See vehicle [Event Types][vehicle-events] for descriptions. @@ -103,12 +128,12 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th |------------------------------|-------------------|--------------|--------------------------|------------------------------------------------------------------------------------------------------------------| | `available` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while available for-hire | | `available` | `non_operational` | N/A | `service_end` | The vehicle has went out of service (is unavailable for-hire) | -| `available` | `reserved` | `reserved` | `reserve` | The vehicle was reserved by a passenger | +| `available` | `reserved` | `reserved` | `reserve` | | | `available` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while available for-use | | `elsewhere` | `available` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while available for-hire | | `elsewhere` | `non_operational` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while not operating commercially | | `elsewhere` | `on_trip` | `on_trip` | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while on a trip | -| `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while reserved by a customer | +| `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | | | `elsewhere` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while outside of jurisdictional boundaries | | `non_operational` | `available` | N/A | `service_start` | The vehicle has went into service (is available for-hire) | | `non_operational` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while not operating commercially | @@ -126,12 +151,12 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `reserved` | `available` | N/A | `provider_cancellation` | The provider has canceled the reservation | | `reserved` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left the jurisdiction while in a reservation | | `reserved` | `stopped` | `stopped` | `reserve_stop` | The vehicle has stopped to pick up the passenger | -| `reserved` | `unknown` | N/A | `comms_lost` | The vehicle went out of comms while being reserved by a passenger | +| `reserved` | `unknown` | N/A | `comms_lost` | | | `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while either waiting for the passenger, or dropping them off | -| `stopped` | `available` | N/A | `passenger_cancellation` | The passenger has canceled the trip while the vehicle is waiting to pick them up, or they are being dropped off | +| `stopped` | `available` | N/A | `customer_cancellation` | | | `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting for a passenger, or dropping them off | | `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | -| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up a friend to go to the airport with) | +| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped | | `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | | `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while stopped | | `unknown` | `available` | N/A | `comms_restored` | The vehicle has come back into comms while available for-hire | @@ -141,6 +166,13 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `unknown` | `removed` | N/A | `comms_restored` | The vehicle has come back into comms while removed | | `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a passenger | | `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | +|`offline`|`stopped`|`on_trip`|`trip_start`|The vehicle has come offline while was on trip start| +|`offline`|`stopped`|`on_trip`|`trip_end`|The vehicle has come offline while was on trip end| +|`offline`|`stopped`|`reserved`|`reserve`|The vehicle has come offline while was reserved| +|`offline`|`stopped`|`stopped`|`wait_order`|The vehicle has come offline while was waiting order| + + + ### State Machine Diagram From 23a0ccd0d4ca18388aab1ee8db2f00543c2f7129 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:08:35 +0200 Subject: [PATCH 04/23] Update delivery.md --- modes/delivery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/delivery.md b/modes/delivery.md index 069d0504..e1db1488 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -29,7 +29,7 @@ Journeys may be point-to-point, multi-segment, or multi-segment overlapping. ### Trip ID Requirements -Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `customer_cancellation`, `provider_cancellation`, or `driver_cancellation`. +Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `client_cancellation`, `provider_cancellation`, or `driver_cancellation`. For the robots, the notion of driver does not exist Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdiction` or `leave_jurisdiction` event pertaining to a delivery trip. From 13e2e25fa090f3e03eb21632fdd768bb671af152 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:12:27 +0200 Subject: [PATCH 05/23] Update delivery.md --- modes/delivery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/delivery.md b/modes/delivery.md index e1db1488..81b82a17 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -184,7 +184,7 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th ### State Machine Diagram -The *Delivery Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how taxi vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. +The *Delivery Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how delivery vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. #### Delivery State Notes From bf5145f22f4fdad1fe5a317a95591fce1e2cc935 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:19:35 +0200 Subject: [PATCH 06/23] Update delivery-robots.md --- modes/delivery-robots.md | 124 +++++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 57 deletions(-) diff --git a/modes/delivery-robots.md b/modes/delivery-robots.md index a19a067d..dc5ecf47 100644 --- a/modes/delivery-robots.md +++ b/modes/delivery-robots.md @@ -1,10 +1,14 @@ -# Mobility Data Specification: **Delivery Robots** +# Mobility Data Specification: **Delivery** -MDS Modes - Passenger Services -**Delivery Robots** refers to robots that deliver goods. +**Delivey** refers to all forms of deliveries. Deliveries may or may not have a driver, there can be one or multiple orders on different trips at the same time. The state machine tracks the trip states of the orders separately from the vehicle state. + See the [modes overview](/modes) for how the mode specific information below applies across MDS. +## Robots Vs Other modes + +Robots require a driver whereas other forms of deliveries do not. For most of the robots delivery operators, there is only one order at once. The accepts here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. + ## Table of Contents - [Mode Attributes](#mode-attributes) @@ -17,50 +21,80 @@ See the [modes overview](/modes) for how the mode specific information below app ### Mode ID -The short name identifier for Passenger Services used across MDS is `passenger-services`. +The short name identifier for deliveries used across MDS is `delivery`. ### Journey ID -The `journey_id` field shall have a consistent value in overlapping trips, e.g. "pooled" or "shared" rides with different start and/or end locations. Journeys may be point-to-point, multi-segment, or multi-segment overlapping. +Journeys may be point-to-point, multi-segment, or multi-segment overlapping. ### Trip ID Requirements -Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `passenger_cancellation`, `provider_cancellation`, or `driver_cancellation`. +Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `client_cancellation`, `provider_cancellation`, or `driver_cancellation`. +For the robots, the notion of driver does not exist -Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdiction` or `leave_jurisdiction` event pertaining to a passenger trip. +Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdiction` or `leave_jurisdiction` event pertaining to a delivery trip. ### Trip Type -The `trip_type` field is not currently used in passenger services. +The `trip_type` field is used to describe the trip itself. It can be 'delivery' or 'roaming' or 'return' or 'advertising' ### Trip Attributes -The `trip_attributes` array is not used with in passenger services. +The `trip_attributes` array is used with in delivery. ### Vehicle Attributes The `vehicle_attributes` array may have the following key value pairs: + - `year` (integer) - `make` (string) - `model` (string) +- `capacity` (int) ### Propulsion Types -#### Valid for vehicle_types: delivery_robot +#### Valid for vehicle_types: "bicycle", "cargo_bicycle", + + +| `propulsion` | +| ----------------- | +| `electric assist` | +| `human` | + +#### Valid for vehicle_types: "scooter" + +| `propulsion` | +| ----------------- | +| `electric` | +| `electric assist` | +| `human` | + +#### Valid for vehicle_types: "car"; "moped" + +| `propulsion` | +| ----------------- | +| `electric` | +| `electric assist` | +| `combustion` | +#### Valid for vehicle_types: "other" | `propulsion` | | ----------------- | | `electric` | +| `electric assist` | +| `combustion` | +| `human` | + ## Vehicle States -Valid passenger services vehicle states are +Valid delivery vehicle states are - `removed` - `available` - `non_operational` -- `reserved` +- `reserved` (necessary ?) - `on_trip` - `stopped` - `elsewhere` @@ -72,49 +106,30 @@ See [Vehicle States][vehicle-states] for descriptions. ## Event Types -Valid passenger services vehicle event types are +Valid delivery vehicle event types are - `comms_lost` - `comms_restored` +- `driver_cancellation` (if we widen to all forms of deliveries) +- `decommission` +- `maintenance_end` +- `maintenance_start` - `client_cancellation` - `provider_cancellation` +- `recommission` - `reservation_cancel` - `reservation_start` - `service_end` - `service_start` -- `trip_cancel` +- `trip_cancel` (why another type of cancellation ?) - `trip_end` +- `trip_enter_jurisdiction` +- `trip_leave_jurisdiction` - `trip_resume` - `trip_start` - `trip_stop` - `unspecified` -[//]: <> (Add by JCTR) - -- `maintenance_end` -- `maintenance_start` -- `bot_out_work` -- `spare_part_request` - -| Field | Type | Required/Optional | Comments | -| ----- | -------- | ----------------- | ----- | -| `maintenance_end` | [timestamp][ts] | Required | Date/time that maintenance finish | -| `maintenance_start`| [timestamp][ts] | Required | Date/time that maintenance start | -| `bot_out_work` | Enum[] | Required | See [Out of work][Out of work] | -| `spare_part_request` | String | Optional | Electronic device neccesary for specific robot | - -[Top][toc] - -### Out of work -| Type | Description | -| ---- | ------------| -| `Long_time` | Long time bot out of work (more than one day). For instance, when the robot need a specifit part for the robot | -| `Short_time` | Short time bot out of work (less than one day). It is when maintenance can solve itself | - -[//]: <> (FINISH Add by JCTR) - - -This list is somewhat shorter than the micromobility event list, as delivery robots are controlled by a remote driver or potentially an AI. They are not picked up or dropped off for rebalancing or compliance, for example. See vehicle [Event Types][vehicle-events] for descriptions. @@ -128,12 +143,12 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th |------------------------------|-------------------|--------------|--------------------------|------------------------------------------------------------------------------------------------------------------| | `available` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while available for-hire | | `available` | `non_operational` | N/A | `service_end` | The vehicle has went out of service (is unavailable for-hire) | -| `available` | `reserved` | `reserved` | `reserve` | | +| `available` | `reserved` | `reserved` | `reserve` | The vehicle was reserved by a customer | | `available` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while available for-use | | `elsewhere` | `available` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while available for-hire | | `elsewhere` | `non_operational` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while not operating commercially | | `elsewhere` | `on_trip` | `on_trip` | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while on a trip | -| `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | | +| `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while reserved by a customer | | `elsewhere` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while outside of jurisdictional boundaries | | `non_operational` | `available` | N/A | `service_start` | The vehicle has went into service (is available for-hire) | | `non_operational` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while not operating commercially | @@ -147,16 +162,16 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `removed` | `non_operational` | N/A | `recommissioned` | The vehicle has been re-added to the Provider's fleet after being previously `decommissioned` | | `removed` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while removed | | `reserved` | `available` | N/A | `driver_cancellation` | The driver has canceled the reservation | -| `reserved` | `available` | N/A | `passenger_cancellation` | The passenger has canceled the reservation | +| `reserved` | `available` | N/A | `customer_cancellation` | The customer has canceled the reservation | | `reserved` | `available` | N/A | `provider_cancellation` | The provider has canceled the reservation | | `reserved` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left the jurisdiction while in a reservation | -| `reserved` | `stopped` | `stopped` | `reserve_stop` | The vehicle has stopped to pick up the passenger | -| `reserved` | `unknown` | N/A | `comms_lost` | | -| `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while either waiting for the passenger, or dropping them off | -| `stopped` | `available` | N/A | `customer_cancellation` | | -| `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting for a passenger, or dropping them off | +| `reserved` | `stopped` | `stopped` | `reserve_stop` | The vehicle has stopped to pick up the delivery | +| `reserved` | `unknown` | N/A | `comms_lost` | The vehicle went out of comms while being reserved by a customer | +| `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while waiting | +| `stopped` | `available` | N/A | `customer_cancellation` | The customer has canceled the trip while the vehicle is waiting | +| `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting | | `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | -| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped | +| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up a friend to go to the airport with) | | `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | | `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while stopped | | `unknown` | `available` | N/A | `comms_restored` | The vehicle has come back into comms while available for-hire | @@ -164,23 +179,19 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `unknown` | `non_operational` | N/A | `comms_restored` | The vehicle has come back into comms while not operating commercially | | `unknown` | `on_trip` | `on_trip` | `comms_restored` | The vehicle has come back into comms while on a trip | | `unknown` | `removed` | N/A | `comms_restored` | The vehicle has come back into comms while removed | -| `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a passenger | +| `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a customer | | `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | -|`offline`|`stopped`|`on_trip`|`trip_start`|The vehicle has come offline while was on trip start| -|`offline`|`stopped`|`on_trip`|`trip_end`|The vehicle has come offline while was on trip end| -|`offline`|`stopped`|`reserved`|`reserve`|The vehicle has come offline while was reserved| -|`offline`|`stopped`|`stopped`|`wait_order`|The vehicle has come offline while was waiting order| ### State Machine Diagram -The *Passenger Services State Machine Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how taxi vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. +The *Delivery Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how delivery vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. ![Passenger Services State Machine Diagram](passenger-services-state-machine-diagram.svg) -#### Passenger Services State Notes +#### Delivery State Notes When there is only one trip ongoing, `trip_state == vehicle_state` @@ -188,7 +199,6 @@ In cases where there are multiple trips ongoing, please follow the trip state mo ``` t = all on-going trips for vehicle v = vehicle state - if t.any(state == ‘stopped’): v = ‘stopped’ else: From 735415ae0e9d67ad68bebf30a4471d4d000429ab Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 22 Jun 2022 11:34:11 +0200 Subject: [PATCH 07/23] Update and rename delivery-robots.md to delivery.md --- modes/{delivery-robots.md => delivery.md} | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) rename modes/{delivery-robots.md => delivery.md} (96%) diff --git a/modes/delivery-robots.md b/modes/delivery.md similarity index 96% rename from modes/delivery-robots.md rename to modes/delivery.md index dc5ecf47..6151ee47 100644 --- a/modes/delivery-robots.md +++ b/modes/delivery.md @@ -7,7 +7,7 @@ See the [modes overview](/modes) for how the mode specific information below app ## Robots Vs Other modes -Robots require a driver whereas other forms of deliveries do not. For most of the robots delivery operators, there is only one order at once. The accepts here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. +Robots does not require a driver whereas other forms of deliveries do. For most of the robots delivery operators, there is only one order at once. The accepts here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. ## Table of Contents @@ -78,6 +78,12 @@ The `vehicle_attributes` array may have the following key value pairs: | `electric assist` | | `combustion` | +#### Valid for vehicle_types: "delivery_robot" +| `propulsion` | +| ----------------- | +| `electric` | + + #### Valid for vehicle_types: "other" | `propulsion` | | ----------------- | @@ -87,6 +93,8 @@ The `vehicle_attributes` array may have the following key value pairs: | `human` | + + ## Vehicle States Valid delivery vehicle states are @@ -110,7 +118,7 @@ Valid delivery vehicle event types are - `comms_lost` - `comms_restored` -- `driver_cancellation` (if we widen to all forms of deliveries) +- `driver_cancellation` - `decommission` - `maintenance_end` - `maintenance_start` @@ -121,7 +129,7 @@ Valid delivery vehicle event types are - `reservation_start` - `service_end` - `service_start` -- `trip_cancel` (why another type of cancellation ?) +- `trip_cancel` - `trip_end` - `trip_enter_jurisdiction` - `trip_leave_jurisdiction` From 3323e891b99c479e39415a453c1a1ddfc0b79f2e Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Thu, 30 Jun 2022 17:26:35 +0200 Subject: [PATCH 08/23] Update delivery.md --- modes/delivery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/delivery.md b/modes/delivery.md index 6151ee47..fe46d2dd 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -7,7 +7,7 @@ See the [modes overview](/modes) for how the mode specific information below app ## Robots Vs Other modes -Robots does not require a driver whereas other forms of deliveries do. For most of the robots delivery operators, there is only one order at once. The accepts here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. +Robots do not require a driver whereas other forms of deliveries do. For most of the robots delivery operators, there is only one order at once. The idea here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. ## Table of Contents From c8224baf148b70d0b3f7bb0ce53ba9535526fd1d Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Mon, 11 Jul 2022 12:18:57 +0200 Subject: [PATCH 09/23] Update delivery.md --- modes/delivery.md | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/modes/delivery.md b/modes/delivery.md index fe46d2dd..e4f109b9 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -5,8 +5,7 @@ See the [modes overview](/modes) for how the mode specific information below applies across MDS. -## Robots Vs Other modes - +## Robots Vs Other vehicles types Robots do not require a driver whereas other forms of deliveries do. For most of the robots delivery operators, there is only one order at once. The idea here is to anticipate all forms of deliveries and to accept having many orders at once on one vehicle. ## Table of Contents @@ -36,7 +35,7 @@ Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdict ### Trip Type -The `trip_type` field is used to describe the trip itself. It can be 'delivery' or 'roaming' or 'return' or 'advertising' +The `trip_type` field is used to describe the trip itself. It can be 'delivery', 'roaming', 'return' or 'advertising' ### Trip Attributes @@ -116,9 +115,22 @@ See [Vehicle States][vehicle-states] for descriptions. Valid delivery vehicle event types are +- `agency_drop_off` +- `agency_pick_up` +- `battery_charged` +- `battery_low` - `comms_lost` - `comms_restored` +- `compliance_pick_up` +- `decommissioned` +- `located` +- `maintenance` +- `maintenance_pick_up` +- `missing` +- `off_hours` +- `on_hours` - `driver_cancellation` +- 'delivery'(same as trip_end ?) - `decommission` - `maintenance_end` - `maintenance_start` @@ -150,19 +162,19 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | **Previous** `vehicle_state` | `vehicle_state` | `trip_state` | `event_type` | Description | |------------------------------|-------------------|--------------|--------------------------|------------------------------------------------------------------------------------------------------------------| | `available` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while available for-hire | -| `available` | `non_operational` | N/A | `service_end` | The vehicle has went out of service (is unavailable for-hire) | +| `available` | `non_operational` | N/A | `service_end` | The vehicle has gone out of service (is unavailable for-hire) | | `available` | `reserved` | `reserved` | `reserve` | The vehicle was reserved by a customer | -| `available` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while available for-use | +| `available` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while available for-use | | `elsewhere` | `available` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while available for-hire | | `elsewhere` | `non_operational` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while not operating commercially | | `elsewhere` | `on_trip` | `on_trip` | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while on a trip | | `elsewhere` | `reserved` | N/A | `enter_jurisdiction` | The vehicle has entered jurisdictional boundaries while reserved by a customer | -| `elsewhere` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while outside of jurisdictional boundaries | -| `non_operational` | `available` | N/A | `service_start` | The vehicle has went into service (is available for-hire) | +| `elsewhere` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while outside of jurisdictional boundaries | +| `non_operational` | `available` | N/A | `service_start` | The vehicle has gone into service (is available for-hire) | | `non_operational` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while not operating commercially | | `non_operational` | `removed` | N/A | `decommissioned` | The vehicle has been removed from the Provider's fleet | | `non_operational` | `removed` | N/A | `maintenance_start` | The vehicle has entered the depot for maintenance | -| `non_operational` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while not operating commercially | +| `non_operational` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while not operating commercially | | `on_trip` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while on a trip | | `on_trip` | `stopped` | `stopped` | `trip_stop` | The vehicle has stopped while on a trip | | `on_trip` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while on a trip | @@ -174,14 +186,14 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `reserved` | `available` | N/A | `provider_cancellation` | The provider has canceled the reservation | | `reserved` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left the jurisdiction while in a reservation | | `reserved` | `stopped` | `stopped` | `reserve_stop` | The vehicle has stopped to pick up the delivery | -| `reserved` | `unknown` | N/A | `comms_lost` | The vehicle went out of comms while being reserved by a customer | +| `reserved` | `unknown` | N/A | `comms_lost` | The vehicle has gone of comms while being reserved by a customer | | `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while waiting | | `stopped` | `available` | N/A | `customer_cancellation` | The customer has canceled the trip while the vehicle is waiting | | `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting | | `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | | `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up a friend to go to the airport with) | | `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | -| `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has went out of comms while stopped | +| `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while stopped | | `unknown` | `available` | N/A | `comms_restored` | The vehicle has come back into comms while available for-hire | | `unknown` | `elsewhere` | N/A | `comms_restored` | The vehicle has come back into comms while outside of jurisdictional boundaries | | `unknown` | `non_operational` | N/A | `comms_restored` | The vehicle has come back into comms while not operating commercially | From 2d4f5f05031ad93099d10bd42866268bc2576169 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 13 Jul 2022 11:34:54 +0200 Subject: [PATCH 10/23] Update event_types.md --- modes/event_types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/event_types.md b/modes/event_types.md index 11bf62af..c51f94ac 100644 --- a/modes/event_types.md +++ b/modes/event_types.md @@ -21,7 +21,7 @@ As with all MDS definitions, they should be described in a way that maximizes th | `missing` | Missing | | `off_hours` | Off hours - end of service | | `on_hours` | On hours - start of service | -| `passenger_cancellation` | Passenger cancelled a trip | +| `customer_cancellation` | Customer cancelled a trip | | `provider_cancellation` | Provider cancelled a trip | | `provider_drop_off` | Drop off by the provider | | `rebalance_pick_up` | Pick up for rebalancing | From beb5d3e5947978827454743d419c09213c37bc18 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 13 Jul 2022 11:37:24 +0200 Subject: [PATCH 11/23] Update delivery.md --- modes/delivery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/delivery.md b/modes/delivery.md index e4f109b9..82b7124b 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -134,7 +134,7 @@ Valid delivery vehicle event types are - `decommission` - `maintenance_end` - `maintenance_start` -- `client_cancellation` +- `customer_cancellation` - `provider_cancellation` - `recommission` - `reservation_cancel` From 68fce9be168ea8e017208e8dbab5c5cd00e3af3c Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 13 Jul 2022 12:08:14 +0200 Subject: [PATCH 12/23] Update delivery.md --- modes/delivery.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modes/delivery.md b/modes/delivery.md index 82b7124b..d7627469 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -28,7 +28,7 @@ Journeys may be point-to-point, multi-segment, or multi-segment overlapping. ### Trip ID Requirements -Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `client_cancellation`, `provider_cancellation`, or `driver_cancellation`. +Events require a valid `trip_id` in events where `event_types` contains `reservation_start`, `reservation_stop`, `trip_start`, `trip_stop`, `trip_end`, `customer_cancellation`, `provider_cancellation`, or `driver_cancellation`. For the robots, the notion of driver does not exist Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdiction` or `leave_jurisdiction` event pertaining to a delivery trip. @@ -39,7 +39,7 @@ The `trip_type` field is used to describe the trip itself. It can be 'delivery', ### Trip Attributes -The `trip_attributes` array is used with in delivery. +The `trip_attributes` array is not used with in delivery. ### Vehicle Attributes @@ -49,7 +49,6 @@ The `vehicle_attributes` array may have the following key value pairs: - `year` (integer) - `make` (string) - `model` (string) -- `capacity` (int) ### Propulsion Types @@ -130,7 +129,8 @@ Valid delivery vehicle event types are - `off_hours` - `on_hours` - `driver_cancellation` -- 'delivery'(same as trip_end ?) +- 'order_delivery'(this or trip end ?) +- 'order_pick_up' (this or trip stop ?) - `decommission` - `maintenance_end` - `maintenance_start` @@ -177,7 +177,8 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `non_operational` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while not operating commercially | | `on_trip` | `elsewhere` | N/A | `leave_jurisdiction` | The vehicle has left jurisdictional boundaries while on a trip | | `on_trip` | `stopped` | `stopped` | `trip_stop` | The vehicle has stopped while on a trip | -| `on_trip` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while on a trip | +| `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has stopped while on a trip | +| `on_trip` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while on a trip to pick up the order | | `removed` | `non_operational` | N/A | `maintenance_end` | The vehicle has left the depot | | `removed` | `non_operational` | N/A | `recommissioned` | The vehicle has been re-added to the Provider's fleet after being previously `decommissioned` | | `removed` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while removed | @@ -190,8 +191,9 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while waiting | | `stopped` | `available` | N/A | `customer_cancellation` | The customer has canceled the trip while the vehicle is waiting | | `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting | +| `on_trip` | `available` | `stopped` | `order_delivery` | The delivery vehicle has stopped to wait for the customer to pick up the order | | `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | -| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up a friend to go to the airport with) | +| `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up an order | | `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | | `stopped` | `unknown` | N/A | `comms_lost` | The vehicle has gone out of comms while stopped | | `unknown` | `available` | N/A | `comms_restored` | The vehicle has come back into comms while available for-hire | From 3bb87e8c813122084d71f56af7cd2d0b02646a33 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 13 Jul 2022 16:08:07 +0200 Subject: [PATCH 13/23] Update delivery.md --- modes/delivery.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/modes/delivery.md b/modes/delivery.md index d7627469..ee84646a 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -35,7 +35,7 @@ Additionally, `trip_id` is required if `event_types` contains a `enter_jurisdict ### Trip Type -The `trip_type` field is used to describe the trip itself. It can be 'delivery', 'roaming', 'return' or 'advertising' +The `trip_type` field is used to describe the trip itself. It can be `delivery`, `roaming`, `return` or `advertising` ### Trip Attributes @@ -129,8 +129,9 @@ Valid delivery vehicle event types are - `off_hours` - `on_hours` - `driver_cancellation` -- 'order_delivery'(this or trip end ?) -- 'order_pick_up' (this or trip stop ?) +- `order_delivery` +- `order_pick_up` +- `order_receipt` - `decommission` - `maintenance_end` - `maintenance_start` @@ -203,15 +204,18 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `unknown` | `removed` | N/A | `comms_restored` | The vehicle has come back into comms while removed | | `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a customer | | `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | +| `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has come to pick up the order at the restaurant | +| `on_trip` | `stopped` | `stopped` | `order_delivery` | The vehicle is at the customer's place and is waiting for them | +| `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has come to pick up the order at the restaurant | +| `stopped` | `available` | `N/A` | `order_receipt` | The customer received their order | +| `on_trip` | `available` | `N/A` | `order_receipt` | The customer received their order | ### State Machine Diagram -The *Delivery Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how delivery vehicles can transition between states. See this [text-editable EPS](https://drive.google.com/file/d/1WusVpFK1Vm7HSJgNcA_10T74TEzuCpTB/view?usp=sharing) for the source file. - -![Passenger Services State Machine Diagram](passenger-services-state-machine-diagram.svg) +The *Delivery Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how delivery vehicles can transition between states. #### Delivery State Notes @@ -219,16 +223,19 @@ When there is only one trip ongoing, `trip_state == vehicle_state` In cases where there are multiple trips ongoing, please follow the trip state model pseudocode for determining what the vehicle state should be: ``` -t = all on-going trips for vehicle +t = for the one vehicle, all on-going trips which are 'delivey' or undefined trips (we do not take into account 'roaming', 'return' or 'advertising' trips) v = vehicle state if t.any(state == ‘stopped’): -v = ‘stopped’ + v = ‘stopped’ else: if t.any(state == ‘on_trip’): -v = ‘on_trip’ + v = ‘on_trip’ else: if t.any(state == ‘reserved’): v = ‘reserved’ +else: +if t=[]: + v = ‘available’ ``` `trip_state` mappings should be the same as in the table above. From 394e910783cdefb1338b32711bed51b844eeda3e Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:18:48 +0200 Subject: [PATCH 14/23] Update README.md --- agency/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agency/README.md b/agency/README.md index 7141cce1..370bd560 100644 --- a/agency/README.md +++ b/agency/README.md @@ -372,7 +372,7 @@ The Trips endpoint serves two purposes: | Field | Type | Required/Optional | Field Description | |-------------------------------|--------------------------------|------------------------| ----------------- | | trip_id | UUID | Required | UUID for the trip this payload pertains to | -| journey_id | UUID | Optional | A unique ID for associating collections of trips | +| trip_type | Enum | Optional | The type of the trip | | trip_attributes | `{ [String]: String}` | Optional | Trip attributes, given as mode-specific key-value pairs | | provider_id | UUID | Required | Provider which managed this trip | | reservation_method | Enum | Required | Way the customer created their reservation, see [reservation-method](#reservation-method) | From 274fbbfc0b260d0f8ce807f05999e3aabd5058e3 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:37:50 +0200 Subject: [PATCH 15/23] Update event_types.md --- modes/event_types.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modes/event_types.md b/modes/event_types.md index c51f94ac..ce625342 100644 --- a/modes/event_types.md +++ b/modes/event_types.md @@ -13,6 +13,9 @@ As with all MDS definitions, they should be described in a way that maximizes th | `comms_lost` | Communications lost | | `comms_restored` | Communications restored | | `compliance_pick_up` | Pick up for compliance (rule violation) | +| `order_drop_off` | Pick up of the order at the restaurant or shop or warehouse | +| `order_pick_up` | Delivery of the order at the customer's | +| `order_receipt` | Receipt of the order / package by the customer | | `decommissioned` | Decommissioned | | `driver_cancellation` | Driver cancelled a trip | | `located` | Located (opposite of Missing) | @@ -34,6 +37,8 @@ As with all MDS definitions, they should be described in a way that maximizes th | `trip_enter_jurisdiction` | Trip enters a jurisdiction | | `trip_leave_jurisdiction` | Trip leaves a jurisdiction | | `trip_start` | Start trip | +| `trip_stop` | Stop trip | +| `trip_resume` | Resume trip | | `unspecified` | Unspecified | ### Limitations on the Use of Certain Values From 06dccd9c768b9bd70a6da6084e4b538ce252bcbf Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:43:04 +0200 Subject: [PATCH 16/23] Update delivery.md --- modes/delivery.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modes/delivery.md b/modes/delivery.md index ee84646a..3b717f2b 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -129,9 +129,8 @@ Valid delivery vehicle event types are - `off_hours` - `on_hours` - `driver_cancellation` -- `order_delivery` +- `order_drop_off` - `order_pick_up` -- `order_receipt` - `decommission` - `maintenance_end` - `maintenance_start` @@ -192,7 +191,7 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `stopped` | `available` | N/A | `driver_cancellation` | The driver has canceled the trip while waiting | | `stopped` | `available` | N/A | `customer_cancellation` | The customer has canceled the trip while the vehicle is waiting | | `stopped` | `available` | N/A | `provider_cancellation` | The provider has canceled the trip while the vehicle is waiting | -| `on_trip` | `available` | `stopped` | `order_delivery` | The delivery vehicle has stopped to wait for the customer to pick up the order | +| `on_trip` | `available` | N/A | `order_drop_off` | The delivery vehicle has stopped to wait for the customer to pick up the order | | `stopped` | `available` | N/A | `trip_end` | The trip has been successfully completed | | `stopped` | `on_trip` | `on_trip` | `trip_resume` | Resume a trip that was previously stopped (e.g. picking up an order | | `stopped` | `on_trip` | `on_trip` | `trip_start` | Start a trip | @@ -205,10 +204,9 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a customer | | `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | | `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has come to pick up the order at the restaurant | -| `on_trip` | `stopped` | `stopped` | `order_delivery` | The vehicle is at the customer's place and is waiting for them | +| `on_trip` |`available` | N/A | `order_drop_off` | The vehicle is at the customer's place and is waiting for them | | `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has come to pick up the order at the restaurant | -| `stopped` | `available` | `N/A` | `order_receipt` | The customer received their order | -| `on_trip` | `available` | `N/A` | `order_receipt` | The customer received their order | + From 4ff3453ee73fbebe624445136fa3c9cef79ad9b0 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:43:39 +0200 Subject: [PATCH 17/23] Update event_types.md --- modes/event_types.md | 1 - 1 file changed, 1 deletion(-) diff --git a/modes/event_types.md b/modes/event_types.md index ce625342..5a86eb3c 100644 --- a/modes/event_types.md +++ b/modes/event_types.md @@ -15,7 +15,6 @@ As with all MDS definitions, they should be described in a way that maximizes th | `compliance_pick_up` | Pick up for compliance (rule violation) | | `order_drop_off` | Pick up of the order at the restaurant or shop or warehouse | | `order_pick_up` | Delivery of the order at the customer's | -| `order_receipt` | Receipt of the order / package by the customer | | `decommissioned` | Decommissioned | | `driver_cancellation` | Driver cancelled a trip | | `located` | Located (opposite of Missing) | From 2f0e0f947d2fe87a42cbf6021ae6779a6fcf992f Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:51:27 +0200 Subject: [PATCH 18/23] Update delivery.md --- modes/delivery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/delivery.md b/modes/delivery.md index 3b717f2b..3d79fa08 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -100,7 +100,7 @@ Valid delivery vehicle states are - `removed` - `available` - `non_operational` -- `reserved` (necessary ?) +- `reserved` - `on_trip` - `stopped` - `elsewhere` From 1e07790fbda7ace92251c521ffac1d3118b20a54 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 14 Sep 2022 11:08:12 +0200 Subject: [PATCH 19/23] Update README.md --- agency/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/agency/README.md b/agency/README.md index 370bd560..2f46106c 100644 --- a/agency/README.md +++ b/agency/README.md @@ -372,6 +372,7 @@ The Trips endpoint serves two purposes: | Field | Type | Required/Optional | Field Description | |-------------------------------|--------------------------------|------------------------| ----------------- | | trip_id | UUID | Required | UUID for the trip this payload pertains to | +| journey_id | UUID | Optional | A unique ID for associating collections of trips | | trip_type | Enum | Optional | The type of the trip | | trip_attributes | `{ [String]: String}` | Optional | Trip attributes, given as mode-specific key-value pairs | | provider_id | UUID | Required | Provider which managed this trip | From 501c01d00b0e62e7503ba854fa596c1fee5905ff Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Wed, 14 Sep 2022 11:22:08 +0200 Subject: [PATCH 20/23] Update delivery.md --- modes/delivery.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modes/delivery.md b/modes/delivery.md index bf80559f..7154208a 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -211,8 +211,7 @@ This is the list of `vehicle_state` and `event_type` pairings that constitute th | `unknown` | `reserved` | `reserved` | `comms_restored` | The vehicle has come back into comms while reserved by a customer | | `unknown` | `stopped` | `stopped` | `comms_restored` | The vehicle has come back into comms while stopped | | `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has come to pick up the order at the restaurant | -| `on_trip` |`available` | N/A | `order_drop_off` | The vehicle is at the customer's place and is waiting for them | -| `on_trip` | `stopped` | `stopped` | `order_pick_up` | The vehicle has come to pick up the order at the restaurant | +| `on_trip` |`stopped` | N/A | `order_drop_off` | The vehicle is at the customer's place and is waiting for them | From 6d55c8462f464cbdb2260568c9ad7315fb24371c Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Thu, 15 Sep 2022 15:12:40 +0200 Subject: [PATCH 21/23] Update delivery.md --- modes/delivery.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modes/delivery.md b/modes/delivery.md index 7154208a..d5fce461 100644 --- a/modes/delivery.md +++ b/modes/delivery.md @@ -41,7 +41,19 @@ The `trip_type` field is used to describe the trip itself. It can be 'delivery' ### Trip Attributes -The `trip_attributes` array can be used with in delivery. +The `trip_attributes` array **may** have the following key value pairs: + +- `app_name` (text, optional): name of the app used to reserve the trip which could be provider's app or 3rd party app +- `passenger_count` (integer, required): unique count of passengers transported during trip duration +- `request_time` (timestamp, optional): when the passenger requested the trip + +### Fare Attributes + +The `fare_attributes` array **may** have the following key value pairs: + +- `payment_type` (enumerated, optional): `cash`, `mobile`, `voucher`, `paratransit`, `no payment`, `test` +- `price` (currency, optional): -Total price of the order + ### Vehicle Attributes From 0a719f3c9c2e1360366c269874195ea9e35906d1 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Thu, 15 Sep 2022 15:43:49 +0200 Subject: [PATCH 22/23] Update vehicle_states.md --- modes/vehicle_states.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modes/vehicle_states.md b/modes/vehicle_states.md index 41d406e2..2ed1259d 100644 --- a/modes/vehicle_states.md +++ b/modes/vehicle_states.md @@ -9,7 +9,7 @@ This file defines all possible `vehicle_state`s that can be used in state machin | `non_operational` | yes | Not available for hire. Examples include: vehicle has low battery, or currently outside legal operating hours. | | `reserved` | yes | Reserved via Provider's app. A scooter waiting to be picked up by a rider, a taxi en route to a pickup. | | `on_trip` | yes | In a trip. For micromobility, in possession of renter. May or may not be in motion. | -| `stopped` | yes | In a trip, but stopped for some purpose, e.g. to pick up or drop off passengers, or if a driver is on break. | +| `stopped` | yes | In a trip, but stopped for some purpose, e.g. to pick up or drop off passengers or packages, or if a driver is on break. | | `elsewhere` | no | Outside of regulator's jurisdiction, and thus not subject to cap-counts or other regulations. Example: a vehicle that started a trip in L.A. has transitioned to Santa Monica. | | `unknown` | unknown | Provider has lost contact with the vehicle and its disposition is unknown. Examples include: scooter taken into a private residence, bike thrown in river. | From 34cbc6aaaa1d18de8514caa84c4d68c080b672a6 Mon Sep 17 00:00:00 2001 From: Tristan Charreton <67949048+tristan-charreton@users.noreply.github.com> Date: Thu, 15 Sep 2022 16:16:23 +0200 Subject: [PATCH 23/23] Update README.md --- agency/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agency/README.md b/agency/README.md index 2f46106c..984ce50a 100644 --- a/agency/README.md +++ b/agency/README.md @@ -373,7 +373,7 @@ The Trips endpoint serves two purposes: |-------------------------------|--------------------------------|------------------------| ----------------- | | trip_id | UUID | Required | UUID for the trip this payload pertains to | | journey_id | UUID | Optional | A unique ID for associating collections of trips | -| trip_type | Enum | Optional | The type of the trip | +| trip_type | Enum | Optional | The [trip type](/modes#trip-type) describing the purpose of a trip segment | | trip_attributes | `{ [String]: String}` | Optional | Trip attributes, given as mode-specific key-value pairs | | provider_id | UUID | Required | Provider which managed this trip | | reservation_method | Enum | Required | Way the customer created their reservation, see [reservation-method](#reservation-method) |