RoutingRequest Data Type

A trip planning request. Some parameters may not be honored by the trip planner for some or all itineraries. For example, maxWalkDistance may be relaxed if the alternative is to not provide a route. All defaults should be specified here in the RoutingRequest, NOT as annotations on query parameters in web services that create RoutingRequests. This establishes a priority chain for default values: RoutingRequest field initializers, then JSON router config, then query parameters.

Implemented Interfaces
Cloneable, Serializable
Properties
name data type constraints description
parameters map of string   The complete list of incoming query parameters.
from GenericLocation   The start location
to GenericLocation   The end location
oneToMany boolean required If true, the tree will be allowed to grow in all directions, rather than being directed toward a single target. This parameter only apply to access/egress AStar searches, not transit searches in Raptor.
intermediatePlaces array of GenericLocation   An ordered list of intermediate locations to be visited.
maxDirectStreetDurationSeconds number required This is the maximum duration in seconds for a direct street search. This is a performance limit and should therefore be set high. Results close to the limit are not guaranteed to be optimal. Use filters to limit what is presented to the client.
maxAccessEgressDurationSeconds number required This is the maximum duration in seconds for access/egress street searches. This is a performance limit and should therefore be set high. Results close to the limit are not guaranteed to be optimal. Use filters to limit what is presented to the client.
maxAccessEgressDurationSecondsForMode map of number   Override the settings in maxAccessEgressDurationSeconds for specific street modes. This is done because some street modes searches are much more resource intensive than others.
modes RequestModes   The access/egress/direct/transit modes allowed for this main request. The parameter "streetSubRequestModes" below is used for a single A Star sub request. // TODO OTP2 Street routing requests should eventually be split into its own request class.
streetSubRequestModes TraverseModeSet   The set of TraverseModes allowed when doing creating sub requests and doing street routing. // TODO OTP2 Street routing requests should eventually be split into its own request class.
bicycleOptimizeType BicycleOptimizeType   The set of characteristics that the user wants to optimize for -- defaults to SAFE.
searchWindow number   This is the time/duration in seconds from the earliest-departure-time(EDT) to latest-departure-time(LDT). In case of a reverse search it will be the time from earliest to latest arrival time (LAT - EAT).

All optimal travels that depart within the search window is guarantied to be found.

This is sometimes referred to as the Range Raptor Search Window - but could be used in a none Transit search as well; Hence this is named search-window and not raptor-search-window. Do not confuse this with the travel-window, which is the time between EDT to LAT.

Use null to unset, and Duration#ZERO to do one Raptor iteration. The value is dynamically assigned a suitable value, if not set. In a small to medium size operation you may use a fixed value, like 60 minutes. If you have a mixture of high frequency cities routes and infrequent long distant journeys, the best option is normally to use the dynamic auto assignment.

There is no need to set this when going to the next/previous page any more.

maxJourneyDuration number   The expected maximum time a journey can last across all possible journeys for the current deployment. Normally you would just do an estimate and add enough slack, so you are sure that there is no journeys that falls outside this window. The parameter is used find all possible dates for the journey and then search only the services which run on those dates. The duration must include access, egress, wait-time and transit time for the whole journey. It should also take low frequency days/periods like holidays into account. In other words, pick the two points within your area that has the worst connection and then try to travel on the worst possible day, and find the maximum journey duration. Using a value that is too high has the effect of including more patterns in the search, hence, making it a bit slower. Recommended values would be from 12 hours(small town/city), 1 day (region) to 2 days (country like Norway).
pageCursor PageCursor   Use the cursor to go to the next or previous "page" of trips. You should pass in the original request as is.

The next page of itineraries will depart after the current results and the previous page of itineraries will depart before the current results.

The paging does not support timeTableView=false and arriveBy=true, this will result in none pareto-optimal results.

timetableView boolean required Search for the best trip options within a time window. If true two itineraries are considered optimal if one is better on arrival time(earliest wins) and the other is better on departure time(latest wins).

In combination with arriveBy this parameter cover the following 3 use cases:

  • The traveler want to find the best alternative within a time window. Set timetableView=true and arriveBy=false. This is the default, and if the intention of the traveler is unknown, this gives the best result. This use-case includes all itineraries in the two next use-cases. This option also work well with paging. Setting the arriveBy=false, covers the same use-case, but the input time is interpreted as latest-arrival-time, and not earliest-departure-time.
  • The traveler want to find the best alternative with departure after a specific time. For example: I am at the station now and want to get home as quickly as possible. Set timetableView=true and arriveBy=false. Do not support paging.
  • Traveler want to find the best alternative with arrival before specific time. For example going to a meeting. Set timetableView=true and arriveBy=false. Do not support paging.
Default: true
arriveBy boolean required Whether the trip should depart at dateTime (false, the default), or arrive at dateTime.
wheelchairAccessible boolean required Whether the trip must be wheelchair accessible.
numItineraries number required The maximum number of itineraries to return. In OTP1 this parameter terminates the search, but in OTP2 it crops the list of itineraries AFTER the search is complete. This parameter is a post search filter function. A side effect from reducing the result is that OTP2 cannot guarantee to find all pareto-optimal itineraries when paging. Also, a large search-window and a small numItineraries waste computer CPU calculation time.

The default value is 50. This is a reasonably high threshold to prevent large amount of data to be returned. Consider tuning the search-window instead of setting this to a small value.

