diff --git a/gbfs.md b/gbfs.md index 9066877f..9c6141b5 100644 --- a/gbfs.md +++ b/gbfs.md @@ -391,7 +391,7 @@ Field Name | REQUIRED | Type | Defines "rental_apps": { "android": { "discovery_uri": "com.example.android://", - "store_uri": "https://play.google.com/store/apps/details?id=com.example.android", + "store_uri": "https://play.google.com/store/apps/details?id=com.example.android" }, "ios": { "store_uri": "https://apps.apple.com/app/apple-store/id123456789", @@ -418,13 +418,13 @@ Field Name | REQUIRED | Type | Defines ---|---|---|--- `vehicle_types` | Yes | Array | Array that contains one object per vehicle type in the system as defined below. \- `vehicle_type_id` | Yes | ID | Unique identifier of a vehicle type. See [Field Types](#field-types) above for ID field requirements. -\- `form_factor` | Yes | Enum | The vehicle's general form factor.

Current valid values are:
+\- `form_factor` | Yes | Enum | The vehicle's general form factor.

Current valid values are:
\- `rider_capacity`
*(added in v2.3-RC2)* | OPTIONAL | Non-negative integer | The number of riders (driver included) the vehicle can legally accommodate. \- `cargo_volume_capacity`
*(added in v2.3-RC2)* | OPTIONAL | Non-negative integer | Cargo volume available in the vehicle, expressed in liters. For cars, it corresponds to the space between the boot floor, including the storage under the hatch, to the rear shelf in the trunk. \- `cargo_load_capacity`
*(added in v2.3-RC2)* | OPTIONAL | Non-negative integer | The capacity of the vehicle cargo space (excluding passengers), expressed in kilograms. -\- `propulsion_type` | Yes | Enum | The primary propulsion type of the vehicle.

Current valid values are:
This field was inspired by, but differs from the propulsion types field described in the [Open Mobility Foundation Mobility Data Specification](https://github.com/openmobilityfoundation/mobility-data-specification/blob/main/general-information.md#propulsion-types). +\- `propulsion_type` | Yes | Enum | The primary propulsion type of the vehicle.

Current valid values are:
This field was inspired by, but differs from the propulsion types field described in the [Open Mobility Foundation Mobility Data Specification](https://github.com/openmobilityfoundation/mobility-data-specification/blob/main/general-information.md#propulsion-types). \- `eco_label`
*(added in v2.3-RC2)* | OPTIONAL | Array | Vehicle air quality certificate. Official anti-pollution certificate, based on the information on the vehicle's registration certificate, attesting to its level of pollutant emissions based on a defined standard. In Europe, for example, it is the European emission standard. The aim of this measure is to encourage the use of the least polluting vehicles by allowing them to drive during pollution peaks or in low emission zones.

Each element in the array is an object with the keys below. - \-  `country_code`
*(added in v2.3-RC2)*| Conditionally REQUIRED | Country code | REQUIRED if `eco_label` is defined. Country where the `eco_sticker` applies. + \-  `country_code`
*(added in v2.3-RC2)* | Conditionally REQUIRED | Country code | REQUIRED if `eco_label` is defined. Country where the `eco_sticker` applies.  \-  `eco_sticker`
*(added in v2.3-RC2)* | Conditionally REQUIRED | String | REQUIRED if `eco_label` is defined. Name of the eco label. The name must be written in lowercase, separated by an underscore.

Example of `eco_sticker` in Europe : \- `max_range_meters` | Conditionally REQUIRED | Non-negative float | REQUIRED if the vehicle has a motor (as indicated by having a value other than `human` in the `propulsion_type` field). This represents the furthest distance in meters that the vehicle can travel without recharging or refueling when it has the maximum amount of energy potential (for example, a full battery or full tank of gas). \- `name` | OPTIONAL | String | The public name of this vehicle type. @@ -442,8 +442,8 @@ Field Name | REQUIRED | Type | Defines \- `vehicle_assets`
*(added in v2.3-RC)*| OPTIONAL | Object | An object where each key defines one of the items listed below.   \- `icon_url`
*(added in v2.3-RC)*| Conditionally REQUIRED | URL | REQUIRED if `vehicle_assets` is defined. A fully qualified URL pointing to the location of a graphic icon file that MAY be used to represent this vehicle type on maps and in other applications. File MUST be in SVG V1.1 format and MUST be either square or round.   \- `icon_url_dark`
*(added in v2.3-RC)*| OPTIONAL | URL | A fully qualified URL pointing to the location of a graphic icon file to be used to represent this vehicle type when in dark mode on maps and in other applications. File MUST be in SVG V1.1 format and MUST be either square or round. -  \- `icon_last_modified`
*(added in v2.3-RC)*| Conditionally REQUIRED | Date | REQUIRED if `icon_url` and/or `icon_url_dark` is defined. Date that indicates the last time any included vehicle icon images were modified or updated. -\- `default_pricing_plan_id`
*(added in v2.3-RC)*| Conditionally REQUIRED | ID | REQUIRED if both `system_pricing_plans.json` and `vehicle_types.json` are defined. A `plan_id`, as defined in `system_pricing_plans.json`, that identifies a default pricing plan for this vehicle to be used by trip planning applications for purposes of calculating the cost of a single trip using this vehicle type. This default pricing plan is superseded by `pricing_plan_id` when `pricing_plan_id` is defined in `free_bike_status.json` Publishers SHOULD define `default_pricing_plan_id` first and then override it using `pricing_plan_id` in `free_bike_status.json` when necessary. +  \- `icon_last_modified`
*(added in v2.3-RC)*| Conditionally REQUIRED | Date | REQUIRED if `vehicle_assets` is defined. Date that indicates the last time any included vehicle icon images were modified or updated. +\- `default_pricing_plan_id`
*(added in v2.3-RC)*| OPTIONAL | ID | A `plan_id`, as defined in `system_pricing_plans.json`, that identifies a default pricing plan for this vehicle to be used by trip planning applications for purposes of calculating the cost of a single trip using this vehicle type. This default pricing plan is superseded by `pricing_plan_id` when `pricing_plan_id` is defined in `free_bike_status.json` Publishers SHOULD define `default_pricing_plan_id` first and then override it using `pricing_plan_id` in `free_bike_status.json` when necessary.
*Note: This field will become Conditionally REQUIRED in the next MAJOR version.* \- `pricing_plan_ids`
*(added in v2.3-RC)* | OPTIONAL | Array | Array of all pricing plan IDs, as defined in `system_pricing_plans.json`, that are applied to this vehicle type.

This array SHOULD be published when there are multiple pricing plans defined in `system_pricing_plans.json` that apply to a single vehicle type. ##### Example: @@ -462,10 +462,7 @@ Field Name | REQUIRED | Type | Defines "name": "Example Basic Bike", "wheel_count": 2, "default_reserve_time": 30, - "return_type": [ - "any_station", - "free_floating" - ], + "return_constraint": "any_station", "vehicle_assets": { "icon_url": "https://www.example.com/assets/icon_bicycle.svg", "icon_url_dark": "https://www.example.com/assets/icon_bicycle_dark.svg", @@ -485,9 +482,7 @@ Field Name | REQUIRED | Type | Defines "name": "Example Cargo Bike", "wheel_count": 3, "default_reserve_time": 30, - "return_type": [ - "roundtrip_station" - ], + "return_constraint": "roundtrip_station", "vehicle_assets": { "icon_url": "https://www.example.com/assets/icon_cargobicycle.svg", "icon_url_dark": "https://www.example.com/assets/icon_cargobicycle_dark.svg", @@ -510,9 +505,7 @@ Field Name | REQUIRED | Type | Defines "rated_power": 350, "default_reserve_time": 30, "max_range_meters": 12345, - "return_type": [ - "free_floating" - ], + "return_constraint": "free_floating", "vehicle_assets": { "icon_url": "https://www.example.com/assets/icon_escooter.svg", "icon_url_dark": "https://www.example.com/assets/icon_escooter_dark.svg", @@ -540,9 +533,7 @@ Field Name | REQUIRED | Type | Defines "wheel_count": 4, "default_reserve_time": 0, "max_range_meters": 523992, - "return_type": [ - "roundtrip_station" - ], + "return_constraint": "roundtrip_station", "vehicle_accessories": [ "doors_4", "automatic", @@ -1394,7 +1385,7 @@ Note that the Android URI and iOS Universal Link URLs do not necessarily use the "rental_apps": { "android": { "discovery_uri": "com.example.android://", - "store_uri": "https://play.google.com/store/apps/details?id=com.example.android", + "store_uri": "https://play.google.com/store/apps/details?id=com.example.android" }, "ios": { "store_uri": "https://apps.apple.com/app/apple-store/id123456789",