changedInput schema / $defs / BicycleSpec / properties / use_roads / description
Previous value: -"Willingness to ride roads alongside motor traffic, 0.0–1.0\n(0.0 = prefer cycleways and quiet streets — the quiet-ride slider)."New value: +"Willingness to ride roads alongside motor traffic, 0.0–1.0\n(0.0 = prefer cycleways and quiet streets, the quiet-ride slider)."
changedInput schema / $defs / EmissionsSpec / properties / euro_standard / description
Previous value: -"Its Euro emission standard, 1–6. Heavy-duty approvals are written\nin Roman numerals (Euro VI); declare Euro VI as `6`. Required for\nany combustion fuel — without it no zone can be resolved, and a\nhalf-declared vehicle is indistinguishable from an undeclared one.\nOptional only for `electric` or `hydrogen`."New value: +"Its Euro emission standard, 1–6. Heavy-duty approvals are written\nin Roman numerals (Euro VI); declare Euro VI as `6`. Required for\nany combustion fuel, without it no zone can be resolved, and a\nhalf-declared vehicle is indistinguishable from an undeclared one.\nOptional only for `electric` or `hydrogen`."
changedInput schema / $defs / ExcludeFeature / description
Previous value: -"A road feature to exclude outright. A hard exclusion can leave a request with no path at all — that is the honest answer, not a failure — and it depends on the routing engine's own hard-exclusion setting, which nothing here can read."New value: +"A road feature to exclude outright. A hard exclusion can leave a request with no path at all (that is the honest answer, not a failure) and it depends on the routing engine's own hard-exclusion setting, which nothing here can read."
changedInput schema / $defs / PedestrianSpec / properties / use_lit / description
Previous value: -"Preference for lit streets, 0.0–1.0 (1.0 = prefer lit paths as\nstrongly as possible — the \"walk me home on lit streets\" option).\nUnlit ways are still used when no lit alternative exists."New value: +"Preference for lit streets, 0.0–1.0 (1.0 = prefer lit paths as\nstrongly as possible, the \"walk me home on lit streets\" option).\nUnlit ways are still used when no lit alternative exists."
changedInput schema / $defs / PreferredSideKind / oneOf
Previous value: -[
- {
- "const": "same",
- "description": "The side the location itself projects to — the kerb, resolved\nagainst the locale's driving side (the left kerb in the UK, the\nright in Germany).",
- "type": "string"
- },
- {
- "const": "opposite",
- "description": "The far side of the road from the location.",
- "type": "string"
- },
- {
- "const": "either",
- "description": "No side preference.",
- "type": "string"
- },
- {
- "const": "curb",
- "description": "Alias for `same`, from the OSRM/Mapbox `approaches` vocabulary.",
- "type": "string"
- },
- {
- "const": "unrestricted",
- "description": "Alias for `either`, from the OSRM/Mapbox `approaches` vocabulary.",
- "type": "string"
- }
-]New value: +[
+ {
+ "const": "same",
+ "description": "The side the location itself projects to, the kerb, resolved\nagainst the locale's driving side (the left kerb in the UK, the\nright in Germany).",
+ "type": "string"
+ },
+ {
+ "const": "opposite",
+ "description": "The far side of the road from the location.",
+ "type": "string"
+ },
+ {
+ "const": "either",
+ "description": "No side preference.",
+ "type": "string"
+ },
+ {
+ "const": "curb",
+ "description": "Alias for `same`, from the OSRM/Mapbox `approaches` vocabulary.",
+ "type": "string"
+ },
+ {
+ "const": "unrestricted",
+ "description": "Alias for `either`, from the OSRM/Mapbox `approaches` vocabulary.",
+ "type": "string"
+ }
+]
changedInput schema / $defs / RouteLocation / description
Previous value: -"One location of a `route` request: a coordinate, plus the optional\nkerbside approach for arriving at it.\n\nA bare `{lat, lon}` is still a complete location — every kerbside field\nis optional and omitting all of them is exactly the request that was\nmade before they existed."New value: +"One location of a `route` request: a coordinate, plus the optional\nkerbside approach for arriving at it.\n\nA bare `{lat, lon}` is still a complete location, every kerbside field\nis optional and omitting all of them is exactly the request that was\nmade before they existed."
changedInput schema / $defs / RouteLocation / properties / preferred_side / description
Previous value: -"Which side of the street to arrive on (or depart from). `same` (or\n`curb`) puts the vehicle on the door's side of the road, resolved\nagainst the locale's driving side. Two honest limits: this is a\n**snapping preference**, not a manoeuvre guarantee — the engine\nprefers an edge on that side, it does not promise the driver never\ncrosses — and it needs a coordinate genuinely offset from the road\ncentreline, because a point on the centreline has no side."New value: +"Which side of the street to arrive on (or depart from). `same` (or\n`curb`) puts the vehicle on the door's side of the road, resolved\nagainst the locale's driving side. Two honest limits: this is a\n**snapping preference**, not a manoeuvre guarantee, the engine\nprefers an edge on that side, it does not promise the driver never\ncrosses, and it needs a coordinate genuinely offset from the road\ncentreline, because a point on the centreline has no side."
changedInput schema / $defs / TruckSpec / properties / tunnel_code / description
Previous value: -"ADR 8.6.4 tunnel restriction code of the load, e.g. \"B\", \"C5000D\",\n\"B/D\", or \"(—)\"/\"none\" for explicitly unrestricted. Leave unset if\nunknown: a hazmat load without a code is conservatively treated as\ncode B (allowed only through category-A tunnels)."New value: +"ADR 8.6.4 tunnel restriction code of the load, e.g. \"B\", \"C5000D\",\n\"B/D\", or \"(-)\"/\"none\" for explicitly unrestricted. Leave unset if\nunknown: a hazmat load without a code is conservatively treated as\ncode B (allowed only through category-A tunnels)."
changedInput schema / properties / avoid / description
Previous value: -"Road features to avoid as a PREFERENCE. Rendered as the costing's\nwillingness factor set to zero — a thumb on the scale, not a ban.\nThe engine's own reference is explicit that a value of zero is not\nguaranteed to avoid the feature entirely, and it does not: asking\nto avoid tolls across the Dartford Crossing returns the same tolled\nroute, because the untolled alternative is fifty kilometres\nfurther. Use `exclude` when you mean a ban."New value: +"Road features to avoid as a PREFERENCE. Rendered as the costing's\nwillingness factor set to zero, a thumb on the scale, not a ban.\nThe engine's own reference is explicit that a value of zero is not\nguaranteed to avoid the feature entirely, and it does not: asking\nto avoid tolls across the Dartford Crossing returns the same tolled\nroute, because the untolled alternative is fifty kilometres\nfurther. Use `exclude` when you mean a ban."
changedInput schema / properties / exclude / description
Previous value: -"Road features to exclude outright, rendered as the costing's hard\nexclusion flag. Two things follow from that and both matter: a hard\nexclusion can return NO ROUTE rather than a detour (excluding\ntunnels on a Rotherhithe crossing has no answer), and the flags\ndepend on the routing engine's `allow_hard_exclusions` setting,\nwhich the engine does not expose and nothing here can read — so\nthis is never promised, only requested."New value: +"Road features to exclude outright, rendered as the costing's hard\nexclusion flag. Two things follow from that and both matter: a hard\nexclusion can return NO ROUTE rather than a detour (excluding\ntunnels on a Rotherhithe crossing has no answer), and the flags\ndepend on the routing engine's `allow_hard_exclusions` setting,\nwhich the engine does not expose and nothing here can read, so\nthis is never promised, only requested."
changedInput schema / properties / exclude_polygons / description
Previous value: -"Areas to avoid — scenario analysis (\"close this bridge and\nre-route\"): an array of polygons, each an array of `[lon, lat]`\npairs forming one exterior ring (GeoJSON-style, longitude FIRST).\nRoads intersecting any ring are excluded from the search. Applies\nto the Valhalla engine; unsupported on the GraphHopper engine,\nwhere it is ignored."New value: +"Areas to avoid, scenario analysis (\"close this bridge and\nre-route\"): an array of polygons, each an array of `[lon, lat]`\npairs forming one exterior ring (GeoJSON-style, longitude FIRST).\nRoads intersecting any ring are excluded from the search. Applies\nto the Valhalla engine; unsupported on the GraphHopper engine,\nwhere it is ignored."
changedInput schema / properties / landmarks / description
Previous value: -"Name landmarks in the turn instructions (default false): each\nmanoeuvre that passes a recognisable place — a petrol station, a\nsupermarket, a household-name chain — gains a\n`landmark_instruction` like \"Turn right just after the Shell\ngarage\" beside the engine's own street-name instruction, which is\nnever replaced. Nothing is named unless it is recognisable from the\nroad, within 40 m of the junction and not tagged as closed, so many\nroutes come back with none: a wrong landmark is worse than no\nlandmark. Needs the MapMap gateway, whose place index does the\nlookup."New value: +"Name landmarks in the turn instructions (default false): each\nmanoeuvre that passes a recognisable place, a petrol station, a\nsupermarket, a household-name chain, gains a\n`landmark_instruction` like \"Turn right just after the Shell\ngarage\" beside the engine's own street-name instruction, which is\nnever replaced. Nothing is named unless it is recognisable from the\nroad, within 40 m of the junction and not tagged as closed, so many\nroutes come back with none: a wrong landmark is worse than no\nlandmark. Needs the MapMap gateway, whose place index does the\nlookup."
changedInput schema / properties / rationale / description
Previous value: -"Explain the route (default false): re-routes with each declared\ntruck constraint (truck costing) or avoidance-side routing\npreference (auto, bicycle, pedestrian, motor_scooter) relaxed and\nreports the ones that actually changed the route as\n`rationale.avoided[]`. Opt-in — it costs up to 1 + N extra routing\ncalls, one per declared field plus one combined probe, and it is\nbilled for the ones it actually makes: at most 8 in total,\ntypically fewer, and 1 when there is nothing to probe. Against the\nhosted gateway each probe is its own metered route call, which is\nexactly what `POST /route` with `rationale: true` charges for its\nown fan-out, so the two surfaces price the same explanation the\nsame way."New value: +"Explain the route (default false): re-routes with each declared\ntruck constraint (truck costing) or avoidance-side routing\npreference (auto, bicycle, pedestrian, motor_scooter) relaxed and\nreports the ones that actually changed the route as\n`rationale.avoided[]`. Opt-in, it costs up to 1 + N extra routing\ncalls, one per declared field plus one combined probe, and it is\nbilled for the ones it actually makes: at most 8 in total,\ntypically fewer, and 1 when there is nothing to probe. Against the\nhosted gateway each probe is its own metered route call, which is\nexactly what `POST /route` with `rationale: true` charges for its\nown fan-out, so the two surfaces price the same explanation the\nsame way."
changedOutput schema / $defs / AppliedAdr / description
Previous value: -"The ADR costing that was merged into a truck route request.\n\nEvery field here describes the **request**: the declared load and the\ncosting options built from it. Nothing here is an assertion about the\nreturned geometry — see [`TunnelEnforcement`]."New value: +"The ADR costing that was merged into a truck route request.\n\nEvery field here describes the **request**: the declared load and the\ncosting options built from it. Nothing here is an assertion about the\nreturned geometry, see [`TunnelEnforcement`]."
changedOutput schema / $defs / AppliedAdr / properties / forbidden_tunnel_categories / description
Previous value: -"ADR tunnel categories **the vehicle** is forbidden from under the\nworst-case reading of ADR 8.6.4 (conditional clauses assumed to\napply). Empty when unrestricted. This is not a claim that the\nreturned route contains no tunnel of these categories — read\n[`AppliedAdr::tunnel_enforcement`] for what was actually applied."New value: +"ADR tunnel categories **the vehicle** is forbidden from under the\nworst-case reading of ADR 8.6.4 (conditional clauses assumed to\napply). Empty when unrestricted. This is not a claim that the\nreturned route contains no tunnel of these categories, read\n[`AppliedAdr::tunnel_enforcement`] for what was actually applied."
changedOutput schema / $defs / AppliedAdr / properties / tunnel_code / description
Previous value: -"Canonical ADR tunnel restriction code applied (\"B/D\", \"(—)\", …),\nor null when no code was declared."New value: +"Canonical ADR tunnel restriction code applied (\"B/D\", \"(-)\", …),\nor null when no code was declared."
changedOutput schema / $defs / AppliedAvoidance / properties / costing_option_fields / description
Previous value: -"The engine costing-option fields these words became, e.g.\n`{\"use_tolls\": 0.0, \"exclude_ferries\": true}`. This is the whole of\nwhat was sent — there is no hidden second mechanism."New value: +"The engine costing-option fields these words became, e.g.\n`{\"use_tolls\": 0.0, \"exclude_ferries\": true}`. This is the whole of\nwhat was sent, there is no hidden second mechanism."
changedOutput schema / $defs / AvoidedConstraint / properties / value / description
Previous value: -"The declared value for the field (null for \"combined\"). NOTE: for\ntruck this is the vehicle's dimension, not the infrastructure\nlimit — the physical restriction is not identified."New value: +"The declared value for the field (null for \"combined\"). NOTE: for\ntruck this is the vehicle's dimension, not the infrastructure\nlimit, the physical restriction is not identified."
changedOutput schema / $defs / ManeuverOut / properties / landmark_instruction / description
Previous value: -"The same manoeuvre anchored to a recognisable place, e.g. \"Turn\nright just after the Shell garage\" — present only when the request\nset `landmarks: true` and a place near the junction cleared the\nsalience bar. Prefer reading this aloud when it is there: it is how\na passenger would give the direction. `instruction` is always the\nengine's own and is never replaced."New value: +"The same manoeuvre anchored to a recognisable place, e.g. \"Turn\nright just after the Shell garage\", present only when the request\nset `landmarks: true` and a place near the junction cleared the\nsalience bar. Prefer reading this aloud when it is there: it is how\na passenger would give the direction. `instruction` is always the\nengine's own and is never replaced."
changedOutput schema / $defs / RouteRationale / description
Previous value: -"Why the route goes the way it does — the `route` tool's opt-in\nrationale block, computed for truck, auto, bicycle, pedestrian and\nmotor_scooter costings. **Method honesty:** the routing engine exposes\nno exclusion set, so entries are derived by re-routing with each\ndeclared constraint or preference relaxed\n(`basis: \"route_divergence\"`); this proves a field was binding and\nwhere, but never names the physical restriction or feature (the\nspecific signed bridge, hill or unlit street). No live traffic or\nincident data enters the comparison and no delay is ever estimated\nfrom one — the engine has no live speed field."New value: +"Why the route goes the way it does, the `route` tool's opt-in\nrationale block, computed for truck, auto, bicycle, pedestrian and\nmotor_scooter costings. **Method honesty:** the routing engine exposes\nno exclusion set, so entries are derived by re-routing with each\ndeclared constraint or preference relaxed\n(`basis: \"route_divergence\"`); this proves a field was binding and\nwhere, but never names the physical restriction or feature (the\nspecific signed bridge, hill or unlit street). No live traffic or\nincident data enters the comparison and no delay is ever estimated\nfrom one, the engine has no live speed field."
changedOutput schema / $defs / TunnelEnforcement / description
Previous value: -"How the declared ADR tunnel code reaches the routing engine, and what a\nreturned route therefore does — and does not — prove.\n\nThis block exists because [`AppliedAdr::forbidden_tunnel_categories`] is\na statement about the **load** (ADR 8.6.4 applied to the declared code),\nand on its own it reads like a statement about the **route**. It is not\none. The engine excludes a road only where the routing graph records an\nADR tunnel category for it, and that category is derived from OSM\n`hazmat:*` tagging. Coverage is therefore uneven: a corridor with no\nsuch tagging is not excluded and looks, in the response, exactly like a\ncorridor that was checked and cleared.\n\nThe field is emitted on every `applied_adr`, so a caller can never\nreceive the categories without the boundary that qualifies them."New value: +"How the declared ADR tunnel code reaches the routing engine, and what a\nreturned route therefore does (and does not) prove.\n\nThis block exists because [`AppliedAdr::forbidden_tunnel_categories`] is\na statement about the **load** (ADR 8.6.4 applied to the declared code),\nand on its own it reads like a statement about the **route**. It is not\none. The engine excludes a road only where the routing graph records an\nADR tunnel category for it, and that category is derived from OSM\n`hazmat:*` tagging. Coverage is therefore uneven: a corridor with no\nsuch tagging is not excluded and looks, in the response, exactly like a\ncorridor that was checked and cleared.\n\nThe field is emitted on every `applied_adr`, so a caller can never\nreceive the categories without the boundary that qualifies them."
changedOutput schema / properties / zones / description
Previous value: -"Clean-air / low-emission zones this route enters and what the\ndeclared vehicle pays in each, with the publishing authority cited\n(only when `emissions` was declared). Passed through verbatim from\nthe gateway's curated dataset — the same figures `GET /v1/zones`\npublishes, so a charge can always be audited back to its source."New value: +"Clean-air / low-emission zones this route enters and what the\ndeclared vehicle pays in each, with the publishing authority cited\n(only when `emissions` was declared). Passed through verbatim from\nthe gateway's curated dataset, the same figures `GET /v1/zones`\npublishes, so a charge can always be audited back to its source."