maxWheelchairSlope number required The maximum slope of streets for wheelchair trips.
showIntermediateStops boolean required Whether the planner should return intermediate stops lists for transit legs.
walkSpeed number required max walk/bike speed along streets, in meters per second
bikeSpeed number required
bikeWalkingSpeed number required
carSpeed number required
locale string  
transferCost number required An extra penalty added on transfers (i.e. all boardings except the first one). Not to be confused with bikeBoardCost and walkBoardCost, which are the cost of boarding a vehicle with and without a bicycle. The boardCosts are used to model the 'usual' perceived cost of using a transit vehicle, and the transferCost is used when a user requests even less transfers. In the latter case, we don't actually optimize for fewest transfers, as this can lead to absurd results. Consider a trip in New York from Grand Army Plaza (the one in Brooklyn) to Kalustyan's at noon. The true lowest transfers route is to wait until midnight, when the 4 train runs local the whole way. The actual fastest route is the 2/3 to the 4/5 at Nevins to the 6 at Union Square, which takes half an hour. Even someone optimizing for fewest transfers doesn't want to wait until midnight. Maybe they would be willing to walk to 7th Ave and take the Q to Union Square, then transfer to the 6. If this takes less than optimize_transfer_penalty seconds, then that's what we'll return.
nonpreferredTransferCost number required Penalty for using a non-preferred transfer
transferOptimization TransferOptimizationParameters   Configure the transfer optimization
walkReluctance number required A multiplier for how bad walking is, compared to being in transit for equal lengths of time. Defaults to 2. Empirically, values between 10 and 20 seem to correspond well to the concept of not wanting to walk too much without asking for totally ridiculous itineraries, but this observation should in no way be taken as scientific or definitive. Your mileage may vary.
bikeWalkingReluctance number required
bikeReluctance number required
carReluctance number required
stairsTimeFactor number required How much more time does it take to walk a flight of stairs compared to walking a similar horizontal length Default value is based on: Fujiyama, T., & Tyler, N. (2010). Predicting the walking speed of pedestrians on stairs. Transportation Planning and Technology, 33(2), 177–202.
stairsReluctance number required Used instead of walk reluctance for stairs
turnReluctance number required Multiplicative factor on expected turning time.
elevatorBoardTime number required How long does it take to get an elevator, on average (actually, it probably should be a bit *more* than average, to prevent optimistic trips)? Setting it to "seems like forever," while accurate, will probably prevent OTP from working correctly.
elevatorBoardCost number required What is the cost of boarding an elevator?
elevatorHopTime number required How long does it take to advance one floor on an elevator?
elevatorHopCost number required What is the cost of travelling one floor on an elevator?
bikeSwitchTime number required Time to get on and off your own bike
bikeSwitchCost number required Cost of getting on and off your own bike
vehicleRentalPickupTime number required Time to rent a vehicle
vehicleRentalPickupCost number required Cost of renting a vehicle. The cost is a bit more than actual time to model the associated cost and trouble.
vehicleRentalDropoffTime number required Time to drop-off a rented vehicle
vehicleRentalDropoffCost number required Cost of dropping-off a rented vehicle
allowedVehicleRentalNetworks array of string   The vehicle rental networks which may be used. If empty all networks may be used.
bannedVehicleRentalNetworks array of string   The vehicle rental networks which may not be used. If empty, no networks are banned.
bikeParkTime number required Time to park a bike
bikeParkCost number required Cost of parking a bike.
carParkTime number required Time to park a car
carParkCost number required Cost of parking a car.
requiredVehicleParkingTags array of string   Tags which are required to use a vehicle parking. If empty, no tags are required.
bannedVehicleParkingTags array of string   Tags with which a vehicle parking will not be used. If empty, no tags are banned.
carDropoffTime number required Time to park a car in a park and ride, w/o taking into account driving and walking cost (time to park, switch off, pick your stuff, lock the car, etc...)
carPickupTime number required Time of getting in/out of a carPickup (taxi)
carPickupCost number required Cost of getting in/out of a carPickup (taxi)
waitReluctance number required How much worse is waiting for a transit vehicle than being on a transit vehicle, as a multiplier. The default value treats wait and on-vehicle time as the same. It may be tempting to set this higher than walkReluctance (as studies often find this kind of preferences among riders) but the planner will take this literally and walk down a transit line to avoid waiting at a stop. This used to be set less than 1 (0.95) which would make waiting offboard preferable to waiting onboard in an interlined trip. That is also undesirable. If we only tried the shortest possible transfer at each stop to neighboring stop patterns, this problem could disappear.
waitAtBeginningFactor number required How much less bad is waiting at the beginning of the trip (replaces waitReluctance on the first boarding)
walkBoardCost number required This prevents unnecessary transfers by adding a cost for boarding a vehicle. This is in addition to the cost of the transfer(walking) and waiting-time. It is also in addition to the transferCost.
bikeBoardCost number required Separate cost for boarding a vehicle with a bicycle, which is more difficult than on foot. This is in addition to the cost of the transfer(biking) and waiting-time. It is also in addition to the transferCost.
otherThanPreferredRoutesPenalty number required Penalty added for using every route that is not preferred if user set any route as preferred. We return number of seconds that we are willing to wait for preferred route.
useUnpreferredRoutesPenalty number required Penalty added for using every unpreferred route. We return number of seconds that we are willing to wait for preferred route.
bannedTrips map of array of object   Do not use certain trips
transferSlack number required A global minimum transfer time (in seconds) that specifies the minimum amount of time that must pass between exiting one transit vehicle and boarding another. This time is in addition to time it might take to walk between transit stops, the alightSlack, and the boardSlack. This time should also be overridden by specific transfer timing information in transfers.txt

This only apply to transfers between two trips, it does not apply when boarding the first transit.

Unit is seconds. Default value is 2 minutes.

boardSlack number required The number of seconds to add before boarding a transit leg. It is recommended to use the `boardTimes` in the `router-config.json` to set this for each mode.

Unit is seconds. Default value is 0.

boardSlackForMode map of number   Has information how much time boarding a vehicle takes. Can be significant eg in airplanes or ferries.

If set, the board-slack-for-mode override the more general boardSlack. This enables configuring the board-slack for airplane boarding to be 30 minutes and a slack for bus of 2 minutes.

Unit is seconds. Default value is not-set(empty map).

alightSlack number required The number of seconds to add after alighting a transit leg. It is recommended to use the `alightTimes` in the `router-config.json` to set this for each mode.

Unit is seconds. Default value is 0.

alightSlackForMode map of number   Has information how much time alighting a vehicle takes. Can be significant eg in airplanes or ferries.

If set, the alight-slack-for-mode override the more general alightSlack. This enables configuring the alight-slack for train alighting to be 4 minutes and a bus alight slack to be 0 minutes.

Unit is seconds. Default value is not-set(empty map).

maxTransfers number   Ideally maxTransfers should be set in the router config, not here. Instead the client should be able to pass in a parameter for the max number of additional/extra transfers relative to the best trip (with the fewest possible transfers) within constraint of the other search parameters(TODO OTP2 Expose org.opentripplanner.transit.raptor.api.request.SearchParams#numberOfAdditionalTransfers() in APIs). This might be to complicated to explain to the customer, so we might stick to the old limit, but that have side-effects that you might not find any trips on a day where a critical part of the trip is not available, because of some real-time disruption.
bikeTriangleTimeFactor number required For the bike triangle, how important time is. triangleTimeFactor+triangleSlopeFactor+triangleSafetyFactor == 1
bikeTriangleSlopeFactor number required For the bike triangle, how important slope is
bikeTriangleSafetyFactor number required For the bike triangle, how important safety is
useVehicleRentalAvailabilityInformation boolean required Whether or not vehicle rental availability information will be used to plan vehicle rental trips
allowKeepingRentedVehicleAtDestination boolean required Whether arriving at the destination with a rented (station) bicycle is allowed without dropping it off.
keepingRentedVehicleAtDestinationCost number required The cost of arriving at the destination with the rented bicycle, to discourage doing so.
carDecelerationSpeed number required The deceleration speed of an automobile, in meters per second per second.
carAccelerationSpeed number required The acceleration speed of an automobile, in meters per second per second.
ignoreRealtimeUpdates boolean required When true, realtime updates are ignored during this search.
includePlannedCancellations boolean required When true, trips cancelled in scheduled data are included in this search.
disableRemainingWeightHeuristic boolean required If true, the remaining weight heuristic is disabled. Currently only implemented for the long distance path service. This is used by the Street search only. TODO OTP2 Can we merge this with the 'oneToMany' option?
rctx RoutingContext   The routing context used to actually carry out this search. It is important to build States from TraverseOptions rather than RoutingContexts,and just keep a reference to the context in the TraverseOptions, rather than using RoutingContexts for everything because in some testing and graph building situations we need to build a bunch of initial states with different times and vertices from a single TraverseOptions, without setting all the transit context or building temporary vertices (with all the exception-throwing checks that entails). While they are conceptually separate, TraverseOptions does maintain a reference to its accompanying RoutingContext (and vice versa) so that both do not need to be passed/injected separately into tight inner loops within routing algorithms. These references should be set to null when the request scope is torn down -- the routing context becomes irrelevant at that point, since temporary graph elements have been removed and the graph may have been reloaded.
startingTransitStopId FeedScopedId   A transit stop that this trip must start from
startingTransitTripId FeedScopedId   A trip where this trip must start from (depart-onboard routing)
vehicleRental boolean required
parkAndRide boolean required
carPickup boolean required
allowedRentalFormFactors array of FormFactor  
useVehicleParkingAvailabilityInformation boolean required If true vehicle parking availability information will be used to plan park and ride trips where it exists.
dominanceFunction DominanceFunction   The function that compares paths converging on the same vertex to decide which ones continue to be explored.
onlyTransitTrips boolean required Accept only paths that use transit (no street-only paths).
disableAlertFiltering boolean required Option to disable the default filtering of GTFS-RT alerts by time.
geoidElevation boolean required Whether to apply the ellipsoid→geoid offset to all elevations in the response
pathComparator string   Which path comparator to use
itineraryFilters ItineraryFilterParameters required
dataOverlay DataOverlayParameters   The filled request parameters for penalties and thresholds values
raptorDebuging DebugRaptor   Raptor can print all events when arriving at stops to system error. For developers only.
dateTime number   The search time for the current request. If the client have moved to the next page then this is the adjusted search time - the dateTime passed in is ignored and replaced with by a time from the pageToken.
tripPlannedForNow boolean required Is the trip originally planned withing the previous/next 15h?
numItinerariesForDirectStreetSearch number required Currently only one itinerary is returned for a direct street search
itinerariesSortOrder SortOrder  
routingContext RoutingContext  
streetSpeedUpperBound number required The highest speed for all possible road-modes.
newShortestPathTree ShortestPathTree   Create a new ShortestPathTree instance using the DominanceFunction specified in this RoutingRequest.
intersectionTraversalCostModel IntersectionTraversalCostModel   This method is needed because we sometimes traverse edges with no graph. It returns a default intersection traversal model if no graph is present.

Example

{
  "parameters" : {
    "property1" : "...",
    "property2" : "..."
  },
  "from" : {
    "label" : "...",
    "stopId" : {
      "feedId" : "...",
      "id" : "..."
    },
    "lat" : 12345.0,
    "lng" : 12345.0,
    "coordinate" : {
      "x" : 12345.0,
      "y" : 12345.0,
      "z" : 12345.0,
      "m" : 12345.0,
      "valid" : true
    },
    "specified" : true
  },
  "to" : {
    "label" : "...",
    "stopId" : {
      "feedId" : "...",
      "id" : "..."
    },
    "lat" : 12345.0,
    "lng" : 12345.0,
    "coordinate" : {
      "x" : 12345.0,
      "y" : 12345.0,
      "z" : 12345.0,
      "m" : 12345.0,
      "valid" : true
    },
    "specified" : true
  },
  "maxDirectStreetDurationSeconds" : 12345.0,
  "maxAccessEgressDurationSeconds" : 12345.0,
  "maxAccessEgressDurationSecondsForMode" : {
    "property1" : 12345.0,
    "property2" : 12345.0
  },
  "modes" : {
    "accessMode" : "CAR",
    "transferMode" : "BIKE_TO_PARK",
    "egressMode" : "CAR_RENTAL",
    "directMode" : "BIKE_TO_PARK",
    "transitModes" : [ {
      "mainMode" : "TROLLEYBUS",
      "allTransitModes" : [ { }, { } ],
      "allTransitModesExceptAirplane" : [ { }, { } ]
    }, {
      "mainMode" : "MONORAIL",
      "allTransitModes" : [ { }, { } ],
      "allTransitModesExceptAirplane" : [ { }, { } ]
    } ]
  },
  "streetSubRequestModes" : {
    "bicycle" : true,
    "walk" : true,
    "car" : true,
    "tram" : true,
    "bus" : true,
    "gondola" : true,
    "ferry" : true,
    "cableCar" : true,
    "funicular" : true,
    "rail" : true,
    "trolleyBus" : true,
    "subway" : true,
    "airplane" : true,
    "transit" : true,
    "nonTransitSet" : { },
    "modes" : [ "BUS", "CABLE_CAR" ],
    "valid" : true,
    "asStr" : "..."
  },
  "bicycleOptimizeType" : "TRANSFERS",
  "searchWindow" : 12345,
  "maxJourneyDuration" : 12345,
  "pageCursor" : {
    "type" : "NEXT_PAGE",
    "originalSortOrder" : "STREET_AND_ARRIVAL_TIME",
    "earliestDepartureTime" : 12345,
    "latestArrivalTime" : 12345,
    "searchWindow" : 12345
  },
  "timetableView" : true,
  "arriveBy" : true,
  "wheelchairAccessible" : true,
  "numItineraries" : 12345,
  "maxWheelchairSlope" : 12345.0,
  "showIntermediateStops" : true,
  "walkSpeed" : 12345.0,
  "bikeSpeed" : 12345.0,
  "bikeWalkingSpeed" : 12345.0,
  "carSpeed" : 12345.0,
  "locale" : "...",
  "transferCost" : 12345,
  "transferOptimization" : { },
  "walkReluctance" : 12345.0,
  "bikeWalkingReluctance" : 12345.0,
  "bikeReluctance" : 12345.0,
  "carReluctance" : 12345.0,
  "stairsTimeFactor" : 12345.0,
  "stairsReluctance" : 12345.0,
  "turnReluctance" : 12345.0,
  "elevatorBoardTime" : 12345,
  "elevatorBoardCost" : 12345,
  "elevatorHopTime" : 12345,
  "elevatorHopCost" : 12345,
  "bikeSwitchTime" : 12345,
  "bikeSwitchCost" : 12345,
  "vehicleRentalPickupTime" : 12345,
  "vehicleRentalPickupCost" : 12345,
  "vehicleRentalDropoffTime" : 12345,
  "vehicleRentalDropoffCost" : 12345,
  "allowedVehicleRentalNetworks" : [ "...", "..." ],
  "bannedVehicleRentalNetworks" : [ "...", "..." ],
  "bikeParkTime" : 12345,
  "bikeParkCost" : 12345,
  "carParkTime" : 12345,
  "carParkCost" : 12345,
  "requiredVehicleParkingTags" : [ "...", "..." ],
  "bannedVehicleParkingTags" : [ "...", "..." ],
  "carDropoffTime" : 12345,
  "carPickupTime" : 12345,
  "carPickupCost" : 12345,
  "waitReluctance" : 12345.0,
  "walkBoardCost" : 12345,
  "bikeBoardCost" : 12345,
  "transferSlack" : 12345,
  "boardSlack" : 12345,
  "boardSlackForMode" : {
    "property1" : 12345,
    "property2" : 12345
  },
  "alightSlack" : 12345,
  "alightSlackForMode" : {
    "property1" : 12345,
    "property2" : 12345
  },
  "maxTransfers" : 12345,
  "bikeTriangleTimeFactor" : 12345.0,
  "bikeTriangleSlopeFactor" : 12345.0,
  "bikeTriangleSafetyFactor" : 12345.0,
  "useVehicleRentalAvailabilityInformation" : true,
  "allowKeepingRentedVehicleAtDestination" : true,
  "keepingRentedVehicleAtDestinationCost" : 12345.0,
  "carDecelerationSpeed" : 12345.0,
  "carAccelerationSpeed" : 12345.0,
  "ignoreRealtimeUpdates" : true,
  "includePlannedCancellations" : true,
  "disableRemainingWeightHeuristic" : true,
  "rctx" : {
    "opt" : {
      "parameters" : {
        "property1" : "...",
        "property2" : "..."
      },
      "from" : { },
      "to" : { },
      "maxDirectStreetDurationSeconds" : 12345.0,
      "maxAccessEgressDurationSeconds" : 12345.0,
      "maxAccessEgressDurationSecondsForMode" : {
        "property1" : 12345.0,
        "property2" : 12345.0
      },
      "modes" : { },
      "streetSubRequestModes" : { },
      "bicycleOptimizeType" : "TRIANGLE",
      "searchWindow" : 12345,
      "maxJourneyDuration" : 12345,
      "pageCursor" : { },
      "timetableView" : true,
      "arriveBy" : true,
      "wheelchairAccessible" : true,
      "numItineraries" : 12345,
      "maxWheelchairSlope" : 12345.0,
      "showIntermediateStops" : true,
      "walkSpeed" : 12345.0,
      "bikeSpeed" : 12345.0,
      "bikeWalkingSpeed" : 12345.0,
      "carSpeed" : 12345.0,
      "locale" : "...",
      "transferCost" : 12345,
      "transferOptimization" : { },
      "walkReluctance" : 12345.0,
      "bikeWalkingReluctance" : 12345.0,
      "bikeReluctance" : 12345.0,
      "carReluctance" : 12345.0,
      "stairsTimeFactor" : 12345.0,
      "stairsReluctance" : 12345.0,
      "turnReluctance" : 12345.0,
      "elevatorBoardTime" : 12345,
      "elevatorBoardCost" : 12345,
      "elevatorHopTime" : 12345,
      "elevatorHopCost" : 12345,
      "bikeSwitchTime" : 12345,
      "bikeSwitchCost" : 12345,
      "vehicleRentalPickupTime" : 12345,
      "vehicleRentalPickupCost" : 12345,
      "vehicleRentalDropoffTime" : 12345,
      "vehicleRentalDropoffCost" : 12345,
      "allowedVehicleRentalNetworks" : [ "...", "..." ],
      "bannedVehicleRentalNetworks" : [ "...", "..." ],
      "bikeParkTime" : 12345,
      "bikeParkCost" : 12345,
      "carParkTime" : 12345,
      "carParkCost" : 12345,
      "requiredVehicleParkingTags" : [ "...", "..." ],
      "bannedVehicleParkingTags" : [ "...", "..." ],
      "carDropoffTime" : 12345,
      "carPickupTime" : 12345,
      "carPickupCost" : 12345,
      "waitReluctance" : 12345.0,
      "walkBoardCost" : 12345,
      "bikeBoardCost" : 12345,
      "transferSlack" : 12345,
      "boardSlack" : 12345,
      "boardSlackForMode" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "alightSlack" : 12345,
      "alightSlackForMode" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "maxTransfers" : 12345,
      "bikeTriangleTimeFactor" : 12345.0,
      "bikeTriangleSlopeFactor" : 12345.0,
      "bikeTriangleSafetyFactor" : 12345.0,
      "useVehicleRentalAvailabilityInformation" : true,
      "allowKeepingRentedVehicleAtDestination" : true,
      "keepingRentedVehicleAtDestinationCost" : 12345.0,
      "carDecelerationSpeed" : 12345.0,
      "carAccelerationSpeed" : 12345.0,
      "ignoreRealtimeUpdates" : true,
      "includePlannedCancellations" : true,
      "disableRemainingWeightHeuristic" : true,
      "rctx" : { },
      "vehicleRental" : true,
      "parkAndRide" : true,
      "carPickup" : true,
      "allowedRentalFormFactors" : [ "SCOOTER", "MOPED" ],
      "useVehicleParkingAvailabilityInformation" : true,
      "dominanceFunction" : { },
      "geoidElevation" : true,
      "itineraryFilters" : { },
      "dataOverlay" : { },
      "raptorDebuging" : { },
      "dateTime" : 12345,
      "tripPlannedForNow" : true,
      "numItinerariesForDirectStreetSearch" : 12345,
      "itinerariesSortOrder" : "STREET_AND_DEPARTURE_TIME",
      "routingContext" : { },
      "streetSpeedUpperBound" : 12345.0,
      "newShortestPathTree" : { },
      "intersectionTraversalCostModel" : { }
    },
    "graph" : {
      "streetNotesService" : { },
      "preferences" : { },
      "hasBikeSharing" : true,
      "hasParkRide" : true,
      "hasBikeRide" : true,
      "buildTime" : 12345,
      "hasStreets" : true,
      "hasTransit" : true,
      "hasDirectTransfers" : true,
      "hasFrequencyService" : true,
      "hasScheduledService" : true,
      "hasLinkedBikeParks" : true,
      "ellipsoidToGeoidDifference" : 12345.0,
      "stationById" : {
        "property1" : { },
        "property2" : { }
      },
      "multiModalStationById" : {
        "property1" : { },
        "property2" : { }
      },
      "groupOfStationsById" : {
        "property1" : { },
        "property2" : { }
      },
      "tripPatternForId" : {
        "property1" : { },
        "property2" : { }
      },
      "interlinedTrips" : {
        "property1" : { },
        "property2" : { }
      },
      "transfersByStop" : { },
      "locationsById" : {
        "property1" : { },
        "property2" : { }
      },
      "locationGroupsById" : {
        "property1" : { },
        "property2" : { }
      },
      "flexTripsById" : {
        "property1" : { },
        "property2" : { }
      },
      "nextSplitNumber" : 12345,
      "dataOverlayParameterBindings" : { },
      "timetableSnapshot" : { },
      "vertices" : [ { }, { } ],
      "edges" : [ { }, { } ],
      "streetEdges" : [ { }, { } ],
      "transitLayer" : { },
      "realtimeTransitLayer" : { },
      "extent" : { },
      "transferService" : { },
      "bundle" : { },
      "transitModes" : [ "CABLE_CAR", "TROLLEYBUS" ],
      "calendarService" : { },
      "calendarDataService" : { },
      "streetIndex" : { },
      "linker" : { },
      "feedIds" : [ "...", "..." ],
      "agencies" : [ { }, { } ],
      "timeZone" : { },
      "operators" : [ { }, { } ],
      "convexHull" : { },
      "envelope" : { },
      "center" : { },
      "transitServiceStarts" : 12345,
      "transitServiceEnds" : 12345,
      "noticesByElement" : { },
      "distanceBetweenElevationSamples" : 12345.0,
      "transitAlertService" : { },
      "vehicleRentalStationService" : { },
      "vehicleParkingService" : { },
      "tripPatterns" : [ { }, { } ],
      "notices" : [ { }, { } ],
      "stations" : [ { }, { } ],
      "serviceCodes" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "drivingDirection" : "RIGHT_HAND_TRAFFIC",
      "intersectionTraversalModel" : { },
      "allFlexStopsFlat" : [ { }, { } ]
    },
    "fromVertices" : [ {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    }, {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    } ],
    "toVertices" : [ {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    }, {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    } ],
    "bannedRoutes" : [ {
      "feedId" : "...",
      "id" : "..."
    }, {
      "feedId" : "...",
      "id" : "..."
    } ],
    "originBackEdge" : {
      "fromVertex" : { },
      "toVertex" : { },
      "partial" : true,
      "direction" : "...",
      "trip" : { },
      "roundabout" : true,
      "defaultName" : "...",
      "name" : { },
      "geometry" : { },
      "distanceMeters" : 12345.0,
      "effectiveWalkDistance" : 12345.0,
      "distanceIndependentTime" : 12345
    },
    "remainingWeightHeuristic" : { },
    "aborted" : true,
    "slopeRestrictionRemoved" : true,
    "dataOverlayContext" : {
      "parameters" : { }
    }
  },
  "vehicleRental" : true,
  "parkAndRide" : true,
  "carPickup" : true,
  "allowedRentalFormFactors" : [ "SCOOTER", "MOPED" ],
  "useVehicleParkingAvailabilityInformation" : true,
  "dominanceFunction" : { },
  "geoidElevation" : true,
  "itineraryFilters" : {
    "debug" : true,
    "groupSimilarityKeepOne" : 12345.0,
    "groupSimilarityKeepThree" : 12345.0,
    "groupedOtherThanSameLegsMaxCostMultiplier" : 12345.0,
    "transitGeneralizedCostLimit" : { },
    "bikeRentalDistanceRatio" : 12345.0,
    "parkAndRideDurationRatio" : 12345.0,
    "nonTransitGeneralizedCostLimit" : { }
  },
  "dataOverlay" : {
    "empty" : true
  },
  "raptorDebuging" : { },
  "dateTime" : 12345,
  "tripPlannedForNow" : true,
  "numItinerariesForDirectStreetSearch" : 12345,
  "itinerariesSortOrder" : "STREET_AND_ARRIVAL_TIME",
  "routingContext" : {
    "opt" : {
      "parameters" : {
        "property1" : "...",
        "property2" : "..."
      },
      "from" : { },
      "to" : { },
      "maxDirectStreetDurationSeconds" : 12345.0,
      "maxAccessEgressDurationSeconds" : 12345.0,
      "maxAccessEgressDurationSecondsForMode" : {
        "property1" : 12345.0,
        "property2" : 12345.0
      },
      "modes" : { },
      "streetSubRequestModes" : { },
      "bicycleOptimizeType" : "TRIANGLE",
      "searchWindow" : 12345,
      "maxJourneyDuration" : 12345,
      "pageCursor" : { },
      "timetableView" : true,
      "arriveBy" : true,
      "wheelchairAccessible" : true,
      "numItineraries" : 12345,
      "maxWheelchairSlope" : 12345.0,
      "showIntermediateStops" : true,
      "walkSpeed" : 12345.0,
      "bikeSpeed" : 12345.0,
      "bikeWalkingSpeed" : 12345.0,
      "carSpeed" : 12345.0,
      "locale" : "...",
      "transferCost" : 12345,
      "transferOptimization" : { },
      "walkReluctance" : 12345.0,
      "bikeWalkingReluctance" : 12345.0,
      "bikeReluctance" : 12345.0,
      "carReluctance" : 12345.0,
      "stairsTimeFactor" : 12345.0,
      "stairsReluctance" : 12345.0,
      "turnReluctance" : 12345.0,
      "elevatorBoardTime" : 12345,
      "elevatorBoardCost" : 12345,
      "elevatorHopTime" : 12345,
      "elevatorHopCost" : 12345,
      "bikeSwitchTime" : 12345,
      "bikeSwitchCost" : 12345,
      "vehicleRentalPickupTime" : 12345,
      "vehicleRentalPickupCost" : 12345,
      "vehicleRentalDropoffTime" : 12345,
      "vehicleRentalDropoffCost" : 12345,
      "allowedVehicleRentalNetworks" : [ "...", "..." ],
      "bannedVehicleRentalNetworks" : [ "...", "..." ],
      "bikeParkTime" : 12345,
      "bikeParkCost" : 12345,
      "carParkTime" : 12345,
      "carParkCost" : 12345,
      "requiredVehicleParkingTags" : [ "...", "..." ],
      "bannedVehicleParkingTags" : [ "...", "..." ],
      "carDropoffTime" : 12345,
      "carPickupTime" : 12345,
      "carPickupCost" : 12345,
      "waitReluctance" : 12345.0,
      "walkBoardCost" : 12345,
      "bikeBoardCost" : 12345,
      "transferSlack" : 12345,
      "boardSlack" : 12345,
      "boardSlackForMode" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "alightSlack" : 12345,
      "alightSlackForMode" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "maxTransfers" : 12345,
      "bikeTriangleTimeFactor" : 12345.0,
      "bikeTriangleSlopeFactor" : 12345.0,
      "bikeTriangleSafetyFactor" : 12345.0,
      "useVehicleRentalAvailabilityInformation" : true,
      "allowKeepingRentedVehicleAtDestination" : true,
      "keepingRentedVehicleAtDestinationCost" : 12345.0,
      "carDecelerationSpeed" : 12345.0,
      "carAccelerationSpeed" : 12345.0,
      "ignoreRealtimeUpdates" : true,
      "includePlannedCancellations" : true,
      "disableRemainingWeightHeuristic" : true,
      "rctx" : { },
      "vehicleRental" : true,
      "parkAndRide" : true,
      "carPickup" : true,
      "allowedRentalFormFactors" : [ "CAR", "OTHER" ],
      "useVehicleParkingAvailabilityInformation" : true,
      "dominanceFunction" : { },
      "geoidElevation" : true,
      "itineraryFilters" : { },
      "dataOverlay" : { },
      "raptorDebuging" : { },
      "dateTime" : 12345,
      "tripPlannedForNow" : true,
      "numItinerariesForDirectStreetSearch" : 12345,
      "itinerariesSortOrder" : "STREET_AND_ARRIVAL_TIME",
      "routingContext" : { },
      "streetSpeedUpperBound" : 12345.0,
      "newShortestPathTree" : { },
      "intersectionTraversalCostModel" : { }
    },
    "graph" : {
      "streetNotesService" : { },
      "preferences" : { },
      "hasBikeSharing" : true,
      "hasParkRide" : true,
      "hasBikeRide" : true,
      "buildTime" : 12345,
      "hasStreets" : true,
      "hasTransit" : true,
      "hasDirectTransfers" : true,
      "hasFrequencyService" : true,
      "hasScheduledService" : true,
      "hasLinkedBikeParks" : true,
      "ellipsoidToGeoidDifference" : 12345.0,
      "stationById" : {
        "property1" : { },
        "property2" : { }
      },
      "multiModalStationById" : {
        "property1" : { },
        "property2" : { }
      },
      "groupOfStationsById" : {
        "property1" : { },
        "property2" : { }
      },
      "tripPatternForId" : {
        "property1" : { },
        "property2" : { }
      },
      "interlinedTrips" : {
        "property1" : { },
        "property2" : { }
      },
      "transfersByStop" : { },
      "locationsById" : {
        "property1" : { },
        "property2" : { }
      },
      "locationGroupsById" : {
        "property1" : { },
        "property2" : { }
      },
      "flexTripsById" : {
        "property1" : { },
        "property2" : { }
      },
      "nextSplitNumber" : 12345,
      "dataOverlayParameterBindings" : { },
      "timetableSnapshot" : { },
      "vertices" : [ { }, { } ],
      "edges" : [ { }, { } ],
      "streetEdges" : [ { }, { } ],
      "transitLayer" : { },
      "realtimeTransitLayer" : { },
      "extent" : { },
      "transferService" : { },
      "bundle" : { },
      "transitModes" : [ "CABLE_CAR", "TRAM" ],
      "calendarService" : { },
      "calendarDataService" : { },
      "streetIndex" : { },
      "linker" : { },
      "feedIds" : [ "...", "..." ],
      "agencies" : [ { }, { } ],
      "timeZone" : { },
      "operators" : [ { }, { } ],
      "convexHull" : { },
      "envelope" : { },
      "center" : { },
      "transitServiceStarts" : 12345,
      "transitServiceEnds" : 12345,
      "noticesByElement" : { },
      "distanceBetweenElevationSamples" : 12345.0,
      "transitAlertService" : { },
      "vehicleRentalStationService" : { },
      "vehicleParkingService" : { },
      "tripPatterns" : [ { }, { } ],
      "notices" : [ { }, { } ],
      "stations" : [ { }, { } ],
      "serviceCodes" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "drivingDirection" : "RIGHT_HAND_TRAFFIC",
      "intersectionTraversalModel" : { },
      "allFlexStopsFlat" : [ { }, { } ]
    },
    "fromVertices" : [ {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    }, {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    } ],
    "toVertices" : [ {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    }, {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    } ],
    "bannedRoutes" : [ {
      "feedId" : "...",
      "id" : "..."
    }, {
      "feedId" : "...",
      "id" : "..."
    } ],
    "originBackEdge" : {
      "fromVertex" : { },
      "toVertex" : { },
      "partial" : true,
      "direction" : "...",
      "trip" : { },
      "roundabout" : true,
      "defaultName" : "...",
      "name" : { },
      "geometry" : { },
      "distanceMeters" : 12345.0,
      "effectiveWalkDistance" : 12345.0,
      "distanceIndependentTime" : 12345
    },
    "remainingWeightHeuristic" : { },
    "aborted" : true,
    "slopeRestrictionRemoved" : true,
    "dataOverlayContext" : {
      "parameters" : { }
    }
  },
  "streetSpeedUpperBound" : 12345.0,
  "newShortestPathTree" : {
    "options" : {
      "parameters" : {
        "property1" : "...",
        "property2" : "..."
      },
      "from" : { },
      "to" : { },
      "maxDirectStreetDurationSeconds" : 12345.0,
      "maxAccessEgressDurationSeconds" : 12345.0,
      "maxAccessEgressDurationSecondsForMode" : {
        "property1" : 12345.0,
        "property2" : 12345.0
      },
      "modes" : { },
      "streetSubRequestModes" : { },
      "bicycleOptimizeType" : "TRANSFERS",
      "searchWindow" : 12345,
      "maxJourneyDuration" : 12345,
      "pageCursor" : { },
      "timetableView" : true,
      "arriveBy" : true,
      "wheelchairAccessible" : true,
      "numItineraries" : 12345,
      "maxWheelchairSlope" : 12345.0,
      "showIntermediateStops" : true,
      "walkSpeed" : 12345.0,
      "bikeSpeed" : 12345.0,
      "bikeWalkingSpeed" : 12345.0,
      "carSpeed" : 12345.0,
      "locale" : "...",
      "transferCost" : 12345,
      "transferOptimization" : { },
      "walkReluctance" : 12345.0,
      "bikeWalkingReluctance" : 12345.0,
      "bikeReluctance" : 12345.0,
      "carReluctance" : 12345.0,
      "stairsTimeFactor" : 12345.0,
      "stairsReluctance" : 12345.0,
      "turnReluctance" : 12345.0,
      "elevatorBoardTime" : 12345,
      "elevatorBoardCost" : 12345,
      "elevatorHopTime" : 12345,
      "elevatorHopCost" : 12345,
      "bikeSwitchTime" : 12345,
      "bikeSwitchCost" : 12345,
      "vehicleRentalPickupTime" : 12345,
      "vehicleRentalPickupCost" : 12345,
      "vehicleRentalDropoffTime" : 12345,
      "vehicleRentalDropoffCost" : 12345,
      "allowedVehicleRentalNetworks" : [ "...", "..." ],
      "bannedVehicleRentalNetworks" : [ "...", "..." ],
      "bikeParkTime" : 12345,
      "bikeParkCost" : 12345,
      "carParkTime" : 12345,
      "carParkCost" : 12345,
      "requiredVehicleParkingTags" : [ "...", "..." ],
      "bannedVehicleParkingTags" : [ "...", "..." ],
      "carDropoffTime" : 12345,
      "carPickupTime" : 12345,
      "carPickupCost" : 12345,
      "waitReluctance" : 12345.0,
      "walkBoardCost" : 12345,
      "bikeBoardCost" : 12345,
      "transferSlack" : 12345,
      "boardSlack" : 12345,
      "boardSlackForMode" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "alightSlack" : 12345,
      "alightSlackForMode" : {
        "property1" : 12345,
        "property2" : 12345
      },
      "maxTransfers" : 12345,
      "bikeTriangleTimeFactor" : 12345.0,
      "bikeTriangleSlopeFactor" : 12345.0,
      "bikeTriangleSafetyFactor" : 12345.0,
      "useVehicleRentalAvailabilityInformation" : true,
      "allowKeepingRentedVehicleAtDestination" : true,
      "keepingRentedVehicleAtDestinationCost" : 12345.0,
      "carDecelerationSpeed" : 12345.0,
      "carAccelerationSpeed" : 12345.0,
      "ignoreRealtimeUpdates" : true,
      "includePlannedCancellations" : true,
      "disableRemainingWeightHeuristic" : true,
      "rctx" : { },
      "vehicleRental" : true,
      "parkAndRide" : true,
      "carPickup" : true,
      "allowedRentalFormFactors" : [ "SCOOTER", "CAR" ],
      "useVehicleParkingAvailabilityInformation" : true,
      "dominanceFunction" : { },
      "geoidElevation" : true,
      "itineraryFilters" : { },
      "dataOverlay" : { },
      "raptorDebuging" : { },
      "dateTime" : 12345,
      "tripPlannedForNow" : true,
      "numItinerariesForDirectStreetSearch" : 12345,
      "itinerariesSortOrder" : "STREET_AND_DEPARTURE_TIME",
      "routingContext" : { },
      "streetSpeedUpperBound" : 12345.0,
      "newShortestPathTree" : { },
      "intersectionTraversalCostModel" : { }
    },
    "dominanceFunction" : { },
    "paths" : [ {
      "states" : [ { }, { } ],
      "edges" : [ { }, { } ],
      "startTime" : 12345,
      "endTime" : 12345,
      "duration" : 12345,
      "distanceMeters" : 12345.0,
      "weight" : 12345.0,
      "startVertex" : { },
      "endVertex" : { },
      "geometry" : { },
      "walkDistance" : 12345.0,
      "routingContext" : { }
    }, {
      "states" : [ { }, { } ],
      "edges" : [ { }, { } ],
      "startTime" : 12345,
      "endTime" : 12345,
      "duration" : 12345,
      "distanceMeters" : 12345.0,
      "weight" : 12345.0,
      "startVertex" : { },
      "endVertex" : { },
      "geometry" : { },
      "walkDistance" : 12345.0,
      "routingContext" : { }
    } ],
    "vertices" : [ {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    }, {
      "outgoing" : [ { }, { } ],
      "incoming" : [ { }, { } ],
      "degreeOut" : 12345,
      "degreeIn" : 12345,
      "x" : 12345.0,
      "y" : 12345.0,
      "lon" : 12345.0,
      "lat" : 12345.0,
      "name" : { },
      "defaultName" : "...",
      "stationElement" : { },
      "label" : "...",
      "coordinate" : { },
      "outgoingStreetEdges" : [ { }, { } ]
    } ],
    "vertexCount" : 12345,
    "allStates" : [ {
      "weight" : 12345.0,
      "backEdge" : { },
      "stateData" : { },
      "walkDistance" : 12345.0,
      "carPickupState" : "WALK_TO_PICKUP",
      "timeSeconds" : 12345,
      "elapsedTimeSeconds" : 12345,
      "rentingVehicleFromStation" : true,
      "rentingFloatingVehicle" : true,
      "rentingVehicle" : true,
      "vehicleRentalState" : "HAVE_RENTED",
      "vehicleParked" : true,
      "final" : true,
      "vertex" : { },
      "timeDeltaSeconds" : 12345,
      "weightDelta" : 12345.0,
      "backState" : { },
      "backMode" : "AIRPLANE",
      "backWalkingBike" : true,
      "startTimeSeconds" : 12345,
      "nextResult" : { },
      "context" : { },
      "options" : { },
      "nonTransitMode" : "SUBWAY",
      "timeInMillis" : 12345,
      "vehicleRentalNetwork" : "..."
    }, {
      "weight" : 12345.0,
      "backEdge" : { },
      "stateData" : { },
      "walkDistance" : 12345.0,
      "carPickupState" : "WALK_TO_PICKUP",
      "timeSeconds" : 12345,
      "elapsedTimeSeconds" : 12345,
      "rentingVehicleFromStation" : true,
      "rentingFloatingVehicle" : true,
      "rentingVehicle" : true,
      "vehicleRentalState" : "RENTING_FROM_STATION",
      "vehicleParked" : true,
      "final" : true,
      "vertex" : { },
      "timeDeltaSeconds" : 12345,
      "weightDelta" : 12345.0,
      "backState" : { },
      "backMode" : "CABLE_CAR",
      "backWalkingBike" : true,
      "startTimeSeconds" : 12345,
      "nextResult" : { },
      "context" : { },
      "options" : { },
      "nonTransitMode" : "WALK",
      "timeInMillis" : 12345,
      "vehicleRentalNetwork" : "..."
    } ]
  },
  "intersectionTraversalCostModel" : { }
}