{
"title": "Invalid property value",
"status": 400,
"code": 5,
"details": [
"Property 'type' contains invalid value 'WEIGHTED_MODES'"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Alter your request to use one of these values: UNKNOWN,AIR,RAIL,ROAD,WATER,HUB"
}
{
"title": "API key invalid",
"status": 401,
"code": 41,
"details": [
"'...' is not a valid API key"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Provide a valid API key. If you don’t have one, then apply to TerraTwin"
}
{
"title": "Insufficient credits",
"status": 403,
"code": 42,
"details": [
"Your account has no remaining credits"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Purchase additional credits from TerraTwin"
}
{
"title": "Not routable by rail",
"status": 422,
"code": 33,
"details": [
"Operation 'transportChain[0]' could not be routed by rail between '50.68689,7.16285' and '-36.85209,174.76318'"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Review the mode of transport selected and the locations"
}
{
"title": "Rate limit exceeded",
"status": 429,
"code": 45,
"details": [
"Too many requests. The limit is 5 requests per second"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Reduce your request rate to ≤ 5 requests/second"
}
Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. WEIGHTED_MODES transport operations are not supported.
{
"title": "Invalid property value",
"status": 400,
"code": 5,
"details": [
"Property 'type' contains invalid value 'WEIGHTED_MODES'"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Alter your request to use one of these values: UNKNOWN,AIR,RAIL,ROAD,WATER,HUB"
}
{
"title": "API key invalid",
"status": 401,
"code": 41,
"details": [
"'...' is not a valid API key"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Provide a valid API key. If you don’t have one, then apply to TerraTwin"
}
{
"title": "Insufficient credits",
"status": 403,
"code": 42,
"details": [
"Your account has no remaining credits"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Purchase additional credits from TerraTwin"
}
{
"title": "Not routable by rail",
"status": 422,
"code": 33,
"details": [
"Operation 'transportChain[0]' could not be routed by rail between '50.68689,7.16285' and '-36.85209,174.76318'"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Review the mode of transport selected and the locations"
}
{
"title": "Rate limit exceeded",
"status": 429,
"code": 45,
"details": [
"Too many requests. The limit is 5 requests per second"
],
"instance": "/api/v1/transportation/routes/calculate",
"recommendation": "Reduce your request rate to ≤ 5 requests/second"
}
Optionally describes the transported goods. Only the cargo category is used: it determines the default vessel type for WATER transport operations, and so which harbors are selected. When not provided, the GENERAL category is used.
Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position.
Identification and geocoding
Airports and harbors can be identified directly by code (iataCode for airports, unLoCode for harbors).
Otherwise, the location is geocoded based on the available address components,
and if the type is not PLACE, the closest transport facility of the indicated
type is selected.
Geocoding priority
When multiple data sources are provided, they are evaluated in the following order of preference:
Geographic coordinates (latitude and longitude)
IATA code (for non-airport locations)
Structured address components
UN/LOCODE (for non-harbor locations)
Unstructured address text
Geocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations.
Operational behavior
When a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP).
Similarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.
Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position.
Identification and geocoding
Airports and harbors can be identified directly by code (iataCode for airports, unLoCode for harbors).
Otherwise, the location is geocoded based on the available address components,
and if the type is not PLACE, the closest transport facility of the indicated
type is selected.
Geocoding priority
When multiple data sources are provided, they are evaluated in the following order of preference:
Geographic coordinates (latitude and longitude)
IATA code (for non-airport locations)
Structured address components
UN/LOCODE (for non-harbor locations)
Unstructured address text
Geocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations.
Operational behavior
When a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP).
Similarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.
(Unknown transport · object | Air transport · object | Rail transport · object | Road transport · object | Water transport · object | Hub · object)[]
Represents the sequence of transport and hub operations that define a complete multimodal logistics chain.
Structure
The transportChain is an ordered array of elements describing how cargo moves between points.
Each transport element represents a specific operation and has a type value of AIR, RAIL, ROAD, WATER, or UNKNOWN.
Each hub element has a type of HUB and represents the connecting location between consecutive transport segments.
Behavior
If this array is not provided or is empty, fallback transport modes are attempted instead.
The system will cycle through the fallback modes in order, applying default parameters for each until one succeeds or all fail.
Hubs must appear between each pair of transport operations to define the connecting locations between them.
Hubs may also appear as the first and/or last elements in the array, acting as the origin or destination
in place of the top-level origin and destination properties.
The road operations connecting the start and end locations to the selected airports, harbors, and rail yards are added automatically.
WEIGHTED_MODES transport operations are not supported.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TerraTwin API Documentation","colors":{"primary":"#4f39f6","light":"#07C983","dark":"#513AF7"},"logo":{"light":"https://mintcdn.com/terratwin/2SbfaHlKcC6sWfe8/logo/light-logo.svg?fit=max\u0026auto=format\u0026n=2SbfaHlKcC6sWfe8\u0026q=85\u0026s=9e7cc787e818460799fee628a09663d8","dark":"https://mintcdn.com/terratwin/2SbfaHlKcC6sWfe8/logo/dark-logo.svg?fit=max\u0026auto=format\u0026n=2SbfaHlKcC6sWfe8\u0026q=85\u0026s=ad5bdcf38f20795da26263fc409f8c2d"},"favicon":"https://mintcdn.com/terratwin/3DlwazpwXtnQFcA4/favicon.ico?fit=max\u0026auto=format\u0026n=3DlwazpwXtnQFcA4\u0026q=85\u0026s=3a2065506d74471a4eb04b229c9fdf92","background":{"decoration":"gradient","color":{"light":"#F6FBFC","dark":"#07151F"}},"navbar":{"primary":{"type":"button","label":"Back to TerraTwin","href":"https://www.terratwin.com"}},"footer":{},"integrations":{"plausible":{"domain":"terratwin.com"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"terratwin","hasAudioNarration":false,"actualSubdomain":"terratwin","customDomains":["docs.terratwin.com"],"gitSource":{"type":"github","owner":"kinverno","repo":"terratwin_docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a9a98176c8c419fb6cf137e","collectionId":"e97986d0-de2e-4344-9c56-429dbdb5f2b1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a9a98176c8c419fb6cf137e"},"entitlements":{},"buildId":"6ae4c893f29cac1d3d63d3a3","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"Overview","count":12},{"language":"default","tag":"API Reference","count":4},{"language":"default","tag":"Endpoints","count":4},{"language":"default","tag":"Get Started","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#search-bar-entry,#search-bar-entry-mobile{display:none!important}@media (max-width:768px){#content-area{padding-left:0}.prose-sm{font-size:14px}}:not(pre)>code{background-color:rgb(var(--gray-400))!important;color:rgb(249 255 0)!important}:not(pre)>code:is(.dark *){background-color:rgb(255 255 255/.2)!important;color:rgb(222 227 29)!important}html.dark option{background-color:#08151f}.formula-card .katex{overflow-y:hidden!important}enumTable{margin:2rem auto;border-radius:.75rem;border:1px solid rgb(var(--gray-200));box-shadow:0 10px 15px -3px rgba(15,23,42,.08),0 4px 6px -4px rgba(15,23,42,.06);overflow:hidden;display:grid;box-sizing:border-box;grid-template-columns:1fr}html.dark enumTable{border-color:#1f2937;box-shadow:0 10px 15px -3px rgba(0,0,0,.6),0 4px 6px -4px rgba(0,0,0,.8)}enumTable::before{content:'Possible enum values';padding:.75rem;font-weight:700;font-size:1rem;line-height:.75rem}enumItem,enumValue{display:block;box-sizing:border-box}enumItem{border-top:1px solid rgb(var(--gray-200));line-height:0;margin-bottom:.5rem}html.dark enumItem{border-top-color:rgb(var(--gray-800))}enumValue{padding-left:.75rem;line-height:1.75rem}enumBullet,enumDescription,enumHeading{display:block;box-sizing:border-box;padding-left:1.25rem}enumHeading{color:rgb(var(--gray-950));font-style:italic;line-height:1.25rem}html.dark enumHeading{color:rgb(var(--gray-300))}enumBullet,enumDescription{overflow-wrap:normal!important;word-break:normal!important;hyphens:manual!important}enumDescription{padding-right:1rem;white-space:normal;font-size:.8rem;line-height:1.25rem;margin-top:1rem}enumBullet{position:relative}enumBullet:last-of-type{margin-bottom:.75rem}enumBullet::before{content:\"\";position:absolute;left:.5em;top:calc(.875em - .1875em);width:.375em;height:.375em;border-radius:50%;background:rgb(var(--gray-600))}html.dark enumBullet::before{background:rgb(var(--gray-400))}"}],"page":{"pagePath":"api-reference/calculate-transport-routes","slug":"/api-reference/calculate-transport-routes","pageMetadata":{"title":"Calculate transport routes","description":"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. `WEIGHTED_MODES` transport operations are not supported.\n","deprecated":null,"version":null,"openapi":"/content/api-reference/openapi.yaml post /routes/calculate","href":"/api-reference/calculate-transport-routes","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. \", _jsx(_components.code, {\n children: \"WEIGHTED_MODES\"\n }), \" transport operations are not supported.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Calculate transport routes","description":"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. `WEIGHTED_MODES` transport operations are not supported.\n","deprecated":null,"version":null,"openapi":"/content/api-reference/openapi.yaml post /routes/calculate","href":"/api-reference/calculate-transport-routes","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Calculate transport routes","operationId":"calculateRoutes","security":["5c01fafc-1d07-4af4-9a9e-62ebaef671fc"],"description":"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. `WEIGHTED_MODES` transport operations are not supported.\n","requestBody":"0faab87b-bf5f-42d9-9254-03b64acc73da","responses":{"200":"63d24653-8bc4-4d41-9682-6447af35610a","400":"030e88f0-5609-44bf-9f1b-aafd13e1b944","401":"1b74236e-3ea6-4a42-aad2-1b74fe076ccf","403":"3a682ffb-4888-4335-af38-9916aacaf8ee","422":"35055dc8-3532-4d4e-b833-c120458b2e09","429":"e5649ac5-f2a4-410c-9cdf-26c4b8af654d","500":"994a50c8-2c33-41ad-8763-7f4bd84abe48","503":"2d2a57fd-2de5-4c46-8d10-aac51f20cc05"},"method":"post","type":"path","servers":["888107b0-69ba-44ec-9e9b-b5285434f02d"],"path":"/routes/calculate","baseUrlOptions":["https://api.terratwin.com/api/v1/transportation"],"title":"Calculate transport routes","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"An identifier for the routes calculation, such as a shipment ID. It is returned in the response. Routes calculation results are not stored.\n","uniqueKey":"id","typeLabel":"string"},"options":{"title":"Routes options","type":"object","description":"Used to customize routes calculations and to control which details are included in the response.\n","properties":{"fallbackTransportModes":{"type":"array","description":"Fallback transport modes are evaluated sequentially. Each mode in the array is attempted one after another until one succeeds or all have failed. Every attempt uses a fully defaulted configuration for the mode being tried. If all modes fail, the error returned is the one produced by the final mode attempted. \nThis fallback mechanism is applied in the following situations: \n - When a transport operation is configured with an `UNKNOWN` transport type. \n - When a transport operation fails. Each mode in the array is attempted in order (excluding the mode that failed).\n","items":{"type":"string","description":"The fallback mode of transport.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`AIR`\u003c/enumValue>\n \u003cenumHeading>Air\u003c/enumHeading>\n \u003cenumDescription>Attempt to transport the cargo using aircraft.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL`\u003c/enumValue>\n \u003cenumHeading>Rail\u003c/enumHeading>\n \u003cenumDescription>Attempt to transport the cargo using rail infrastructure.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`ROAD`\u003c/enumValue>\n \u003cenumHeading>Road\u003c/enumHeading>\n \u003cenumDescription>Attempt to transport the cargo using road infrastructure.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`WATER`\u003c/enumValue>\n \u003cenumHeading>Water\u003c/enumHeading>\n \u003cenumDescription>Attempt to transport the cargo using maritime transport.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["AIR","RAIL","ROAD","WATER"],"uniqueKey":"options.fallbackTransportModes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"options.fallbackTransportModes","typeLabel":"enum\u003cstring>[]"},"includeRoutePolylines":{"type":"boolean","default":false,"description":"Whether to include route polylines in the results of `ROAD`, `RAIL` and `WATER` transport operations. When enabled, polylines are encoded using the Google Encoded Polyline Algorithm Format.\n","uniqueKey":"options.includeRoutePolylines","typeLabel":"boolean"}},"uniqueKey":"options","typeLabel":"Routes options · object"},"cargo":{"title":"Cargo","type":"object","description":"Optionally describes the transported goods. Only the cargo category is used: it determines the default vessel type for `WATER` transport operations, and so which harbors are selected. When not provided, the `GENERAL` category is used.\n","properties":{"category":{"type":"string","description":"Aids in selecting default vehicle classes and sizes when specific transport details are not provided. It is also used to determine default climate control requirements and cargo density properties. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`AUTOMOBILES`\u003c/enumValue>\n \u003cenumHeading>Automobiles\u003c/enumHeading>\n \u003cenumDescription>\n Finished vehicles transported by specialized carriers.\n Climate control is `AT_AMBIENT` by default.\n The cargo density is characterized as `AVERAGE_MIXED` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`BUILDING_MATERIALS`\u003c/enumValue>\n \u003cenumHeading>Building materials\u003c/enumHeading>\n \u003cenumDescription>\n Construction materials like cement, sand and gravel, bricks, stone, and lumber.\n Climate control is `AT_AMBIENT` by default.\n The cargo density is characterized as `HEAVY` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CEREALS`\u003c/enumValue>\n \u003cenumHeading>Cereals\u003c/enumHeading>\n \u003cenumDescription>\n Grain crops and similar agricultural bulk goods. \n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `HEAVY` by default. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`COAL_AND_STEEL`\u003c/enumValue>\n \u003cenumHeading>Coal and steel\u003c/enumHeading>\n \u003cenumDescription>\n Extra heavy bulk where empty returns are almost always required. \n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `HEAVY` by default. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GENERAL`\u003c/enumValue>\n \u003cenumHeading>General\u003c/enumHeading>\n \u003cenumDescription>\n Default category for unspecified or miscellaneous cargo types. \n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `AVERAGE_MIXED` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LIQUEFIED_GAS`\u003c/enumValue>\n \u003cenumHeading>Liquefied gas\u003c/enumHeading>\n \u003cenumDescription>\n Gases liquefied for transport, such as LNG and LPG, carried in insulated or pressurized vessels. \n Climate control is `AT_AMBIENT` by default as road tankers do not typically use active refrigeration systems. \n The cargo density is characterized as `HEAVY` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LIQUID_CHEMICALS`\u003c/enumValue>\n \u003cenumHeading>Liquid chemicals\u003c/enumHeading>\n \u003cenumDescription>\n Materials in liquid form, typically transported in bulk using specialized tanks.\n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `HEAVY` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MANUFACTURED_PRODUCTS`\u003c/enumValue>\n \u003cenumHeading>Manufactured products\u003c/enumHeading>\n \u003cenumDescription>\n Consumer or industrial goods produced by manufacturing, as opposed to raw materials. \n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `AVERAGE_MIXED` by default. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`OIL`\u003c/enumValue>\n \u003cenumHeading>Oil\u003c/enumHeading>\n \u003cenumDescription>\n Crude oil or refined petroleum products typically transported in bulk. \n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `HEAVY` by default. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`REFRIGERATED_BULK`\u003c/enumValue>\n \u003cenumHeading>Refrigerated bulk\u003c/enumHeading>\n \u003cenumDescription>\n Perishable goods that must be kept cold during transit. \n Climate control is `REQUIRED` by default. \n The cargo density is characterized as `AVERAGE_MIXED` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`SOLID_CHEMICALS`\u003c/enumValue>\n \u003cenumHeading>Solid chemicals\u003c/enumHeading>\n \u003cenumDescription>\n Powders, granules, pellets, or other solid packaged chemicals typically handled and shipped as dry bulk materials. \n Climate control is `AT_AMBIENT` by default. \n The cargo density is characterized as `HEAVY` by default.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","default":"GENERAL","enum":["AUTOMOBILES","BUILDING_MATERIALS","CEREALS","COAL_AND_STEEL","GENERAL","LIQUEFIED_GAS","LIQUID_CHEMICALS","MANUFACTURED_PRODUCTS","OIL","REFRIGERATED_BULK","SOLID_CHEMICALS"],"uniqueKey":"cargo.category","typeLabel":"enum\u003cstring>"}},"uniqueKey":"cargo","typeLabel":"Cargo · object"},"origin":{"oneOf":[{"type":"object","title":"Coordinates","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["latitude","longitude","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.0.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"origin.oneOf.0.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"origin.oneOf.0.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.0.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.0.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.0.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.0.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"origin.oneOf.0.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.oneOf.0.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.oneOf.0.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.0.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"origin.oneOf.0.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.0.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.0","typeLabel":"Coordinates · object"},{"type":"object","title":"IATA code","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["iataCode","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.1.type","typeLabel":"enum\u003cstring>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","isRequired":true,"uniqueKey":"origin.oneOf.1.iataCode","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.1.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.1.longitude","typeLabel":"number\u003cdouble>"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.1.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.1.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.1.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"origin.oneOf.1.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.oneOf.1.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.oneOf.1.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.1.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"origin.oneOf.1.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.1.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.1","typeLabel":"IATA code · object"},{"type":"object","title":"UN/LOCODE","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["unLoCode","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.2.type","typeLabel":"enum\u003cstring>"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"isRequired":true,"uniqueKey":"origin.oneOf.2.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"isRequired":true,"uniqueKey":"origin.oneOf.2.unLoCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"origin.oneOf.2.unLoCode","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.2.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.2.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.2.iataCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"origin.oneOf.2.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.oneOf.2.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.oneOf.2.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.2.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"origin.oneOf.2.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.2.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.2","typeLabel":"UN/LOCODE · object"},{"type":"object","title":"Unstructured address","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["address","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.3.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"origin.oneOf.3.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","isRequired":true,"uniqueKey":"origin.oneOf.3.address","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.3.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.3.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.3.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.3.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.3.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.3.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"origin.oneOf.3.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.oneOf.3.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.oneOf.3.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.3.region","typeLabel":"string"}},"uniqueKey":"origin.oneOf.3","typeLabel":"Unstructured address · object"},{"type":"object","title":"Structured address","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","postcode","city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.4.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"origin.oneOf.4.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"origin.oneOf.4.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"origin.oneOf.4.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"origin.oneOf.4.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.4.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.4.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.4.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.4.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.4.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.4.unLoCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.4.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.4.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.4","typeLabel":"Structured address · object"},{"type":"object","title":"Street \u0026 city","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.5.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"origin.oneOf.5.street","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"origin.oneOf.5.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"origin.oneOf.5.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.5.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.5.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.5.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.5.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.5.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.5.unLoCode","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.oneOf.5.postcode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.5.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.5.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.5","typeLabel":"Street \u0026 city · object"},{"type":"object","title":"Street \u0026 postcode","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","postcode","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.6.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"origin.oneOf.6.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"origin.oneOf.6.postcode","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"origin.oneOf.6.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.6.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.6.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.6.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.6.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.6.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.6.unLoCode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.oneOf.6.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.6.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.6.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.6","typeLabel":"Street \u0026 postcode · object"},{"type":"object","title":"Postcode","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["postcode","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.7.type","typeLabel":"enum\u003cstring>"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"origin.oneOf.7.postcode","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"origin.oneOf.7.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.7.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.7.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.7.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.7.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.7.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.7.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"origin.oneOf.7.street","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.oneOf.7.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.7.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.7.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.7","typeLabel":"Postcode · object"},{"type":"object","title":"City","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.oneOf.8.type","typeLabel":"enum\u003cstring>"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"origin.oneOf.8.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"origin.oneOf.8.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"origin.oneOf.8.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"origin.oneOf.8.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"origin.oneOf.8.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"origin.oneOf.8.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"origin.oneOf.8.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"origin.oneOf.8.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"origin.oneOf.8.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.oneOf.8.postcode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.oneOf.8.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"origin.oneOf.8.address","typeLabel":"string"}},"uniqueKey":"origin.oneOf.8","typeLabel":"City · object"}],"uniqueKey":"origin","typeLabel":"Coordinates · object | IATA code · object | UN/LOCODE · object | Unstructured address · object | Structured address · object | Street \u0026 city · object | Street \u0026 postcode · object | Postcode · object | City · object"},"destination":{"oneOf":[{"type":"object","title":"Coordinates","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["latitude","longitude","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.0.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"destination.oneOf.0.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"destination.oneOf.0.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.0.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.0.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.0.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.0.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"destination.oneOf.0.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.oneOf.0.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.oneOf.0.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.0.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"destination.oneOf.0.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.0.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.0","typeLabel":"Coordinates · object"},{"type":"object","title":"IATA code","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["iataCode","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.1.type","typeLabel":"enum\u003cstring>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","isRequired":true,"uniqueKey":"destination.oneOf.1.iataCode","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.1.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.1.longitude","typeLabel":"number\u003cdouble>"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.1.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.1.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.1.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"destination.oneOf.1.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.oneOf.1.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.oneOf.1.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.1.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"destination.oneOf.1.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.1.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.1","typeLabel":"IATA code · object"},{"type":"object","title":"UN/LOCODE","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["unLoCode","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.2.type","typeLabel":"enum\u003cstring>"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"isRequired":true,"uniqueKey":"destination.oneOf.2.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"isRequired":true,"uniqueKey":"destination.oneOf.2.unLoCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"destination.oneOf.2.unLoCode","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.2.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.2.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.2.iataCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"destination.oneOf.2.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.oneOf.2.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.oneOf.2.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.2.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"destination.oneOf.2.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.2.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.2","typeLabel":"UN/LOCODE · object"},{"type":"object","title":"Unstructured address","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["address","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.3.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"destination.oneOf.3.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","isRequired":true,"uniqueKey":"destination.oneOf.3.address","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.3.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.3.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.3.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.3.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.3.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.3.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"destination.oneOf.3.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.oneOf.3.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.oneOf.3.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.3.region","typeLabel":"string"}},"uniqueKey":"destination.oneOf.3","typeLabel":"Unstructured address · object"},{"type":"object","title":"Structured address","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","postcode","city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.4.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"destination.oneOf.4.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"destination.oneOf.4.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"destination.oneOf.4.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"destination.oneOf.4.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.4.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.4.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.4.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.4.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.4.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.4.unLoCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.4.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.4.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.4","typeLabel":"Structured address · object"},{"type":"object","title":"Street \u0026 city","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.5.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"destination.oneOf.5.street","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"destination.oneOf.5.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"destination.oneOf.5.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.5.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.5.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.5.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.5.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.5.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.5.unLoCode","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.oneOf.5.postcode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.5.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.5.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.5","typeLabel":"Street \u0026 city · object"},{"type":"object","title":"Street \u0026 postcode","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","postcode","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.6.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"destination.oneOf.6.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"destination.oneOf.6.postcode","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"destination.oneOf.6.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.6.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.6.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.6.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.6.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.6.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.6.unLoCode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.oneOf.6.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.6.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.6.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.6","typeLabel":"Street \u0026 postcode · object"},{"type":"object","title":"Postcode","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["postcode","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.7.type","typeLabel":"enum\u003cstring>"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"destination.oneOf.7.postcode","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"destination.oneOf.7.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.7.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.7.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.7.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.7.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.7.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.7.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"destination.oneOf.7.street","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.oneOf.7.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.7.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.7.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.7","typeLabel":"Postcode · object"},{"type":"object","title":"City","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.oneOf.8.type","typeLabel":"enum\u003cstring>"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"destination.oneOf.8.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"destination.oneOf.8.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"destination.oneOf.8.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"destination.oneOf.8.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"destination.oneOf.8.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"destination.oneOf.8.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"destination.oneOf.8.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"destination.oneOf.8.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"destination.oneOf.8.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.oneOf.8.postcode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.oneOf.8.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"destination.oneOf.8.address","typeLabel":"string"}},"uniqueKey":"destination.oneOf.8","typeLabel":"City · object"}],"uniqueKey":"destination","typeLabel":"Coordinates · object | IATA code · object | UN/LOCODE · object | Unstructured address · object | Structured address · object | Street \u0026 city · object | Street \u0026 postcode · object | Postcode · object | City · object"},"transportChain":{"type":"array","description":"Represents the sequence of transport and hub operations that define a complete multimodal logistics chain.\n#### Structure ####\nThe `transportChain` is an ordered array of elements describing how cargo moves between points.\n - Each transport element represents a specific operation and has a `type` value of `AIR`, `RAIL`, `ROAD`, `WATER`, or `UNKNOWN`.\n - Each hub element has a `type` of `HUB` and represents the connecting location between consecutive transport segments.\n\n#### Behavior ####\n - If this array is not provided or is empty, fallback transport modes are attempted instead.\n The system will cycle through the fallback modes in order, applying default parameters for each until one succeeds or all fail.\n - Hubs must appear between each pair of transport operations to define the connecting locations between them.\n - Hubs may also appear as the first and/or last elements in the array, acting as the origin or destination\n in place of the top-level `origin` and `destination` properties.\n - The road operations connecting the start and end locations to the selected airports, harbors, and rail yards are added automatically.\n - `WEIGHTED_MODES` transport operations are not supported.\n","items":{"oneOf":[{"type":"object","title":"Unknown transport","required":["type"],"properties":{"type":{"type":"string","enum":["UNKNOWN"],"description":"Indicates that no transport mode was provided. The fallback transport modes are attempted in order, using defaulted parameters for each mode, and the first mode that can be routed is used. The modes are taken from `options`.`fallbackTransportModes`, or default to [`ROAD`, `WATER`, `AIR`].\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"An optional identifier for the transport chain element. When provided, the same identifier is returned on the corresponding transport chain result element in the response.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.0.id","typeLabel":"string"},"context":{"type":"object","description":"Any information you want returned in the response. It is returned unchanged on the corresponding transport chain result element.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.0.context","typeLabel":"object"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.0","typeLabel":"Unknown transport · object"},{"type":"object","title":"Air transport","required":["type"],"properties":{"type":{"type":"string","enum":["AIR"],"description":"Transport by aircraft.\n\nDeparture and arrival airports are selected, and stopovers inserted, exactly as for an emissions calculation. The aircraft (`vehicle` and `aircraftType`) determines the runway requirements and range used for airport and stopover selection. When the start or end location is not an airport, a road transport operation is automatically added to connect it to the selected airport.\n\nIf an air route cannot be generated, the modes in the request `options`.`fallbackTransportModes` (except `AIR`) are attempted in listed order.\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"An optional identifier for the transport chain element. When provided, the same identifier is returned on the corresponding transport chain result element in the response.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.1.id","typeLabel":"string"},"departureDateTime":{"type":"string","format":"date-time","description":"When the aircraft departed its origin airport.\n#### Format ####\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the origin airport's timezone.\n Example (origin JFK): `2025-03-28T09:00` → `2025-03-28T09:00-04:00` \n - UTC times are automatically converted to offset times based on the origin airport's timezone.\n Example (origin JFK): `2025-03-28T13:00Z` → `2025-03-28T09:00-04:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.1.departureDateTime","typeLabel":"string\u003cdate-time>"},"arrivalDateTime":{"type":"string","format":"date-time","description":"When the aircraft arrived at its destination airport.\n#### Format ####\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the destination airport's timezone.\n Example (destination JFK): `2025-03-28T09:00` → `2025-03-28T09:00-04:00` \n - UTC times are automatically converted to offset times based on the destination airport's timezone.\n Example (destination JFK): `2025-03-28T13:00Z` → `2025-03-28T09:00-04:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.1.arrivalDateTime","typeLabel":"string\u003cdate-time>"},"aircraftType":{"type":"string","description":"Identifies the category of aircraft operation used for emissions estimation. Distinct ICAO computational methodologies are applied for passenger and freighter aircraft, yielding materially different emissions results.\n\nUsed in conjunction with the `vehicle` property when the aircraft is referenced by ICAO or IATA code as these often do not distinguish between passenger and freighter configurations. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PASSENGER`\u003c/enumValue>\n \u003cenumHeading>Passenger\u003c/enumHeading>\n \u003cenumDescription>\n An aircraft that carries freight in its belly hold alongside passengers.\n Calculations use the ICAO freighter algorithm, adjusted for belly-freight characteristics.\n When no `vehicle` is specified, a representative belly-freight emissions factor is used.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`FREIGHTER`\u003c/enumValue>\n \u003cenumHeading>Freighter\u003c/enumHeading>\n \u003cenumDescription>\n An aircraft that is purpose-built to carry freight or converted from a passenger aircraft.\n Calculations use the ICAO freighter algorithm, and default to a generic freighter emissions factor when `vehicle` is not provided.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PASSENGER","FREIGHTER"],"uniqueKey":"transportChain.items.[INDEX].oneOf.1.aircraftType","typeLabel":"enum\u003cstring>"},"vehicle":{"type":"string","description":"Identifies the aircraft used for emissions and performance calculations.\n#### Accepted identifiers ####\n - **System identifier**: A unique model id from this system.\n - **ICAO code**: A 4-character (occasionally 3-character) alphanumeric aircraft type designator (Doc 8643) \n that identifies an aircraft type or closely related sub-types.\n - **IATA code**: A 3-character alphanumeric equipment code that identifies an aircraft type or group of variants.\n\n#### Disambiguation ####\n - When an ICAO or IATA code is supplied that maps to both passenger and freighter variants, `aircraftType` can be used to disambiguate.\n - If an ICAO or IATA code still maps to multiple aircraft models after applying `aircraftType`, the system selects the most commonly\n operated model based on global fleet counts.\n - If `aircraftType` is omitted and a given ICAO/IATA code corresponds to both passenger and freighter variants, emissions will be calculated for\n both variants.\n The final emissions result will be produced by combining the passenger and freighter outputs and weighting them according to the IATA\n Global International Available Cargo Tonne-Kilometers (ACTK) shares by cargo business type for: \n - the year of departure, or \n - the year of arrival if departure is not provided, or \n - the current year if neither date is available.\n\n\u003cdetails>\n \u003csummary style=\"font-weight: bold;\">Airbus aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `AIRBUS_A220_100_BELLY_FREIGHT` | `BCS1` | `221` |\n | `AIRBUS_A220_300_BELLY_FREIGHT` | `BCS3` | `223` |\n | `AIRBUS_A300_600_BELLY_FREIGHT` | `A306` | `AB6` |\n | `AIRBUS_A300_600F_FREIGHTER` | `A306` | `ABY` |\n | `AIRBUS_A300_B2_BELLY_FREIGHT` | `A30B` | `AB4` |\n | `AIRBUS_A300_B4_BELLY_FREIGHT` | `A30B` | `AB4` |\n | `AIRBUS_A300B4_200F_FREIGHTER` | `A30B` | `ABX` |\n | `AIRBUS_A310_200_BELLY_FREIGHT` | `A310` | `312` |\n | `AIRBUS_A310_200F_FREIGHTER` | `A310` | `31X` |\n | `AIRBUS_A310_300_BELLY_FREIGHT` | `A310` | `313` |\n | `AIRBUS_A310_300F_FREIGHTER` | `A310` | `31Y` |\n | `AIRBUS_A318_BELLY_FREIGHT` | `A318` | `318` |\n | `AIRBUS_A319_BELLY_FREIGHT` | `A319` | `319` |\n | `AIRBUS_A319_NEO_BELLY_FREIGHT` | `A19N` | `31N` |\n | `AIRBUS_A320_BELLY_FREIGHT` | `A320` | `320` |\n | `AIRBUS_A320_NEO_BELLY_FREIGHT` | `A20N` | `32N` |\n | `AIRBUS_A320_P2F_FREIGHTER` | `A320` | `32A` |\n | `AIRBUS_A320_SHARKLETS_BELLY_FREIGHT` | `A320` | `32A` |\n | `AIRBUS_A321_BELLY_FREIGHT` | `A321` | `321` |\n | `AIRBUS_A321_NEO_BELLY_FREIGHT` | `A21N` | `32Q` |\n | `AIRBUS_A321_P2F_FREIGHTER` | `A321` | `32B` |\n | `AIRBUS_A321_SHARKLETS_BELLY_FREIGHT` | `A321` | `32B` |\n | `AIRBUS_A321F_FREIGHTER` | `A321` | `32B` |\n | `AIRBUS_A330_200_BELLY_FREIGHT` | `A332` | `332` |\n | `AIRBUS_A330_200F_FREIGHTER` | `A332` | `33X` |\n | `AIRBUS_A330_300_BELLY_FREIGHT` | `A333` | `333` |\n | `AIRBUS_A330_300_P2F_FREIGHTER` | `A333` | `33Y` |\n | `AIRBUS_A330_800_NEO_BELLY_FREIGHT` | `A338` | `338` |\n | `AIRBUS_A330_900_NEO_BELLY_FREIGHT` | `A339` | `339` |\n | `AIRBUS_A330_P2F_FREIGHTER` | `A332` | `33X` |\n | `AIRBUS_A340_200_BELLY_FREIGHT` | `A342` | `342` |\n | `AIRBUS_A340_300_BELLY_FREIGHT` | `A343` | `343` |\n | `AIRBUS_A340_500_BELLY_FREIGHT` | `A345` | `345` |\n | `AIRBUS_A340_600_BELLY_FREIGHT` | `A346` | `346` |\n | `AIRBUS_A350_900_BELLY_FREIGHT` | `A359` | `359` |\n | `AIRBUS_A350_1000_BELLY_FREIGHT` | `A35K` | `351` |\n | `AIRBUS_A380_BELLY_FREIGHT` | `A388` | `380` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Antonov aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `ANTONOV_AN_24_BELLY_FREIGHT` | `AN24` | `AN4` |\n | `ANTONOV_AN_24_FREIGHTER` | `AN24` | `AN4` |\n | `ANTONOV_AN_26_FREIGHTER` | `AN26` | `A26` |\n | `ANTONOV_AN_28_FREIGHTER` | `AN28` | `A28` |\n | `ANTONOV_AN_32_FREIGHTER` | `AN32` | `A32` |\n | `ANTONOV_AN_72_FREIGHTER` | `AN72` | `AN7` |\n | `ANTONOV_AN_74_FREIGHTER` | `AN72` | `AN7` |\n | `ANTONOV_AN_124_FREIGHTER` | `A124` | `A4F` |\n | `ANTONOV_AN_140_FREIGHTER` | `A140` | `A40` |\n | `ANTONOV_AN_148_BELLY_FREIGHT` | `A148` | `A81` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">ATR aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `ATR_42_300_BELLY_FREIGHT` | `AT43` | `AT4` |\n | `ATR_42_320_BELLY_FREIGHT` | `AT43` | `AT4` |\n | `ATR_42_400_BELLY_FREIGHT` | `AT44` | `ATD` |\n | `ATR_42_500_BELLY_FREIGHT` | `AT45` | `AT5` |\n | `ATR_42_600_BELLY_FREIGHT` | `AT46` | `ATR` |\n | `ATR_42_FREIGHTER` | `AT43` | `AT4` |\n | `ATR_72_200_BELLY_FREIGHT` | `AT72` | `AT7` |\n | `ATR_72_210_BELLY_FREIGHT` | `AT73` | `ATR` |\n | `ATR_72_500_BELLY_FREIGHT` | `AT75` | `ATR` |\n | `ATR_72_600_BELLY_FREIGHT` | `AT76` | `ATR` |\n | `ATR_72_FREIGHTER` | `AT72` | `ATF` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Avro aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `AVRO_RJ70_BELLY_FREIGHT` | `RJ70` | `AR7` |\n | `AVRO_RJ85_BELLY_FREIGHT` | `RJ85` | `AR8` |\n | `AVRO_RJ100_BELLY_FREIGHT` | `RJ1H` | `AR1` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Boeing aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `BOEING_717_BELLY_FREIGHT` | `B712` | `717` |\n | `BOEING_727_200F_FREIGHTER` | `B722` | `72Y` |\n | `BOEING_737_100_BELLY_FREIGHT` | `B731` | `731` |\n | `BOEING_737_200_BELLY_FREIGHT` | `B732` | `732` |\n | `BOEING_737_200F_FREIGHTER` | `B732` | `73X` |\n | `BOEING_737_300_BELLY_FREIGHT` | `B733` | `733` |\n | `BOEING_737_300F_FREIGHTER` | `B733` | `73Y` |\n | `BOEING_737_300SP_BELLY_FREIGHT` | `B733` | `73C` |\n | `BOEING_737_400_BELLY_FREIGHT` | `B734` | `734` |\n | `BOEING_737_400F_FREIGHTER` | `B734` | `73P` |\n | `BOEING_737_500_BELLY_FREIGHT` | `B735` | `735` |\n | `BOEING_737_500SP_BELLY_FREIGHT` | `B735` | `73E` |\n | `BOEING_737_600_BELLY_FREIGHT` | `B736` | `736` |\n | `BOEING_737_700_BELLY_FREIGHT` | `B737` | `73G` |\n | `BOEING_737_700_WINGLETS_BELLY_FREIGHT` | `B737` | `73W` |\n | `BOEING_737_700CF_FREIGHTER` | `B737` | `73R` |\n | `BOEING_737_800_BELLY_FREIGHT` | `B738` | `738` |\n | `BOEING_737_800_WINGLETS_BELLY_FREIGHT` | `B738` | `73H` |\n | `BOEING_737_800BCF_FREIGHTER` | `B738` | `7F8` |\n | `BOEING_737_800SF_FREIGHTER` | `B738` | `73K` |\n | `BOEING_737_900_BELLY_FREIGHT` | `B739` | `739` |\n | `BOEING_737_900_WINGLETS_BELLY_FREIGHT` | `B739` | `73J` |\n | `BOEING_737_MAX_8_BELLY_FREIGHT` | `B38M` | `7M8` |\n | `BOEING_737_MAX_9_BELLY_FREIGHT` | `B39M` | `7M9` |\n | `BOEING_747_100SF_FREIGHTER` | `B741` | `74T` |\n | `BOEING_747_200_BELLY_FREIGHT` | `B742` | `742` |\n | `BOEING_747_200F_FREIGHTER` | `B742` | `74X` |\n | `BOEING_747_200SF_FREIGHTER` | `B742` | `74X` |\n | `BOEING_747_300_BELLY_FREIGHT` | `B743` | `743` |\n | `BOEING_747_300SF_FREIGHTER` | `B743` | `74U` |\n | `BOEING_747_400_BELLY_FREIGHT` | `B744` | `744` |\n | `BOEING_747_400BCF_FREIGHTER` | `B744` | `74Y` |\n | `BOEING_747_400BDSF_FREIGHTER` | `B744` | `74Y` |\n | `BOEING_747_400ERF_FREIGHTER` | `B744` | `74Y` |\n | `BOEING_747_400F_FREIGHTER` | `B744` | `74Y` |\n | `BOEING_747_8F_FREIGHTER` | `B748` | `74N` |\n | `BOEING_747_8I_BELLY_FREIGHT` | `B748` | `74H` |\n | `BOEING_757_200_BELLY_FREIGHT` | `B752` | `752` |\n | `BOEING_757_200_WINGLETS_BELLY_FREIGHT` | `B752` | `75W` |\n | `BOEING_757_200F_FREIGHTER` | `B752` | `75F` |\n | `BOEING_757_200PCF_FREIGHTER` | `B752` | `75F` |\n | `BOEING_757_200PF_FREIGHTER` | `B752` | `75F` |\n | `BOEING_757_200SF_FREIGHTER` | `B752` | `75F` |\n | `BOEING_757_300_BELLY_FREIGHT` | `B753` | `753` |\n | `BOEING_757_300_WINGLETS_BELLY_FREIGHT` | `B753` | `75T` |\n | `BOEING_767_200_BELLY_FREIGHT` | `B762` | `762` |\n | `BOEING_767_200_FREIGHTER` | `B762` | `76X` |\n | `BOEING_767_200ER_BELLY_FREIGHT` | `B762` | `762` |\n | `BOEING_767_300_BELLY_FREIGHT` | `B763` | `763` |\n | `BOEING_767_300_FREIGHTER` | `B763` | `76Y` |\n | `BOEING_767_300BCF_FREIGHTER` | `B763` | `76Y` |\n | `BOEING_767_300BDSF_FREIGHTER` | `B763` | `76Y` |\n | `BOEING_767_300ER_BELLY_FREIGHT` | `B763` | `76T` |\n | `BOEING_767_300ER_WINGLETS_BELLY_FREIGHT` | `B763` | `76W` |\n | `BOEING_767_400ER_BELLY_FREIGHT` | `B764` | `764` |\n | `BOEING_777_200_BELLY_FREIGHT` | `B772` | `772` |\n | `BOEING_777_200ER_BELLY_FREIGHT` | `B772` | `772` |\n | `BOEING_777_200F_FREIGHTER` | `B77L` | `77X` |\n | `BOEING_777_200LR_BELLY_FREIGHT` | `B77L` | `77L` |\n | `BOEING_777_300_BELLY_FREIGHT` | `B773` | `773` |\n | `BOEING_777_300ER_BELLY_FREIGHT` | `B77W` | `77W` |\n | `BOEING_777_300ERSF_FREIGHTER` | `B773` | `77W` |\n | `BOEING_787_8_BELLY_FREIGHT` | `B788` | `788` |\n | `BOEING_787_9_BELLY_FREIGHT` | `B789` | `789` |\n | `BOEING_787_10_BELLY_FREIGHT` | `B78X` | `781` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Bombardier aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `BOMBARDIER_CRJ100_ER_BELLY_FREIGHT` | `CRJ1` | `CR1` |\n | `BOMBARDIER_CRJ100_LR_BELLY_FREIGHT` | `CRJ1` | `CR1` |\n | `BOMBARDIER_CRJ200_ER_BELLY_FREIGHT` | `CRJ2` | `CR2` |\n | `BOMBARDIER_CRJ200_LR_BELLY_FREIGHT` | `CRJ2` | `CR2` |\n | `BOMBARDIER_CRJ200PF_ER_FREIGHTER` | `CRJ2` | `CRF` |\n | `BOMBARDIER_CRJ200PF_LR_FREIGHTER` | `CRJ2` | `CRF` |\n | `BOMBARDIER_CRJ200SF_ER_FREIGHTER` | `CRJ2` | `CRF` |\n | `BOMBARDIER_CRJ200SF_LR_FREIGHTER` | `CRJ2` | `CRF` |\n | `BOMBARDIER_CRJ550_BELLY_FREIGHT` | `CRJ7` | `CR7` |\n | `BOMBARDIER_CRJ700_BELLY_FREIGHT` | `CRJ7` | `CR7` |\n | `BOMBARDIER_CRJ705_BELLY_FREIGHT` | `CRJ9` | `CRA` |\n | `BOMBARDIER_CRJ900_BELLY_FREIGHT` | `CRJ9` | `CR9` |\n | `BOMBARDIER_CRJ1000_BELLY_FREIGHT` | `CRJX` | `CRK` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">British Aerospace aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `BRITISH_AEROSPACE_ATP_BELLY_FREIGHT` | `ATP` | `ATP` |\n | `BRITISH_AEROSPACE_BAE_146_100_BELLY_FREIGHT` | `B461` | `141` |\n | `BRITISH_AEROSPACE_BAE_146_100QC_FREIGHTER` | `B461` | `14X` |\n | `BRITISH_AEROSPACE_BAE_146_100QT_FREIGHTER` | `B461` | `14X` |\n | `BRITISH_AEROSPACE_BAE_146_200_BELLY_FREIGHT` | `B462` | `142` |\n | `BRITISH_AEROSPACE_BAE_146_200QC_FREIGHTER` | `B462` | `14Y` |\n | `BRITISH_AEROSPACE_BAE_146_200QT_FREIGHTER` | `B462` | `14Y` |\n | `BRITISH_AEROSPACE_BAE_146_300_BELLY_FREIGHT` | `B463` | `143` |\n | `BRITISH_AEROSPACE_BAE_146_300QC_FREIGHTER` | `B463` | `14Z` |\n | `BRITISH_AEROSPACE_BAE_146_300QT_FREIGHTER` | `B463` | `14Z` |\n | `BRITISH_AEROSPACE_JETSTREAM_31_BELLY_FREIGHT` | `JS31` | `J31` |\n | `BRITISH_AEROSPACE_JETSTREAM_32_BELLY_FREIGHT` | `JS32` | `J32` |\n | `BRITISH_AEROSPACE_JETSTREAM_41_BELLY_FREIGHT` | `JS41` | `J41` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Britten-Norman aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `BRITTEN_NORMAN_BN_2_ISLANDER_BELLY_FREIGHT` | `BN2P` | `BNI` |\n | `BRITTEN_NORMAN_BN_2_ISLANDER_FREIGHTER` | `BN2P` | `BNI` |\n | `BRITTEN_NORMAN_TRISLANDER_BELLY_FREIGHT` | `TRIS` | `BNT` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">CASA / IPTN aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `CASA_C_212_100_BELLY_FREIGHT` | `C212` | `CS2` |\n | `CASA_C_212_100_FREIGHTER` | `C212` | `CS2` |\n | `CASA_C_212_200_BELLY_FREIGHT` | `C212` | `CS2` |\n | `CASA_C_212_200_FREIGHTER` | `C212` | `CS2` |\n | `CASA_C_212_300_BELLY_FREIGHT` | `C212` | `CS2` |\n | `CASA_C_212_300_FREIGHTER` | `C212` | `CS2` |\n | `CASA_C_212_400_BELLY_FREIGHT` | `C212` | `CS2` |\n | `CASA_C_212_400_FREIGHTER` | `C212` | `CS2` |\n | `CASA_NC_212I_BELLY_FREIGHT` | `C212` | `CS2` |\n | `CASA_NC_212I_FREIGHTER` | `C212` | `CS2` |\n | `CASA_CN_235_BELLY_FREIGHT` | `CN35` | `CS5` |\n | `CASA_CN_235_FREIGHTER` | `CN35` | `CS5` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Cessna aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `CESSNA_208_BELLY_FREIGHT` | `C208` | `CNC` |\n | `CESSNA_208A_FREIGHTER` | `C208` | `CNC` |\n | `CESSNA_208B_BELLY_FREIGHT` | `C208` | `CNC` |\n | `CESSNA_208B_FREIGHTER` | `C208` | `CNC` |\n | `CESSNA_408_BELLY_FREIGHT` | `C408` | `CNT` |\n | `CESSNA_408_FREIGHTER` | `C408` | `CNT` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Convair aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `CONVAIR_CV_580F_FREIGHTER` | `CVLT` | `CVF` |\n | `CONVAIR_CV_5800F_FREIGHTER` | `CVLT` | `CVF` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Dassault aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `DASSAULT_FALCON_20DC_FREIGHTER` | `FA20` | `DF2` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">De Havilland Canada aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `DE_HAVILLAND_CANADA_DHC_2_BELLY_FREIGHT` | `DHC2` | `DHP` |\n | `DE_HAVILLAND_CANADA_DHC_2_FREIGHTER` | `DHC2` | `DHP` |\n | `DE_HAVILLAND_CANADA_DHC_2T_BELLY_FREIGHT` | `DH2T` | `DHR` |\n | `DE_HAVILLAND_CANADA_DHC_2T_FREIGHTER` | `DH2T` | `DHR` |\n | `DE_HAVILLAND_CANADA_DHC_3_BELLY_FREIGHT` | `DHC3` | `DHS` |\n | `DE_HAVILLAND_CANADA_DHC_3_FREIGHTER` | `DHC3` | `DHS` |\n | `DE_HAVILLAND_CANADA_DHC_3T_BELLY_FREIGHT` | `DH3T` | `DHL` |\n | `DE_HAVILLAND_CANADA_DHC_3T_FREIGHTER` | `DH3T` | `DHL` |\n | `DE_HAVILLAND_CANADA_DHC_6_100_BELLY_FREIGHT` | `DHC6` | `DHT` |\n | `DE_HAVILLAND_CANADA_DHC_6_100_FREIGHTER` | `DHC6` | `DHT` |\n | `DE_HAVILLAND_CANADA_DHC_6_300_BELLY_FREIGHT` | `DHC6` | `DHT` |\n | `DE_HAVILLAND_CANADA_DHC_6_300_FREIGHTER` | `DHC6` | `DHT` |\n | `DE_HAVILLAND_CANADA_DHC_6_400_BELLY_FREIGHT` | `DHC6` | `DHT` |\n | `DE_HAVILLAND_CANADA_DHC_6_400_FREIGHTER` | `DHC6` | `DHT` |\n | `DE_HAVILLAND_CANADA_DHC_7_BELLY_FREIGHT` | `DHC7` | `DH7` |\n | `DE_HAVILLAND_CANADA_DHC_8_100_BELLY_FREIGHT` | `DH8A` | `DH1` |\n | `DE_HAVILLAND_CANADA_DHC_8_100PF_FREIGHTER` | `DH8A` | `DH1` |\n | `DE_HAVILLAND_CANADA_DHC_8_200_BELLY_FREIGHT` | `DH8B` | `DH2` |\n | `DE_HAVILLAND_CANADA_DHC_8_300_BELLY_FREIGHT` | `DH8C` | `DH3` |\n | `DE_HAVILLAND_CANADA_DHC_8_400_BELLY_FREIGHT` | `DH8D` | `DH4` |\n | `DE_HAVILLAND_CANADA_DHC_8_402PF_FREIGHTER` | `DH8D` | `DH4` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Douglas aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `DOUGLAS_DC3_FREIGHTER` | `DC3` | `D3F` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Embraer aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `EMBRAER_E170_AR_BELLY_FREIGHT` | `E170` | `E70` |\n | `EMBRAER_E170_LR_BELLY_FREIGHT` | `E170` | `E70` |\n | `EMBRAER_E175_AR_BELLY_FREIGHT` | `E75L` | `E75` |\n | `EMBRAER_E175_LR_BELLY_FREIGHT` | `E75L` | `E75` |\n | `EMBRAER_E190_AR_BELLY_FREIGHT` | `E290` | `290` |\n | `EMBRAER_E190_LR_BELLY_FREIGHT` | `E190` | `E90` |\n | `EMBRAER_E195_AR_BELLY_FREIGHT` | `E295` | `295` |\n | `EMBRAER_E195_LR_BELLY_FREIGHT` | `E195` | `E95` |\n | `EMBRAER_EMB_110_BELLY_FREIGHT` | `E110` | `EMB` |\n | `EMBRAER_EMB_110_FREIGHTER` | `E110` | `EMB` |\n | `EMBRAER_EMB_120_BELLY_FREIGHT` | `E120` | `EM2` |\n | `EMBRAER_EMB_120FC_FREIGHTER` | `E120` | `EM2` |\n | `EMBRAER_EMB_120QC_FREIGHTER` | `E120` | `EM2` |\n | `EMBRAER_ERJ_135_BELLY_FREIGHT` | `E135` | `ER3` |\n | `EMBRAER_ERJ_140_BELLY_FREIGHT` | `E135` | `ERD` |\n | `EMBRAER_ERJ_145_BELLY_FREIGHT` | `E145` | `ER4` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Fairchild Dornier aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `FAIRCHILD_DORNIER_DO_228_BELLY_FREIGHT` | `D228` | `D28` |\n | `FAIRCHILD_DORNIER_DO_228_FREIGHTER` | `D228` | `D28` |\n | `FAIRCHILD_DORNIER_DO_328_BELLY_FREIGHT` | `D328` | `D38` |\n | `FAIRCHILD_DORNIER_328JET_BELLY_FREIGHT` | `J328` | `FRJ` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Fairchild Swearingen aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `FAIRCHILD_SWEARINGEN_METRO_II_BELLY_FREIGHT` | `SW2` | `SWM` |\n | `FAIRCHILD_SWEARINGEN_METRO_II_FREIGHTER` | `SW2` | `SWM` |\n | `FAIRCHILD_SWEARINGEN_METRO_III_BELLY_FREIGHT` | `SW3` | `SWM` |\n | `FAIRCHILD_SWEARINGEN_METRO_III_FREIGHTER` | `SW3` | `SWM` |\n | `FAIRCHILD_SWEARINGEN_METRO_23_BELLY_FREIGHT` | `SW4` | `SWM` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Fokker aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `FOKKER_F27_BELLY_FREIGHT` | `F27` | `F27` |\n | `FOKKER_F27_FREIGHTER` | `F27` | `F27` |\n | `FOKKER_F50_BELLY_FREIGHT` | `F50` | `F50` |\n | `FOKKER_F50_FREIGHTER` | `F50` | `F5F` |\n | `FOKKER_F70_BELLY_FREIGHT` | `F70` | `F70` |\n | `FOKKER_100_BELLY_FREIGHT` | `F100` | `100` |\n | `FOKKER_100QC_FREIGHTER` | `F100` | `100` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Harbin aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `HARBIN_Y12_BELLY_FREIGHT` | `Y12` | `YN2` |\n | `HARBIN_Y12F_FREIGHTER` | `Y12` | `YN2` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Hawker Siddeley aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `HAWKER_SIDDELEY_HS_748_FREIGHTER` | `A748` | `HS7` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Ilyushin aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `ILYUSHIN_IL_18_FREIGHTER` | `IL18` | `IL8` |\n | `ILYUSHIN_IL_76TD_90_FREIGHTER` | `IL76` | `IL7` |\n | `ILYUSHIN_IL_76TD_FREIGHTER` | `IL76` | `IL7` |\n | `ILYUSHIN_IL_96_300_BELLY_FREIGHT` | `IL96` | `I93` |\n | `ILYUSHIN_IL_96_400_BELLY_FREIGHT` | `IL96` | `I93` |\n | `ILYUSHIN_IL_96_400T_FREIGHTER` | `IL96` | `I9F` |\n | `ILYUSHIN_IL_96M_BELLY_FREIGHT` | `IL96` | `I9M` |\n | `ILYUSHIN_IL_96T_FREIGHTER` | `IL96` | `I9Y` |\n | `ILYUSHIN_IL114_BELLY_FREIGHT` | `I114` | `I14` |\n | `ILYUSHIN_IL114_FREIGHTER` | `I114` | `I14` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Let Kunovice aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `LET_KUNOVICE_L_410_BELLY_FREIGHT` | `L410` | `L4T` |\n | `LET_KUNOVICE_L_410NG_FREIGHTER` | `L410` | `L4T` |\n | `LET_KUNOVICE_L_410T_FREIGHTER` | `L410` | `L4T` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Lockheed aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `LOCKHEED_L_100_FREIGHTER` | `C130` | `LOH` |\n | `LOCKHEED_L_188_FREIGHTER` | `L188` | `LOF` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">McDonnell Douglas aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `MCDONNELL_DOUGLAS_DC_10_30F_FREIGHTER` | `DC10` | `D1Y` |\n | `MCDONNELL_DOUGLAS_DC8_55F_FREIGHTER` | `DC85` | `D8T` |\n | `MCDONNELL_DOUGLAS_DC8_62F_FREIGHTER` | `DC86` | `D8X` |\n | `MCDONNELL_DOUGLAS_DC8_63F_FREIGHTER` | `DC86` | `D8X` |\n | `MCDONNELL_DOUGLAS_DC8_73F_FREIGHTER` | `DC87` | `D8Y` |\n | `MCDONNELL_DOUGLAS_DC9_10_BELLY_FREIGHT` | `DC91` | `D91` |\n | `MCDONNELL_DOUGLAS_DC9_10C_FREIGHTER` | `DC91` | `D9X` |\n | `MCDONNELL_DOUGLAS_DC9_10F_FREIGHTER` | `DC91` | `D9X` |\n | `MCDONNELL_DOUGLAS_DC9_20_BELLY_FREIGHT` | `DC92` | `D92` |\n | `MCDONNELL_DOUGLAS_DC9_30_BELLY_FREIGHT` | `DC93` | `D93` |\n | `MCDONNELL_DOUGLAS_DC9_30F_FREIGHTER` | `DC93` | `D9C` |\n | `MCDONNELL_DOUGLAS_DC9_40_BELLY_FREIGHT` | `DC94` | `D94` |\n | `MCDONNELL_DOUGLAS_DC9_50_BELLY_FREIGHT` | `DC95` | `D95` |\n | `MCDONNELL_DOUGLAS_MD_11_FREIGHTER` | `MD11` | `M1F` |\n | `MCDONNELL_DOUGLAS_MD_81_BELLY_FREIGHT` | `MD81` | `M81` |\n | `MCDONNELL_DOUGLAS_MD_81SF_FREIGHTER` | `MD81` | `M81` |\n | `MCDONNELL_DOUGLAS_MD_82_BELLY_FREIGHT` | `MD82` | `M82` |\n | `MCDONNELL_DOUGLAS_MD_82SF_FREIGHTER` | `MD82` | `M82` |\n | `MCDONNELL_DOUGLAS_MD_83_BELLY_FREIGHT` | `MD83` | `M83` |\n | `MCDONNELL_DOUGLAS_MD_83SF_FREIGHTER` | `MD83` | `M83` |\n | `MCDONNELL_DOUGLAS_MD_87_BELLY_FREIGHT` | `MD87` | `M87` |\n | `MCDONNELL_DOUGLAS_MD_88_BELLY_FREIGHT` | `MD88` | `M88` |\n | `MCDONNELL_DOUGLAS_MD_88SF_FREIGHTER` | `MD88` | `M88` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Mitsubishi aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `MITSUBISHI_MU_2_FREIGHTER` | `MU2` | `MU2` |\n | `MITSUBISHI_MU_2_LONG_FUSELAGE_BELLY_FREIGHT` | `MU2` | `MU2` |\n | `MITSUBISHI_MU_2_SHORT_FUSELAGE_BELLY_FREIGHT` | `MU2` | `MU2` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">PZL Mielec aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `PZL_MIELEC_M28_FREIGHTER` | `AN28` | `A28` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Pilatus aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `PILATUS_PC_6_BELLY_FREIGHT` | `PC6T` | `PL6` |\n | `PILATUS_PC_6_FREIGHTER` | `PC6T` | `PL6` |\n | `PILATUS_PC_12_BELLY_FREIGHT` | `PC12` | `PL2` |\n | `PILATUS_PC_12_FREIGHTER` | `PC12` | `PL2` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Piper aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `PIPER_PA_31_BELLY_FREIGHT` | `PA31` | `PA2` |\n | `PIPER_PA_31_FREIGHTER` | `PA31` | `PA2` |\n | `PIPER_PA_32_BELLY_FREIGHT` | `PA32` | `PA1` |\n | `PIPER_PA_32_FREIGHTER` | `PA32` | `PA1` |\n | `PIPER_PA_34_BELLY_FREIGHT` | `PA34` | `PA2` |\n | `PIPER_PA_34_FREIGHTER` | `PA34` | `PA2` |\n | `PIPER_PA_60_BELLY_FREIGHT` | `AEST` | `PA2` |\n | `PIPER_PA_60_FREIGHTER` | `AEST` | `PA2` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Raytheon Beechcraft aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `RAYTHEON_BEECHCRAFT_1900C_BELLY_FREIGHT` | `B190` | `BES` |\n | `RAYTHEON_BEECHCRAFT_1900C_FREIGHTER` | `B190` | `BES` |\n | `RAYTHEON_BEECHCRAFT_1900D_BELLY_FREIGHT` | `B190` | `BEH` |\n | `RAYTHEON_BEECHCRAFT_1900D_FREIGHTER` | `B190` | `BEH` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Saab AB aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `SAAB_2000_BELLY_FREIGHT` | `SB20` | `S20` |\n | `SAAB_340A_BELLY_FREIGHT` | `SF34` | `SF3` |\n | `SAAB_340A_FREIGHTER` | `SF34` | `SFF` |\n | `SAAB_340B_BELLY_FREIGHT` | `SF34` | `SF3` |\n | `SAAB_340B_FREIGHTER` | `SF34` | `SFF` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Short Brothers aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `SHORT_BROTHERS_SC_5_FREIGHTER` | `BELF` | `SHB` |\n | `SHORT_BROTHERS_SC_7_FREIGHTER` | `SC7` | `SHS` |\n | `SHORT_BROTHERS_SD_330_BELLY_FREIGHT` | `SH33` | `SH3` |\n | `SHORT_BROTHERS_SD_330_FREIGHTER` | `SH33` | `SH3` |\n | `SHORT_BROTHERS_SD_360_300F_FREIGHTER` | `SH36` | `SH6` |\n | `SHORT_BROTHERS_SD_360_BELLY_FREIGHT` | `SH36` | `SH6` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Sukhoi aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `SUKHOI_SUPERJET_100_BELLY_FREIGHT` | `SU95` | `SU9` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Tupolev aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `TUPOLEV_TU_204_100_BELLY_FREIGHT` | `T204` | `T20` |\n | `TUPOLEV_TU_204_100C_FREIGHTER` | `T204` | `T20` |\n | `TUPOLEV_TU_204_120_BELLY_FREIGHT` | `T204` | `T20` |\n | `TUPOLEV_TU_204_120C_FREIGHTER` | `T204` | `T20` |\n | `TUPOLEV_TU_204_300_BELLY_FREIGHT` | `T204` | `T20` |\n | `TUPOLEV_TU_214_BELLY_FREIGHT` | `T204` | `T20` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Xi'an aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `XIAN_MA60_BELLY_FREIGHT` | `MA60` | `MA6` |\n | `XIAN_MA600_BELLY_FREIGHT` | `MA60` | `MA6` |\n | `XIAN_MA600F_FREIGHTER` | `MA60` | `MA6` |\n\n\u003c/details>\n\u003cdetails>\n \u003csummary style=\"font-weight: bold\">Yakovlev aircraft\u003c/summary>\n\n | System Identifier | ICAO code | IATA code |\n |------------------------------------------------|-----------|-----------|\n | `YAKOVLEV_YAK_40_BELLY_FREIGHT` | `YK40` | `YK4` |\n | `YAKOVLEV_YAK_40K_FREIGHTER` | `YK40` | `YK4` |\n | `YAKOVLEV_YAK_42_BELLY_FREIGHT` | `YK42` | `YK2` |\n\n\u003c/details>\n","uniqueKey":"transportChain.items.[INDEX].oneOf.1.vehicle","typeLabel":"string"},"context":{"type":"object","description":"Any information you want returned in the response. It is returned unchanged on the corresponding transport chain result element.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.1.context","typeLabel":"object"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.1","typeLabel":"Air transport · object"},{"type":"object","title":"Rail transport","required":["type"],"properties":{"type":{"type":"string","enum":["RAIL"],"description":"Transport by train.\n\nThe nearest rail yards to the start and end locations are selected, exactly as for an emissions calculation. When the start or end location is not a rail yard, a road transport operation is automatically added to connect it to the selected rail yard.\n\nIf a rail route cannot be generated, the modes in the request `options`.`fallbackTransportModes` (except `RAIL`) are attempted in listed order.\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"An optional identifier for the transport chain element. When provided, the same identifier is returned on the corresponding transport chain result element in the response.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.2.id","typeLabel":"string"},"departureDateTime":{"type":"string","format":"date-time","description":"When the train departed its origin railyard.\n#### Format ####\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the origin railyard's timezone.\n Example (origin Paris): `2025-03-28T09:00` → `2025-03-28T09:00+01:00` \n - UTC times are automatically converted to offset times based on the origin railyard's timezone.\n Example (origin Paris): `2025-03-28T08:00Z` → `2025-03-28T09:00+01:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.2.departureDateTime","typeLabel":"string\u003cdate-time>"},"arrivalDateTime":{"type":"string","format":"date-time","description":"When the train arrived at its destination railyard.\n#### Format ####\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the destination railyard's timezone.\n Example (destination London): `2025-03-28T09:00` → `2025-03-28T09:00+00:00` \n - UTC times are automatically converted to offset times based on the destination railyard's timezone.\n Example (destination London): `2025-03-28T09:00Z` → `2025-03-28T09:00+00:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.2.arrivalDateTime","typeLabel":"string\u003cdate-time>"},"vehicle":{"description":"The type of train used. When this property is set, the `trainType`, `grossTrainWeight`, and `cargo`.`category` properties are ignored. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`LIGHT_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Light train\u003c/enumHeading>\n \u003cenumDescription>A mixed cargo (manifest) freight train with a gross weight less than 750 tonnes.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AVERAGE_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Average train\u003c/enumHeading>\n \u003cenumDescription>A mixed cargo (manifest) freight train with a gross weight between 750 and 1,250 tonnes.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LARGE_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Large train\u003c/enumHeading>\n \u003cenumDescription>A mixed cargo (manifest) freight train with a gross weight between 1,250 and 1,750 tonnes.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EXTRA_LARGE_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Extra large train\u003c/enumHeading>\n \u003cenumDescription>A mixed cargo (manifest) freight train with a gross weight between 1,750 and 2,250 tonnes.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HEAVY_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Heavy train\u003c/enumHeading>\n \u003cenumDescription>A mixed cargo (manifest) freight train with a gross weight greater than 2,250 tonnes.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AUTOMOBILE_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Automobile\u003c/enumHeading>\n \u003cenumDescription>A dedicated (unit) freight train composed solely of autorack wagons used for transporting road vehicles.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CHEMICALS_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Chemicals train\u003c/enumHeading>\n \u003cenumDescription>\n A dedicated (unit) freight train composed solely of tank or specialized wagons used for transporting chemical products, \n including oil, petroleum derivatives, and liquefied gases.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CONTAINER_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Container train\u003c/enumHeading>\n \u003cenumDescription>A dedicated (unit) freight train composed solely of flat or well wagons used for transporting containers.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DOUBLE_CONTAINER_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Double container train\u003c/enumHeading>\n \u003cenumDescription>A dedicated (unit) freight train composed solely of well wagons used for transporting double-stacked containers.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`COAL_AND_STEEL_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Coal and steel train\u003c/enumHeading>\n \u003cenumDescription>A dedicated (unit) freight train composed solely of hopper and gondola wagons used for transporting coal and steel products.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`BUILDING_MATERIALS_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Building materials train\u003c/enumHeading>\n \u003cenumDescription>\n A dedicated (unit) freight train composed solely of appropriate wagons used for transporting bulk and palletized building materials.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MANUFACTURED_PRODUCTS_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Manufactured products train\u003c/enumHeading>\n \u003cenumDescription>\n A dedicated (unit) freight train composed solely of covered or specialized wagons used for transporting manufactured goods.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CEREALS_TRAIN`\u003c/enumValue>\n \u003cenumHeading>Cereals train\u003c/enumHeading>\n \u003cenumDescription>\n A dedicated (unit) freight train composed solely of covered hopper wagons used for transporting cereal grains.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["LIGHT_TRAIN","AVERAGE_TRAIN","LARGE_TRAIN","EXTRA_LARGE_TRAIN","HEAVY_TRAIN","AUTOMOBILE_TRAIN","CHEMICALS_TRAIN","CONTAINER_TRAIN","DOUBLE_CONTAINER_TRAIN","COAL_AND_STEEL_TRAIN","BUILDING_MATERIALS_TRAIN","MANUFACTURED_PRODUCTS_TRAIN","CEREALS_TRAIN"],"type":"string","uniqueKey":"transportChain.items.[INDEX].oneOf.2.vehicle","typeLabel":"enum\u003cstring>"},"trainType":{"description":"Indicates the type of train. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`MANIFEST`\u003c/enumValue>\n \u003cenumHeading>Manifest\u003c/enumHeading>\n \u003cenumDescription>\n A general or mixed-cargo train for which emissions are calculated based on the train’s gross tonnage.\n \u003cenumBullet>The `grossTrainWeight` (when provided) is used to determine the train size.\u003c/enumBullet>\n \u003cenumBullet>\n If `grossTrainWeight` is not provided, the size defaults based on the region of operation (e.g., `AVERAGE_TRAIN` in Europe, and `HEAVY_TRAIN` in USA).\n \u003c/enumBullet>\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`UNIT`\u003c/enumValue>\n \u003cenumHeading>Unit\u003c/enumHeading>\n \u003cenumDescription>\n A freight train dedicated to a single type of cargo, with emissions calculated based on that cargo category.\n \u003cenumBullet>`grossTrainWeight` is ignored.\u003c/enumBullet>\n \u003cenumBullet>The `cargo`.`category` is used to determine the train type.\u003c/enumBullet>\n \u003cenumBullet>\n The `GENERAL` and `REFRIGERATED_BULK` cargo categories are treated as containerized, with wagon size varying by region (e.g., single-stacked containers in Europe, double-stacked in the USA).\n \u003c/enumBullet>\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["MANIFEST","UNIT"],"type":"string","uniqueKey":"transportChain.items.[INDEX].oneOf.2.trainType","typeLabel":"enum\u003cstring>"},"grossTrainWeight":{"type":"object","description":"Gross weight of the train. For `MANIFEST` trains, this value is used to select the appropriate train size according to the following weight ranges\n| Gross Weight | Manifest Train Type |\n|---------------------------|-----------------------|\n| \u003c 750 tonnes | `LIGHT_TRAIN` |\n| 750 to 1,250 tonnes | `AVERAGE_TRAIN` |\n| 1,250 to 1,750 tonnes | `LARGE_TRAIN` |\n| 1,750 to 2,250 tonnes | `EXTRA_LARGE_TRAIN` |\n| > 2,250 tonnes | `HEAVY_TRAIN` | \n","required":["value","unit"],"properties":{"value":{"type":"number","format":"double","description":"Numeric value representing the train's gross weight.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.2.grossTrainWeight.value","typeLabel":"number\u003cdouble>"},"unit":{"type":"string","description":"Unit of measurement for the train's gross weight, in either metric or U.S. customary units. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAM`\u003c/enumValue>\n \u003cenumHeading>Kilogram\u003c/enumHeading>\n \u003cenumDescription>Measure in kilograms.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUND`\u003c/enumValue>\n \u003cenumHeading>Pound\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary / imperial pounds.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`METRIC_TONNE`\u003c/enumValue>\n \u003cenumHeading>Metric tonne\u003c/enumHeading>\n \u003cenumDescription>Measure in metric tonnes (1000 kg).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`US_SHORT_TON`\u003c/enumValue>\n \u003cenumHeading>US short ton\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary short tons (two thousand pounds).\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["KILOGRAM","POUND","METRIC_TONNE","US_SHORT_TON"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.2.grossTrainWeight.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.2.grossTrainWeight","typeLabel":"object"},"energyType":{"type":"string","description":"The form of energy used to power the train’s traction system.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`ELECTRICITY`\u003c/enumValue>\n \u003cenumHeading>Electricity\u003c/enumHeading>\n \u003cenumDescription>\n Energy supplied from the national electrical grid in the country of operation,\n with emissions based on the grid’s generation mix and including transmission, distribution, and pantograph connection losses.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DIESEL`\u003c/enumValue>\n \u003cenumHeading>Diesel\u003c/enumHeading>\n \u003cenumDescription>\n Energy supplied by petroleum (fossil-derived) diesel fuel, with biofuel content, if any, determined by the country of operation.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["ELECTRICITY","DIESEL"],"uniqueKey":"transportChain.items.[INDEX].oneOf.2.energyType","typeLabel":"enum\u003cstring>"},"context":{"type":"object","description":"Any information you want returned in the response. It is returned unchanged on the corresponding transport chain result element.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.2.context","typeLabel":"object"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.2","typeLabel":"Rail transport · object"},{"type":"object","title":"Road transport","required":["type"],"properties":{"type":{"type":"string","enum":["ROAD"],"description":"Transport by road. Roll-on/roll-off ferry and train crossings are included where the route requires them.\n\nIf a road route cannot be generated, the modes in the request `options`.`fallbackTransportModes` (except `ROAD`) are attempted in listed order.\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"An optional identifier for the transport chain element. When provided, the same identifier is returned on the corresponding transport chain result element in the response.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.id","typeLabel":"string"},"departureDateTime":{"type":"string","format":"date-time","description":"When the road vehicle departed its start location.\n#### Format ####\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the start location's timezone.\n Example (origin Sydney): `2025-03-28T09:00` → `2025-03-28T09:00+11:00` \n - UTC times are automatically converted to offset times based on the start location's timezone.\n Example (origin Sydney): `2025-03-27T22:00Z` → `2025-03-28T09:00+11:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.departureDateTime","typeLabel":"string\u003cdate-time>"},"arrivalDateTime":{"type":"string","format":"date-time","description":"When the road vehicle arrived at its end location.\n\n#### Format ####\n\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the destination location's timezone.\n Example (destination Perth): `2025-03-28T09:00` → `2025-03-28T09:00+08:00` \n - UTC times are automatically converted to offset times based on the destination location's timezone.\n Example (destination Perth): `2025-03-28T01:00Z` → `2025-03-28T09:00+08:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.arrivalDateTime","typeLabel":"string\u003cdate-time>"},"vehicle":{"type":"string","description":"Indicates a general category of vehicle used in the operation when only limited information is available. This value acts as a broad placeholder that the system will refine into a more specific vehicle classification based on other properties provided in this object and the `cargo`.`category`. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`LCV_BELOW_3500_KG`\u003c/enumValue>\n \u003cenumHeading>Light commercial vehicle below 3,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Van or light commercial vehicle with gross vehicle weight (GVW) under 3.5 metric tonnes.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LCV_BELOW_8500_LB`\u003c/enumValue>\n \u003cenumHeading>Light commercial vehicle below 8,500lb\u003c/enumHeading>\n \u003cenumDescription>\n Van or light commercial vehicle with gross vehicle weight (GVW) under 8,500 pounds.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LIGHT_DUTY_VEHICLE`\u003c/enumValue>\n \u003cenumHeading>Light duty vehicle\u003c/enumHeading>\n \u003cenumDescription>\n Light truck used as a generic representation of small distribution or service vehicles typically operating \n over short distances in urban, suburban, or similar local environments. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MEDIUM_DUTY_VEHICLE`\u003c/enumValue>\n \u003cenumHeading>Medium duty vehicle\u003c/enumHeading>\n \u003cenumDescription>\n Medium sized truck serving as a generic representation of vehicles typically used for medium haul freight\n movement with moderate cargo capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HEAVY_DUTY_VEHICLE`\u003c/enumValue>\n \u003cenumHeading>Heavy duty vehicle\u003c/enumHeading>\n \u003cenumDescription>\n High capacity vehicle used as a generic representation of vehicles typically operating over long haul routes\n carrying heavy cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["LCV_BELOW_3500_KG","LCV_BELOW_8500_LB","LIGHT_DUTY_VEHICLE","MEDIUM_DUTY_VEHICLE","HEAVY_DUTY_VEHICLE"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.vehicle","typeLabel":"enum\u003cstring>"},"structure":{"type":"string","description":"The structural configuration of the vehicle. This property is used as an additional input to refine vehicle classification. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`ARTICULATED`\u003c/enumValue>\n \u003cenumHeading>Articulated truck\u003c/enumHeading>\n \u003cenumDescription>The vehicle consists of a towing unit connected to one or more trailers through pivoting joints.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RIGID`\u003c/enumValue>\n \u003cenumHeading>Rigid truck\u003c/enumHeading>\n \u003cenumDescription>The vehicle is a single, fixed unit with no separate trailer sections.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DUMP`\u003c/enumValue>\n \u003cenumHeading>Dump truck\u003c/enumHeading>\n \u003cenumDescription>The vehicle is equipped with an open bed that can be raised to unload bulk materials, typically used for transporting construction materials.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["ARTICULATED","RIGID","DUMP"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.structure","typeLabel":"enum\u003cstring>"},"grossWeightBand":{"type":"string","description":"The gross vehicle weight range for the vehicle, used together with the structure property (if provided, otherwise defaulted) to derive a vehicle classification. Some weight bands are specific to Chinese vehicles and will be automatically mapped to the most appropriate equivalent when used for vehicles operating outside China. Likewise, certain bands apply only to Indian vehicles and will be converted when used elsewhere. All other bands are intended for global use and may also be converted as needed. When both `grossWeight` and `grossWeightBand` are supplied, this banded value takes precedence. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`BELOW_1890_KG`\u003c/enumValue>\n \u003cenumHeading>Below 1,890kg\u003c/enumHeading>\n \u003cenumDescription>\n Light vans derived from cars, such as the Peugeot Bipper and Citroën Nemo.\n Converted when used in China, India and North America.\n By default, classified as a N1 Class I vehicle.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`1890_TO_2725_KG`\u003c/enumValue>\n \u003cenumHeading>1,890 to 2,725kg\u003c/enumHeading>\n \u003cenumDescription>\n Medium vans and light pickup trucks. For example, the Toyota Proace City and Ford Maverick.\n Converted when used in China, India and North America.\n By default, classified as a N1 Class II vehicle.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`2725_TO_3500_KG`\u003c/enumValue>\n \u003cenumHeading>2,725 to 3,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Large vans and heavy pickup trucks. For example, the Volkswagen Crafter, Mercedes Sprinter and Ford F-350.\n Converted when used in China, India and North America.\n By default, classified as a N1 Class III vehicle.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`3500_TO_4500_KG`\u003c/enumValue>\n \u003cenumHeading>3,500 to 4,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 3.5 and 4.5 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`3500_TO_5000_KG`\u003c/enumValue>\n \u003cenumHeading>3,500 to 5,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 3.5 and 5.0 tonnes.\n Converted when used outside of India.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`3500_TO_7500_KG`\u003c/enumValue>\n \u003cenumHeading>3,500 to 7,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 3.5 and 7.5 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`4500_TO_5500_KG`\u003c/enumValue>\n \u003cenumHeading>4,500 to 5,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 4.5 and 5.5 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`5000_TO_12000_KG`\u003c/enumValue>\n \u003cenumHeading>5,000 to 12,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 5.0 and 12.0 tonnes.\n Converted when used outside of India.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`5500_TO_7000_KG`\u003c/enumValue>\n \u003cenumHeading>5,500 to 7,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 5.5 and 7.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`7000_TO_8500_KG`\u003c/enumValue>\n \u003cenumHeading>7,000 to 8,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 7.0 and 8.5 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`7500_TO_12000_KG`\u003c/enumValue>\n \u003cenumHeading>7,500 to 12,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 7.5 and 12.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`8500_TO_10500_KG`\u003c/enumValue>\n \u003cenumHeading>8,500 to 10,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 8.5 and 10.5 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`10500_TO_12500_KG`\u003c/enumValue>\n \u003cenumHeading>10,500 to 12,500kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 10.5 and 12.5 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`12000_TO_14000_KG`\u003c/enumValue>\n \u003cenumHeading>12,000 to 14,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 12.0 and 14.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`12000_TO_20000_KG`\u003c/enumValue>\n \u003cenumHeading>12,000 to 20,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 12.0 and 20.0 tonnes.\n Converted when used outside of India.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`12500_TO_14000_KG`\u003c/enumValue>\n \u003cenumHeading>12,500 to 14,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 12.5 and 14.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`14000_TO_16000_KG`\u003c/enumValue>\n \u003cenumHeading>14,000 to 16,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 14.0 and 16.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`14000_TO_18000_KG`\u003c/enumValue>\n \u003cenumHeading>14,000 to 18,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 14.0 and 18.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`14000_TO_20000_KG`\u003c/enumValue>\n \u003cenumHeading>14,000 to 20,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 14.0 and 20.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`16000_TO_20000_KG`\u003c/enumValue>\n \u003cenumHeading>16,000 to 20,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 16.0 and 20.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`18000_TO_24000_KG`\u003c/enumValue>\n \u003cenumHeading>18,000 to 24,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 18.0 and 24.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`20000_TO_25000_KG`\u003c/enumValue>\n \u003cenumHeading>20,000 to 25,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 20.0 and 25.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`20000_TO_26000_KG`\u003c/enumValue>\n \u003cenumHeading>20,000 to 26,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 20.0 and 26.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`20000_TO_30000_KG`\u003c/enumValue>\n \u003cenumHeading>20,000 to 30,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 20.0 and 30.0 tonnes.\n Converted when used outside of India.\n By default, classified as a `RIGID` vehicle.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`24000_TO_27000_KG`\u003c/enumValue>\n \u003cenumHeading>24,000 to 27,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 24.0 and 27.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`25000_TO_29000_KG`\u003c/enumValue>\n \u003cenumHeading>25,000 to 29,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 25.0 and 29.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`26000_TO_28000_KG`\u003c/enumValue>\n \u003cenumHeading>26,000 to 28,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 26.0 and 28.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`27000_TO_29000_KG`\u003c/enumValue>\n \u003cenumHeading>27,000 to 29,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 27.0 and 29.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`28000_TO_32000_KG`\u003c/enumValue>\n \u003cenumHeading>28,000 to 32,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 28.0 and 32.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as a `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`29000_TO_31000_KG`\u003c/enumValue>\n \u003cenumHeading>29,000 to 31,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 29.0 and 31.0 tonnes.\n Converted when used outside of China.\n By default, classified as a `RIGID` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`30000_TO_50000_KG`\u003c/enumValue>\n \u003cenumHeading>30,000 to 50,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 30.0 and 50.0 tonnes.\n Converted when used outside of India.\n By default, classified as an `RIGID` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`30000_TO_60000_KG`\u003c/enumValue>\n \u003cenumHeading>30,000 to 60,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 30.0 and 60.0 tonnes.\n Converted when used outside of India.\n By default, classified as an `ARTICULATED` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`31000_TO_35000_KG`\u003c/enumValue>\n \u003cenumHeading>31,000 to 35,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 31.0 and 35.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`31000_TO_60000_KG`\u003c/enumValue>\n \u003cenumHeading>31,000 to 60,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 31.0 and 60.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`32000_TO_34000_KG`\u003c/enumValue>\n \u003cenumHeading>32,000 to 34,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 32.0 and 34.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as an `ARTICULATED` vehicle.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`34000_TO_40000_KG`\u003c/enumValue>\n \u003cenumHeading>34,000 to 40,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 34.0 and 40.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as an `ARTICULATED` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`35000_TO_40000_KG`\u003c/enumValue>\n \u003cenumHeading>35,000 to 40,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 35.0 and 40.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`40000_TO_43000_KG`\u003c/enumValue>\n \u003cenumHeading>40,000 to 43,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 40.0 and 43.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`40000_TO_50000_KG`\u003c/enumValue>\n \u003cenumHeading>40,000 to 50,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 40.0 and 50.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as an `ARTICULATED` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`43000_TO_46000_KG`\u003c/enumValue>\n \u003cenumHeading>43,000 to 46,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 43.0 and 46.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`50000_TO_60000_KG`\u003c/enumValue>\n \u003cenumHeading>50,000 to 60,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 50.0 and 60.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as an `ARTICULATED` vehicle.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`46000_TO_49000_KG`\u003c/enumValue>\n \u003cenumHeading>46,000 to 49,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 46.0 and 49.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`49000_TO_60000_KG`\u003c/enumValue>\n \u003cenumHeading>49,000 to 60,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 49.0 and 60.0 tonnes.\n Converted when used outside of China.\n By default, classified as an `ARTICULATED` vehicle for all cargo categories, except building materials, where it is classified as a `DUMP` truck.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`60000_TO_64000_KG`\u003c/enumValue>\n \u003cenumHeading>60,000 to 64,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 60.0 and 64.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as an `ARTICULATED` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`64000_TO_72000_KG`\u003c/enumValue>\n \u003cenumHeading>64,000 to 72,000kg\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 64.0 and 72.0 tonnes.\n Converted when used in China, India and North America.\n By default, classified as an `ARTICULATED` vehicle. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`BELOW_8500_LB`\u003c/enumValue>\n \u003cenumHeading>Below 8,500lb\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight below 8,500 pounds.\n Converted when used outside of North America.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`8500_TO_14000_LB`\u003c/enumValue>\n \u003cenumHeading>8,500 to 14,000lb\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 8,500 and 14,000 pounds.\n Converted when used outside of North America.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`14000_TO_19500_LB`\u003c/enumValue>\n \u003cenumHeading>14,000 to 19,500lb\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 14,000 and 19,500 pounds.\n Converted when used outside of North America.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`19500_TO_33000_LB`\u003c/enumValue>\n \u003cenumHeading>19,500 to 33,000lb\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight between 19,500 and 33,000 pounds.\n Converted when used outside of North America.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`OVER_33000_LB`\u003c/enumValue>\n \u003cenumHeading>Over 33,000lb\u003c/enumHeading>\n \u003cenumDescription>\n Vehicles with a gross vehicle weight that exceeds 33,000 pounds.\n Converted when used outside of North America.\n \u003c/enumDescription>\n \u003c/enumItem>\n","enum":["BELOW_1890_KG","1890_TO_2725_KG","2725_TO_3500_KG","3500_TO_4500_KG","3500_TO_5000_KG","3500_TO_7500_KG","4500_TO_5500_KG","5000_TO_12000_KG","5500_TO_7000_KG","7000_TO_8500_KG","7500_TO_12000_KG","8500_TO_10500_KG","10500_TO_12500_KG","12000_TO_14000_KG","12000_TO_20000_KG","12500_TO_14000_KG","14000_TO_16000_KG","14000_TO_18000_KG","14000_TO_20000_KG","16000_TO_20000_KG","18000_TO_24000_KG","20000_TO_25000_KG","20000_TO_26000_KG","20000_TO_30000_KG","24000_TO_27000_KG","25000_TO_29000_KG","26000_TO_28000_KG","27000_TO_29000_KG","28000_TO_32000_KG","29000_TO_31000_KG","30000_TO_50000_KG","30000_TO_60000_KG","31000_TO_35000_KG","31000_TO_60000_KG","32000_TO_34000_KG","34000_TO_40000_KG","35000_TO_40000_KG","40000_TO_43000_KG","40000_TO_50000_KG","43000_TO_46000_KG","46000_TO_49000_KG","49000_TO_60000_KG","50000_TO_60000_KG","60000_TO_64000_KG","64000_TO_72000_KG","BELOW_8500_LB","8500_TO_14000_LB","14000_TO_19500_LB","19500_TO_33000_LB","OVER_33000_LB"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.grossWeightBand","typeLabel":"enum\u003cstring>"},"grossWeight":{"type":"object","description":"The total weight of the vehicle at the time of measurement, including the vehicle itself, its load, and any additional equipment. \n\nThis value is used, together with the structure property (if supplied, otherwise defaulted), to derive the appropriate vehicle classification.\n","required":["value","unit"],"properties":{"value":{"type":"number","format":"double","description":"Numeric value representing the vehicle's gross weight.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.grossWeight.value","typeLabel":"number\u003cdouble>"},"unit":{"type":"string","description":"Unit of measurement for the vehicle's gross weight, in either metric or U.S. customary units. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAM`\u003c/enumValue>\n \u003cenumHeading>Kilogram\u003c/enumHeading>\n \u003cenumDescription>Measure in kilograms.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUND`\u003c/enumValue>\n \u003cenumHeading>Pound\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary / imperial pounds.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`METRIC_TONNE`\u003c/enumValue>\n \u003cenumHeading>Metric tonne\u003c/enumHeading>\n \u003cenumDescription>Measure in metric tonnes (1000 kg).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`US_SHORT_TON`\u003c/enumValue>\n \u003cenumHeading>US short ton\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary short tons (two thousand pounds).\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["KILOGRAM","POUND","METRIC_TONNE","US_SHORT_TON"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.grossWeight.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.3.grossWeight","typeLabel":"object"},"emptyWeight":{"type":"object","description":"The empty weight of the vehicle (also called the unladen weight or tare weight) is the weight of a vehicle by itself, without any cargo, passengers, or additional load. \n\nThis value is converted into an estimated gross vehicle weight using a lookup table of empty-to-gross relationships derived from typical vehicle classes and their associated load factors. \n\n \nThis inferred gross weight is then combined with the structure property (if supplied, otherwise defaulted) to derive a vehicle classification.\n","required":["value","unit"],"properties":{"value":{"type":"number","format":"double","description":"Numeric value representing the vehicle's empty weight.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.emptyWeight.value","typeLabel":"number\u003cdouble>"},"unit":{"type":"string","description":"Unit of measurement for the vehicle's empty weight, in either metric or U.S. customary units. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAM`\u003c/enumValue>\n \u003cenumHeading>Kilogram\u003c/enumHeading>\n \u003cenumDescription>Measure in kilograms.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUND`\u003c/enumValue>\n \u003cenumHeading>Pound\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary / imperial pounds.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`METRIC_TONNE`\u003c/enumValue>\n \u003cenumHeading>Metric tonne\u003c/enumHeading>\n \u003cenumDescription>Measure in metric tonnes (1000 kg).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`US_SHORT_TON`\u003c/enumValue>\n \u003cenumHeading>US short ton\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary short tons (two thousand pounds).\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["KILOGRAM","POUND","METRIC_TONNE","US_SHORT_TON"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.emptyWeight.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.3.emptyWeight","typeLabel":"object"},"maximumWeight":{"type":"object","description":"The maximum vehicle weight (also called the maximum permitted or gross allowable weight) is the highest total weight a vehicle is allowed to operate at, including the vehicle itself, its load, and any additional equipment. \n\nThis value is converted into an estimated gross vehicle weight using a lookup table of maximum-to-gross relationships derived from typical vehicle classes and their associated load factors. \n\nThis inferred gross weight is then combined with the structure property (if supplied, otherwise defaulted) to derive a vehicle classification.\n","required":["value","unit"],"properties":{"value":{"type":"number","format":"double","description":"Numeric value representing the vehicle's maximum weight.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.maximumWeight.value","typeLabel":"number\u003cdouble>"},"unit":{"type":"string","description":"Unit of measurement for the vehicle's maximum weight, in either metric or U.S. customary units. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAM`\u003c/enumValue>\n \u003cenumHeading>Kilogram\u003c/enumHeading>\n \u003cenumDescription>Measure in kilograms.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUND`\u003c/enumValue>\n \u003cenumHeading>Pound\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary / imperial pounds.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`METRIC_TONNE`\u003c/enumValue>\n \u003cenumHeading>Metric tonne\u003c/enumHeading>\n \u003cenumDescription>Measure in metric tonnes (1000 kg).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`US_SHORT_TON`\u003c/enumValue>\n \u003cenumHeading>US short ton\u003c/enumHeading>\n \u003cenumDescription>Measure in U.S. customary short tons (two thousand pounds).\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["KILOGRAM","POUND","METRIC_TONNE","US_SHORT_TON"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.maximumWeight.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.3.maximumWeight","typeLabel":"object"},"yearOfManufacture":{"type":"number","format":"integer","description":"Year the vehicle was manufactured. If the specified year is not supported, then the system falls back to a country level weighted aggregation of vehicle years based on a national age distribution.\n\nIf a year is not provided, them system falls back to the weighted aggregation.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.yearOfManufacture","typeLabel":"number\u003cinteger>"},"emissionsStandard":{"type":"string","description":"The vehicle’s emissions class. If the specified class is unsupported for the vehicle type, energy type, and year of manufacture, then the closest supported class is used instead.\n\nIf no value is provided, the class is defaulted based on the country where the trip originates, the type of vehicle, and the type of energy used. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`EURO_1`\u003c/enumValue>\n \u003cenumHeading>Euro I\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro I\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_2`\u003c/enumValue>\n \u003cenumHeading>Euro II\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro II\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_3`\u003c/enumValue>\n \u003cenumHeading>Euro III\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro III\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_4`\u003c/enumValue>\n \u003cenumHeading>Euro IV\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro IV\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_5`\u003c/enumValue>\n \u003cenumHeading>Euro V\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro V\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_6`\u003c/enumValue>\n \u003cenumHeading>Euro VI\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VI\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_6AB`\u003c/enumValue>\n \u003cenumHeading>Euro VI step A / step B \u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VI step A or step B\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_6AC`\u003c/enumValue>\n \u003cenumHeading>Euro VI step A / step C\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VI step A or step C\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_6C`\u003c/enumValue>\n \u003cenumHeading>Euro VI step C\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VI step C\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_6D_TEMP`\u003c/enumValue>\n \u003cenumHeading>Euro VI step D-TEMP\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VI step D-TEMP\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_6DE`\u003c/enumValue>\n \u003cenumHeading>Euro VI step D / step E\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VI step D or step E\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`EURO_7`\u003c/enumValue>\n \u003cenumHeading>Euro VII\u003c/enumHeading>\n \u003cenumDescription>Emissions class corresponding to Euro VII\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["EURO_1","EURO_2","EURO_3","EURO_4","EURO_5","EURO_6","EURO_6AB","EURO_6AC","EURO_6C","EURO_6D_TEMP","EURO_6DE","EURO_7"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.emissionsStandard","typeLabel":"enum\u003cstring>"},"loadFactor":{"type":"number","format":"double","description":"Percentage utilisation of vehicle capacity. Must be greater than 0. If not provided, it is defaulted based on the vehicle classification and energy type.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.loadFactor","typeLabel":"number\u003cdouble>"},"emptyRunning":{"type":"number","format":"double","description":"Percentage of the trip completed without carrying a load. A value of 0 means no empty running occurred. Values between 0 and 100 indicate a mix of loaded and empty distance. Must be greater than or equal to 0 and less than 100, as 100 would imply the entire trip was empty.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.emptyRunning","typeLabel":"number\u003cdouble>"},"packaging":{"type":"string","description":"The packaging format used for the cargo. This value is used, together with the structure property (if supplied, otherwise defaulted), to help determine the appropriate vehicle classification. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`CONTAINER`\u003c/enumValue>\n \u003cenumHeading>Container\u003c/enumHeading>\n \u003cenumDescription>Cargo is packed in a standard (e.g., TEU, FEU) shipping container.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`PALLET`\u003c/enumValue>\n \u003cenumHeading>Pallet\u003c/enumHeading>\n \u003cenumDescription>Cargo is packed on a standard (e.g., GMA, EUR, ISO) pallet.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["CONTAINER","PALLET"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.packaging","typeLabel":"enum\u003cstring>"},"energyType":{"type":"string","description":"Specifies the type of energy that provides propulsion for the vehicle. This value plays a significant role in determining the vehicle’s emissions profile. If not specified, `DIESEL` is used by default. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`DIESEL`\u003c/enumValue>\n \u003cenumHeading>Diesel\u003c/enumHeading>\n \u003cenumDescription>\n Petroleum (fossil-derived) diesel used in road transport, with biofuel content, if any, determined by the country of operation.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GASOLINE`\u003c/enumValue>\n \u003cenumHeading>Gasoline\u003c/enumHeading>\n \u003cenumDescription>\n Petrol (fossil-derived) diesel used in road transport, with biofuel content, if any, determined by the country of operation.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`ELECTRICITY`\u003c/enumValue>\n \u003cenumHeading>Electricity\u003c/enumHeading>\n \u003cenumDescription>Electrical energy\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LNG`\u003c/enumValue>\n \u003cenumHeading>LNG\u003c/enumHeading>\n \u003cenumDescription>\n Liquefied natural gas (fossil-derived) diesel used in road transport, with biofuel content, if any, determined by the country of operation.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LPG`\u003c/enumValue>\n \u003cenumHeading>LPG\u003c/enumHeading>\n \u003cenumDescription>\n Liquefied petroleum gas (fossil-derived) diesel used in road transport, with biofuel content, if any, determined by the country of operation. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CNG`\u003c/enumValue>\n \u003cenumHeading>CNG\u003c/enumHeading>\n \u003cenumDescription>\n Compressed natural gas (fossil-derived) diesel used in road transport, with biofuel content, if any, determined by the country of operation. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumValue>`HVO100`\u003c/enumValue>\n \u003cenumHeading>HVO100\u003c/enumHeading>\n \u003cenumDescription>Pure hydrotreated vegetable oil with no fossil derived content\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["DIESEL","GASOLINE","ELECTRICITY","LNG","LPG","CNG","HVO100"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.energyType","typeLabel":"enum\u003cstring>"},"loadDistribution":{"type":"string","description":"The cargo's share of vehicle load. If not specified, `LTL` is used by default. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`FTL`\u003c/enumValue>\n \u003cenumHeading>Full truck load\u003c/enumHeading>\n \u003cenumDescription>\n The shipment is allocated exclusive use of the vehicle. \n If the cargo exceeds the vehicle’s capacity, multiple fully loaded trips are assumed.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LTL`\u003c/enumValue>\n \u003cenumHeading>Less than truckload\u003c/enumHeading>\n \u003cenumDescription>\n The shipment uses only part of the vehicle’s capacity, and the remaining space is shared with other loads up to a provided or defaulted load factor.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["FTL","LTL"],"uniqueKey":"transportChain.items.[INDEX].oneOf.3.loadDistribution","typeLabel":"enum\u003cstring>"},"energyConsumption":{"type":"object","description":"The energy consumption of the vehicle. Values may represent absolute quantities (volumetric, gravimetric, or electrical values) or consumption rates (fuel or electricity used per unit distance, or distance achieved per unit of fuel or electricity).\n#### Electrical energy unit (watts / watt-hours / kilowatt-hours) energy type compatibility ####\n - `ELECTRICITY`\n\n#### Gravimetric unit (kilograms / pounds) energy type compatibility ####\n - `DIESEL`\n - `GASOLINE`\n - `LPG`\n - `CNG`\n - `LNG`\n - `HVO100`\n\n#### Volumetric unit (liters / gallons) energy type compatibility ####\n - `DIESEL`\n - `GASOLINE`\n - `LPG`\n - `HVO100`\n","required":["value","unit"],"properties":{"value":{"type":"number","format":"double","description":"The numeric fuel or electrical energy consumption value in the specified `unit`.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.energyConsumption.value","typeLabel":"number\u003cdouble>"},"unit":{"type":"string","description":"Specifies the unit of fuel or electrical energy consumption. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`LITER`\u003c/enumValue>\n \u003cenumHeading>Liter\u003c/enumHeading>\n \u003cenumDescription>The absolute consumed fuel quantity measured in liters.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`US_GALLON`\u003c/enumValue>\n \u003cenumHeading>US gallon\u003c/enumHeading>\n \u003cenumDescription>The absolute consumed fuel quantity measured in U.S. gallons.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`UK_GALLON`\u003c/enumValue>\n \u003cenumHeading>UK gallon\u003c/enumHeading>\n \u003cenumDescription>The absolute consumed fuel quantity measured in U.K. gallons.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAM`\u003c/enumValue>\n \u003cenumHeading>Kilogram\u003c/enumHeading>\n \u003cenumDescription>The absolute consumed fuel quantity measured in kilograms.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUND`\u003c/enumValue>\n \u003cenumHeading>Pound\u003c/enumHeading>\n \u003cenumDescription>The absolute consumed fuel quantity measured in pounds.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LITERS_PER_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Liters per kilometer\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in liters per kilometer.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LITERS_PER_100_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Liters per 100 kilometer\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in liters per 100 kilometers.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOMETERS_PER_LITER`\u003c/enumValue>\n \u003cenumHeading>Kilometers per liter\u003c/enumHeading>\n \u003cenumDescription>Kilometers travelled per liter of fuel consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MILES_PER_US_GALLON`\u003c/enumValue>\n \u003cenumHeading>Miles per US gallon\u003c/enumHeading>\n \u003cenumDescription>Miles (~1.6km) travelled per U.S. gallon of fuel consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MILES_PER_UK_GALLON`\u003c/enumValue>\n \u003cenumHeading>Miles per UK gallon\u003c/enumHeading>\n \u003cenumDescription>Miles (~1.6km) travelled per U.K. gallon of fuel consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`US_GALLONS_PER_100_MILE`\u003c/enumValue>\n \u003cenumHeading>US gallons per 100 mile\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in U.S. gallons per 100 miles (~161km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`UK_GALLONS_PER_100_MILE`\u003c/enumValue>\n \u003cenumHeading>UK gallons per 100 mile\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in U.K. gallons per 100 miles (~161km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAMS_PER_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Kilograms per kilometer\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in kilograms per kilometer.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOGRAMS_PER_100_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Kilograms per 100 kilometer\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in kilograms per 100 kilometers.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOMETERS_PER_KILOGRAM`\u003c/enumValue>\n \u003cenumHeading>Kilometers per kilogram\u003c/enumHeading>\n \u003cenumDescription>Kilometers travelled per kilogram of fuel consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUNDS_PER_MILE`\u003c/enumValue>\n \u003cenumHeading>Pounds per mile\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in pounds per mile (~1.6km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POUNDS_PER_100_MILE`\u003c/enumValue>\n \u003cenumHeading>Pounds per 100 mile\u003c/enumHeading>\n \u003cenumDescription>Fuel consumption rate in pounds per 100 miles (~161km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MILES_PER_POUND`\u003c/enumValue>\n \u003cenumHeading>Miles per pound\u003c/enumHeading>\n \u003cenumDescription>Miles (~1.6km) travelled per pound of fuel consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOWATT_HOURS`\u003c/enumValue>\n \u003cenumHeading>Kilowatt hours\u003c/enumHeading>\n \u003cenumDescription>The absolute consumed electrical energy measured in kilowatt-hours.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOWATT_HOURS_PER_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Kilowatt hours per kilometer\u003c/enumHeading>\n \u003cenumDescription>Electrical energy consumption rate in kilowatt-hours per kilometer.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOWATT_HOURS_PER_100_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Kilowatt hours per 100 kilometer\u003c/enumHeading>\n \u003cenumDescription>Electrical energy consumption rate in kilowatt-hours per 100 kilometers.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`WATT_HOURS_PER_KILOMETER`\u003c/enumValue>\n \u003cenumHeading>Watt hours per kilometer\u003c/enumHeading>\n \u003cenumDescription>Electrical energy consumption rate in watt-hours per kilometer.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOMETERS_PER_KILOWATT_HOUR`\u003c/enumValue>\n \u003cenumHeading>Kilometers per kilowatt hour\u003c/enumHeading>\n \u003cenumDescription>Kilometers travelled per kilowatt hour of electrical energy consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOWATT_HOURS_PER_MILE`\u003c/enumValue>\n \u003cenumHeading>Kilowatt hours per mile\u003c/enumHeading>\n \u003cenumDescription>Electrical energy consumption rate in kilowatt-hours per mile (~1.6km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`KILOWATT_HOURS_PER_100_MILE`\u003c/enumValue>\n \u003cenumHeading>Kilowatt hours per 100 mile\u003c/enumHeading>\n \u003cenumDescription>Electrical energy consumption rate in kilowatt-hours per 100 miles (~161km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`WATT_HOURS_PER_MILE`\u003c/enumValue>\n \u003cenumHeading>Watt hours per mile\u003c/enumHeading>\n \u003cenumDescription>Electrical energy consumption rate in watt-hours per mile (~1.6km).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`MILES_PER_KILOWATT_HOUR`\u003c/enumValue>\n \u003cenumHeading>Miles per kilowatt hour\u003c/enumHeading>\n \u003cenumDescription>Miles (~1.6km) travelled per kilowatt-hour of electrical energy consumption rate.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["LITER","US_GALLON","UK_GALLON","KILOGRAM","POUND","LITERS_PER_KILOMETER","LITERS_PER_100_KILOMETER","KILOMETERS_PER_LITER","MILES_PER_US_GALLON","MILES_PER_UK_GALLON","US_GALLONS_PER_100_MILE","UK_GALLONS_PER_100_MILE","KILOGRAMS_PER_KILOMETER","KILOGRAMS_PER_100_KILOMETER","KILOMETERS_PER_KILOGRAM","POUNDS_PER_MILE","POUNDS_PER_100_MILE","MILES_PER_POUND","KILOWATT_HOURS","KILOWATT_HOURS_PER_100_KILOMETER","KILOWATT_HOURS_PER_KILOMETER","WATT_HOURS_PER_KILOMETER","KILOMETERS_PER_KILOWATT_HOUR","KILOWATT_HOURS_PER_MILE","KILOWATT_HOURS_PER_100_MILE","WATT_HOURS_PER_MILE","MILES_PER_KILOWATT_HOUR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.3.energyConsumption.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.3.energyConsumption","typeLabel":"object"},"context":{"type":"object","description":"Any information you want returned in the response. It is returned unchanged on the corresponding transport chain result element.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.3.context","typeLabel":"object"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.3","typeLabel":"Road transport · object"},{"type":"object","title":"Water transport","required":["type"],"properties":{"type":{"type":"string","enum":["WATER"],"description":"Transport by ship.\n\nHarbors are selected, and the voyage routed, exactly as for an emissions calculation. The vessel (`vehicle`, `capacity`, `size`, or the default vessel for the `cargo`.`category`) determines which harbors can be used, and `navigationConstraints` determines which canals and passages can be used. When the start or end location is not a harbor, a road transport operation is automatically added to connect it to the selected harbor.\n\nIf a sea route cannot be generated, the modes in the request `options`.`fallbackTransportModes` (except `WATER`) are attempted in listed order.\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"An optional identifier for the transport chain element. When provided, the same identifier is returned on the corresponding transport chain result element in the response.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.4.id","typeLabel":"string"},"departureDateTime":{"type":"string","format":"date-time","description":"When the vessel departed its start location.\n#### Format ####\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the start location's timezone.\n Example (origin Shanghai): `2025-03-28T09:00` → `2025-03-28T09:00+08:00` \n - UTC times are automatically converted to offset times based on the start location's timezone.\n Example (origin Shanghai): `2025-03-28T01:00Z` → `2025-03-28T09:00+08:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17` \n","uniqueKey":"transportChain.items.[INDEX].oneOf.4.departureDateTime","typeLabel":"string\u003cdate-time>"},"arrivalDateTime":{"type":"string","format":"date-time","description":"When the vessel arrived at its end location.\n\n#### Format ####\n\nISO 8601 extended format date/time string in one of the following formats.\n - Local date/time (no offset), e.g. `2024-11-17T14:32`\n - UTC (Zulu) time, e.g. `2024-11-17T14:32`\n - Offset time, e.g. `2024-11-17T14:32+01:00`\n\n#### Offset management ####\n - Local times are automatically converted to offset times based on the destination location's timezone.\n Example (destination Rotterdam): `2025-03-28T09:00` → `2025-03-28T09:00+01:00` \n - UTC times are automatically converted to offset times based on the destination location's timezone.\n Example (destination Rotterdam): `2025-03-28T08:00Z` → `2025-03-28T09:00+01:00` \n\n#### Supported precision ####\n - Milliseconds: `2025-04-17T14:32:45.123+01:00`\n - Seconds: `2025-04-17T14:32:45+01:00`\n - Minutes: `2025-04-17T14:32+01:00`\n - Hours: `2025-04-17T14+01:00`\n - Date only: `2025-04-17`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.4.arrivalDateTime","typeLabel":"string\u003cdate-time>"},"vehicle":{"type":"string","description":"The type of vessel used. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`CONTAINER`\u003c/enumValue>\n \u003cenumHeading>Container\u003c/enumHeading>\n \u003cenumDescription>\n Transports standardized shipping containers.\n The default for `GENERAL` and `MANUFACTURED_PRODUCTS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`BULKER`\u003c/enumValue>\n \u003cenumHeading>Bulker\u003c/enumHeading>\n \u003cenumDescription>\n Transports unpackaged bulk goods. \n The default for `BUILDING_MATERIALS`, `CEREALS`, `COAL_AND_STEEL` and `SOLID_CHEMICALS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GENERAL_CARGO`\u003c/enumValue>\n \u003cenumHeading>General cargo\u003c/enumHeading>\n \u003cenumDescription>\n Transports varied packaged or breakbulk goods. \n The fallback when candidate ports show no historical AIS activity for the requested type.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LIQUEFIED_GAS_TANKER`\u003c/enumValue>\n \u003cenumHeading>Liquefied gas tanker\u003c/enumHeading>\n \u003cenumDescription>\n Specialized tanker for transporting liquefied gases like LNG or LPG at very low temperatures or under pressure within insulated tanks.\n The default for `LIQUEFIED_GAS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`OIL_TANKER`\u003c/enumValue>\n \u003cenumHeading>Oil tanker\u003c/enumHeading>\n \u003cenumDescription>\n Tanker that taransports crude oil or refined petroleum products in segregated liquid cargo tanks.\n The default for `OIL` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CHEMICAL_TANKER`\u003c/enumValue>\n \u003cenumHeading>Chemical tanker\u003c/enumHeading>\n \u003cenumDescription>\n Tanker equipped with segregated tanks to transport liquid chemicals.\n The default for `LIQUID_CHEMICALS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`OTHER_LIQUIDS_TANKER`\u003c/enumValue>\n \u003cenumHeading>Other liquids tanker\u003c/enumHeading>\n \u003cenumDescription>\n Tanker that transports liquids outside the oil, gas, and regulated chemical categories such as wine, or fruit juices. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`REFRIGERATED_BULKER`\u003c/enumValue>\n \u003cenumHeading>Refrigerated bulker\u003c/enumHeading>\n \u003cenumDescription>\n Bulk carrier with cooling systems for perishable goods.\n The default for `REFRIGERATED_BULK` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AUTOMOBILE_CARRIER`\u003c/enumValue>\n \u003cenumHeading>Automobile carrier\u003c/enumHeading>\n \u003cenumDescription>\n A roll-on/roll-off vessel that transports cars and other wheeled vehicles.\n The default for `AUTOMOBILES` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["CONTAINER","BULKER","GENERAL_CARGO","LIQUEFIED_GAS_TANKER","OIL_TANKER","CHEMICAL_TANKER","OTHER_LIQUIDS_TANKER","REFRIGERATED_BULKER","AUTOMOBILE_CARRIER"],"uniqueKey":"transportChain.items.[INDEX].oneOf.4.vehicle","typeLabel":"enum\u003cstring>"},"capacity":{"type":"object","description":"Capacity of the vessel.\n\nIf the supplied unit matches the vessel type’s native capacity unit, the value is assigned to a capacity band through a straightforward numeric comparison.\n\nIf the unit differs, the value is first converted to the native capacity unit using regression-based formulas developed from the global shipping fleet. The converted value is then classified into the appropriate capacity band.\n\nFor example, if a `GENERAL_CARGO` vessel’s capacity is provided in `GROSS_TONNE`, the value is transformed into an equivalent `DEAD_WEIGHT_TONNE` estimate using a regression-derived conversion function specific to `GENERAL_CARGO` vessels.\n","required":["value","unit"],"properties":{"value":{"type":"number","format":"double","description":"Vessel's numeric capacity value, interpreted according to the unit.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.4.capacity.value","typeLabel":"number\u003cdouble>"},"unit":{"type":"string","description":"The measurement unit for the vessel’s capacity. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`DEAD_WEIGHT_TONNE`\u003c/enumValue>\n \u003cenumHeading>Dead weight tonne\u003c/enumHeading>\n \u003cenumDescription>\n Total weight a vessel can safely carry, including cargo, fuel, provisions, and crew.\n This is the native unit used to classify capacity on `BULKER`, `GENERAL_CARGO`, `OIL_TANKER`, `CHEMICAL_TANKER`, `OTHER_LIQUIDS_TANKER`, and `REFRIGERATED_BULKER` vessels.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GROSS_TONNE`\u003c/enumValue>\n \u003cenumHeading>Gross tonne\u003c/enumHeading>\n \u003cenumDescription>\n A measure of the vessel’s total internal volume.\n This is the native unit used to classify capacity on `AUTOMOBILE_CARRIER` vessels.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CONTAINER`\u003c/enumValue>\n \u003cenumHeading>Container\u003c/enumHeading>\n \u003cenumDescription>\n The number of standard twenty-foot (TEU) shipping containers the vessel can carry.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CUBIC_METER`\u003c/enumValue>\n \u003cenumHeading>Cubic meter\u003c/enumHeading>\n \u003cenumDescription>\n The volume capacity available for liquid or bulk cargo, measured in cubic meters.\n This is the native unit used to classify capacity on `LIQUEFIED_GAS_TANKER` vessels.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["DEAD_WEIGHT_TONNE","GROSS_TONNE","CONTAINER","CUBIC_METER"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.4.capacity.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.4.capacity","typeLabel":"object"},"size":{"type":"string","description":"The vessel’s size classification. A size class is converted to the vessel type's native capacity band. \nThe size classes listed below are grouped by the vessel types they are most commonly associated with, though some classes overlap across types. \nIf a size class is used with a different vessel type, for example, using the `VLCC` class on a `BULKER` vessel, the system will still perform a valid conversion to a `DEAD_WEIGHT_TONNE` capacity band using regression-based formulas developed from the global shipping fleet. \n#### Dry bulk size classes ####\n | Class Name | Description |\n |---------------|-------------------------------| \n | `MINI_BULKER` | Very small bulk carrier |\n | `SMALL_HANDY` | Small regional carrier |\n | `HANDY` | Versatile mid-size carrier |\n | `HANDYMAX` | Larger handy-size carrier |\n | `SUPRAMAX` | Medium bulk carrier |\n | `ULTRAMAX` | Large capacity bulk carrier |\n | `CAPESIZE` | Large deep sea carrier |\n | `CHINAMAX` | Very large deep draft carrier |\n | `VALEMAX` | Ultra large ore carrier |\n\n#### Tanker size classes ####\n | Class Name | Description |\n |-------------------|-------------------------------------------|\n | `GENERAL_PURPOSE` | Small product tanker |\n | `MEDIUM_RANGE` | Medium product tanker |\n | `LR1` | Long range product tanker |\n | `LR2` | Large long range tanker |\n | `AFRAMAX` | Large global reach petroleum tanker |\n | `SUEZMAX` | Large Suez Canal capable petroleum tanker |\n | `VLCC` | Very large crude tanker |\n | `ULCC` | Ultra large crude tanker |\n\n#### LNG carrier size classes ####\n | Class Name | Description |\n |------------|------------------------|\n | `Q_FLEX` | Large LNG carrier |\n | `Q_MAX` | Very large LNG carrier |\n\n#### Container vessel size classes ####\n | Class Name | Description |\n |----------------|-------------------------------------------------|\n | `SMALL_FEEDER` | Very small regional ship |\n | `FEEDER` | Regional connector ship |\n | `FEEDERMAX` | Large regional feeder ship |\n | `PANAMAX` | Built to fit the original Panama Canal |\n | `POST_PANAMAX` | Larger than original Panama Canal limits |\n | `NEO_PANAMAX` | Built to fit the expanded Panama Canal locks |\n | `ULTRA_LARGE` | Ultra high capacity ships for major trade lanes |\n","enum":["MINI_BULKER","SMALL_HANDY","HANDY","HANDYMAX","SUPRAMAX","ULTRAMAX","CAPESIZE","CHINAMAX","VALEMAX","GENERAL_PURPOSE","MEDIUM_RANGE","LR1","LR2","AFRAMAX","SUEZMAX","VLCC","ULCC","Q_FLEX","Q_MAX","SMALL_FEEDER","FEEDER","FEEDERMAX","PANAMAX","POST_PANAMAX","NEO_PANAMAX","ULTRA_LARGE"],"uniqueKey":"transportChain.items.[INDEX].oneOf.4.size","typeLabel":"enum\u003cstring>"},"containerTypeCode":{"type":"string","minLength":3,"maxLength":4,"description":"ISO 6346 (https://en.wikipedia.org/wiki/ISO_6346) container size/type code. \n\nThe code is mapped to one of three different container categories which each have different emissions intensities when transported on container vessels:\n - 20 foot containers. For example, *22G1* and *22G* map to this category.\n - 40 foot containers. For example, *42R1* maps to this category.\n - ISO tank containers. For example, *22T1* maps to this category.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.4.containerTypeCode","typeLabel":"string"},"energyType":{"type":"string","description":"Specifies the type of energy that provides propulsion for the vessel. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`MDO`\u003c/enumValue>\n \u003cenumHeading>Marine diesel oil\u003c/enumHeading>\n \u003cenumDescription>Used by smaller commercial vessels, ferries, offshore ships, and most inland waterway vessels.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HFO`\u003c/enumValue>\n \u003cenumHeading>Heavy fuel oil\u003c/enumHeading>\n \u003cenumDescription>Used mainly by large ocean going ships like container vessels, bulk carriers, and tankers on long routes.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`VLSFO`\u003c/enumValue>\n \u003cenumHeading>Very low sulfur fuel oil\u003c/enumHeading>\n \u003cenumDescription>Used by most modern deep sea vessels to meet IMO 2020 sulfur limits.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\nIf not provided, it is automatically defaulted based on:\n 1. The type of vessel.\n 2. The capacity of the vessel.\n 3. The region in which the voyage occurs. Different areas impose different sulfur-emission limits, which restrict which marine fuels can be legally used. \n","enum":["HFO","VLSFO","MDO"],"uniqueKey":"transportChain.items.[INDEX].oneOf.4.energyType","typeLabel":"enum\u003cstring>"},"navigationConstraints":{"type":"array","description":"List of navigation constraints specifying canals and passages to avoid when routing the voyage. \n\nRoutes through any waterways listed here will never be used. Independently of these constraints, physical limits such as vessel size or draft may still prevent transit through certain waterways (e.g., ULCC supertankers cannot traverse the Suez Canal even if `AVOID_SUEZ_CANAL` is not specified).\n\nDefault: [`AVOID_NORTHEAST_PASSAGE`, `AVOID_NORTHWEST_PASSAGE`]\n","items":{"type":"string","description":"\u003cenumTable> \u003cenumItem> \u003cenumValue>`AVOID_SUEZ_CANAL`\u003c/enumValue> \u003cenumHeading>Avoid Suez canal\u003c/enumHeading> \u003cenumDescription>Do not use the Suez Canal in the voyage.\u003c/enumDescription> \u003c/enumItem> \u003cenumItem> \u003cenumValue>`AVOID_PANAMA_CANAL`\u003c/enumValue> \u003cenumHeading>Avoid Panama canal\u003c/enumHeading> \u003cenumDescription>Do not use the Panama Canal in the voyage.\u003c/enumDescription> \u003c/enumItem> \u003cenumItem> \u003cenumValue>`AVOID_KIEL_CANAL`\u003c/enumValue> \u003cenumHeading>Avoid Kiel canal\u003c/enumHeading> \u003cenumDescription>Do not use the Kiel Canal in the voyage.\u003c/enumDescription> \u003c/enumItem> \u003cenumItem> \u003cenumValue>`AVOID_CORINTH_CANAL`\u003c/enumValue> \u003cenumHeading>Avoid Corinth canal\u003c/enumHeading> \u003cenumDescription>Do not use the Corinth Canal in the voyage.\u003c/enumDescription> \u003c/enumItem> \u003cenumItem> \u003cenumValue>`AVOID_NORTHEAST_PASSAGE`\u003c/enumValue> \u003cenumHeading>Avoid Northeast Passage\u003c/enumHeading> \u003cenumDescription>Do not route through the Arctic Ocean, along the northern coast of Russia to connect Europe and Asia.\u003c/enumDescription> \u003c/enumItem> \u003cenumItem> \u003cenumValue>`AVOID_NORTHWEST_PASSAGE`\u003c/enumValue> \u003cenumHeading>Avoid Northwest Passage\u003c/enumHeading> \u003cenumDescription> Do not route through the Arctic Ocean, along the northern coasts of Canada and Alaska to connect the Pacific with the Atlantic. \u003c/enumDescription> \u003c/enumItem> \u003c/enumTable>","enum":["AVOID_SUEZ_CANAL","AVOID_PANAMA_CANAL","AVOID_KIEL_CANAL","AVOID_CORINTH_CANAL","AVOID_NORTHEAST_PASSAGE","AVOID_NORTHWEST_PASSAGE"],"uniqueKey":"transportChain.items.[INDEX].oneOf.4.navigationConstraints.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"transportChain.items.[INDEX].oneOf.4.navigationConstraints","typeLabel":"enum\u003cstring>[]"},"context":{"type":"object","description":"Any information you want returned in the response. It is returned unchanged on the corresponding transport chain result element.\n","uniqueKey":"transportChain.items.[INDEX].oneOf.4.context","typeLabel":"object"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.4","typeLabel":"Water transport · object"},{"type":"object","title":"Hub","required":["type","location"],"properties":{"type":{"type":"string","enum":["HUB"],"description":"A location connecting transport legs, or the starting or ending location of the transport chain. Hubs act as connection points between transport operations (within or across modes), splitting the transport chain into legs.\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"location":{"oneOf":[{"type":"object","title":"Coordinates","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["latitude","longitude","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.0","typeLabel":"Coordinates · object"},{"type":"object","title":"IATA code","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["iataCode","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.type","typeLabel":"enum\u003cstring>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.iataCode","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.longitude","typeLabel":"number\u003cdouble>"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.1","typeLabel":"IATA code · object"},{"type":"object","title":"UN/LOCODE","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["unLoCode","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.type","typeLabel":"enum\u003cstring>"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.unLoCode.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.unLoCode","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.iataCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.region","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.2","typeLabel":"UN/LOCODE · object"},{"type":"object","title":"Unstructured address","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["address","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.country","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.address","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3.region","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.3","typeLabel":"Unstructured address · object"},{"type":"object","title":"Structured address","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","postcode","city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.unLoCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.4","typeLabel":"Structured address · object"},{"type":"object","title":"Street \u0026 city","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.street","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.unLoCode","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.postcode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.5","typeLabel":"Street \u0026 city · object"},{"type":"object","title":"Street \u0026 postcode","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["street","postcode","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.type","typeLabel":"enum\u003cstring>"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.postcode","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.unLoCode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.6","typeLabel":"Street \u0026 postcode · object"},{"type":"object","title":"Postcode","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["postcode","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.type","typeLabel":"enum\u003cstring>"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.postcode","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.street","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.city","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.7","typeLabel":"Postcode · object"},{"type":"object","title":"City","description":"Locations resolve either to a transport facility (airport, harbor, or rail yard) or to a general geographic area such as a building, street, postcode, or city. For larger areas, centroids are used to represent the approximate position. \n#### Identification and geocoding #### \n - Airports and harbors can be identified directly by code (`iataCode` for airports, `unLoCode` for harbors). \n - Otherwise, the location is geocoded based on the available address components,\n and if the `type` is not `PLACE`, the closest transport facility of the indicated\n type is selected. \n\n#### Geocoding priority #### \nWhen multiple data sources are provided, they are evaluated in the following order of preference:\n 1. Geographic coordinates (latitude and longitude) \n 2. IATA code (for non-airport locations) \n 3. Structured address components \n 4. UN/LOCODE (for non-harbor locations) \n 5. Unstructured address text \n\nGeocoding accuracy depends on the quality and completeness of the input. Structured addresses almost always yield better results and are tolerant of minor data-entry errors, such as postcodes appearing in street fields. For both structured and unstructured inputs, the most probable match is selected based on lexicographical similarity to known locations. \n#### Operational behavior #### \nWhen a transport facility is specified directly, it will be used regardless of any transport vehicle specified. The system does not enforce suitability constraints. For example, a large aircraft such as a Boeing 747-8F may be routed to Gibraltar International (LXGB) despite its short runways. If the airport were not explicitly chosen, the system would instead select a nearby suitable airport such as Málaga-Costa del Sol (AGP). \n \nSimilarly, a container vessel may be routed to Plymouth (GBPLY) even though the port lacks container handling facilities. If the port were not specified explicitly, a capable alternative such as Southampton (GBSOU) would be selected automatically.\n","required":["city","country","type"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities.\n\u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>General place\u003c/enumHeading>\n \u003cenumDescription>\n The location is resolved to a general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n For transport modes other than road, first and last-mile routing will typically occur between this place and an automatically selected airport, harbor, or rail yard.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If an IATA code (`iataCode`) is provided, the corresponding airport is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, it is resolved to its published coordinates, and the nearest eligible airport to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest eligible airport - typically a commercial or regional airport of reasonable size, not a small private airstrip.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the airport.\n Aircraft selection is unrestricted, even if the system deems the airport's runways unsuitable for the selected aircraft.\n This enables the explicit override of built-in runway suitability assessments, typically for cases where the aircraft is operating below its maximum payload or fuel capacity.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>The location is geocoded and matched to the nearest rail facility or network connection point.\u003c/enumBullet>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) or IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest rail facility or network connection to that point is selected.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the rail yard.\n Rail yards are not identified by a specific code; to reference one directly, provide a structured address or geographic coordinates.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>\n \u003cenumBullet>If a UN/LOCODE (`unLoCode`) is provided, the harbor is looked up directly.\u003c/enumBullet>\n \u003cenumBullet>If an IATA airport code (`iataCode`) is provided, it is resolved to coordinates, and the nearest harbor to that point is selected.\u003c/enumBullet>\n \u003cenumBullet>Otherwise, the location is geocoded and matched to the nearest harbor in the system.\u003c/enumBullet>\n For locations set to this type, there is no first or last-mile routing to or from the harbor.\n Vessel selection is unrestricted, even if the system determines that the harbor cannot accommodate the vessel’s class or size.\n This enables the explicit override of built-in harbor capability constraints, typically for special operational circumstances such as partial-load, repositioning, or coastal operations.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.type","typeLabel":"enum\u003cstring>"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.city","typeLabel":"string"},"country":{"type":"string","description":"Country identifier. Accepts any of the following:\n\n- Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code, e.g.:\n - `US` *(United States)*\n - `FR` *(France)*\n - `DE` *(Germany)*\n\n- Three-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code, e.g.:\n - `USA` *(United States)*\n - `FRA` *(France)*\n - `DEU` *(Germany)*\n\n- Three-digit [ISO 3166-1 numeric](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) country code, e.g.:\n - `840` *(United States)*\n - `250` *(France)*\n - `276` *(Germany)*\n\n- Full country name, including localized or alternative names in different languages and scripts. The examples below are only a small sample of the names that may be recognized for a country:\n - `Germany` *(English)*\n - `Deutschland` *(German)*\n - `Allemagne` *(French)*\n - `德国` or `德國` *(Chinese, simplified or traditional)*\n - `ألمانيا` *(Arabic)*\n","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.country","typeLabel":"string"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.longitude","typeLabel":"number\u003cdouble>"},"iataCode":{"type":"string","description":"Three-letter IATA airport code. Case-insensitive; normalized to uppercase, e.g., \n- `LAX`\n- `LHR`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.iataCode","typeLabel":"string"},"unLoCode":{"oneOf":[{"type":"string","description":"The full 5-character code, e.g., \n- `USNYC`\n- `FRPAR`\n","maxLength":5,"minLength":5,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.unLoCode.oneOf.0","typeLabel":"string"},{"type":"string","description":"3-letter location code. Prefixed with the ISO 3166-1 alpha-2 country code derived from the `country` to build the full 5-character code, e.g., \n- `NYC` (paired with `US` to give `USNYC`)\n- `PAR` (paired with `FR` to give `FRPAR`)\n","maxLength":3,"minLength":3,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.unLoCode.oneOf.1","typeLabel":"string"}],"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.unLoCode","typeLabel":"string"},"street":{"type":"string","description":"Street name and number (if available), or the name of a recognized landmark for the location, e.g.,\n- `1600 Pennsylvania Ave NW`\n- `Château de Versailles`\n- `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.street","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.postcode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory); optional, but can improve geocoding accuracy, e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.region","typeLabel":"string"},"address":{"type":"string","description":"Full unstructured address string containing the complete location as written (street/number, postcode, city, region). Commonly derived from shipping documents, customer records, or other unstructured data sources where the address was not captured in separate fields. Country need not be included - it will be appended automatically, e.g., \n- `1600 Pennsylvania Avenue NW Washington DC 20500`\n- `Platz der Republik 1 11011 Berlin`\n- `Calle de Bailén, s/n, 28071 Madrid`\n","uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location.oneOf.8","typeLabel":"City · object"}],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].oneOf.5.location","typeLabel":"Coordinates · object | IATA code · object | UN/LOCODE · object | Unstructured address · object | Structured address · object | Street \u0026 city · object | Street \u0026 postcode · object | Postcode · object | City · object"}},"uniqueKey":"transportChain.items.[INDEX].oneOf.5","typeLabel":"Hub · object"}],"uniqueKey":"transportChain.items.[INDEX]","typeLabel":"Unknown transport · object | Air transport · object | Rail transport · object | Road transport · object | Water transport · object | Hub · object"},"uniqueKey":"transportChain","typeLabel":"(Unknown transport · object | Air transport · object | Rail transport · object | Road transport · object | Water transport · object | Hub · object)[]"},"context":{"type":"object","description":"Any information you want returned in the response. It is returned unchanged.","uniqueKey":"context","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"123456789","options":{"fallbackTransportModes":["ROAD","AIR"]},"cargo":{"category":"GENERAL"},"origin":{"type":"PLACE","street":"221B Baker Street","postCode":"NW1 6XE","city":"London","country":"GB"},"destination":{"type":"PLACE","street":"Rue Brederode 16","postCode":"1000","city":"Brussel","country":"BE"},"transportChain":[{"id":"123456789-01","type":"WATER","departureDateTime":"2025-12-25T00:00:00+00:00","arrivalDateTime":"2026-01-01T18:12:30Z","vehicle":"CONTAINER","navigationConstraints":["AVOID_KIEL_CANAL","AVOID_NORTHEAST_PASSAGE","AVOID_NORTHWEST_PASSAGE"],"context":{"additionalInformation":"customWaterLegValue"}},{"type":"HUB","location":{"type":"HARBOR","unLoCode":"BEANR"}},{"id":"123456789-02","type":"RAIL","departureDateTime":"2026-01-02T10:00:00+01:00","arrivalDateTime":"2026-01-02T22:00:00+01:00","trainType":"MANIFEST","energyType":"ELECTRICITY","context":{"customProperty":"customRailLegValue"}}]},"examples":{"Example":{"title":"Example","value":{"id":"123456789","options":{"fallbackTransportModes":["ROAD","AIR"]},"cargo":{"category":"GENERAL"},"origin":{"type":"PLACE","street":"221B Baker Street","postCode":"NW1 6XE","city":"London","country":"GB"},"destination":{"type":"PLACE","street":"Rue Brederode 16","postCode":"1000","city":"Brussel","country":"BE"},"transportChain":[{"id":"123456789-01","type":"WATER","departureDateTime":"2025-12-25T00:00:00+00:00","arrivalDateTime":"2026-01-01T18:12:30Z","vehicle":"CONTAINER","navigationConstraints":["AVOID_KIEL_CANAL","AVOID_NORTHEAST_PASSAGE","AVOID_NORTHWEST_PASSAGE"],"context":{"additionalInformation":"customWaterLegValue"}},{"type":"HUB","location":{"type":"HARBOR","unLoCode":"BEANR"}},{"id":"123456789-02","type":"RAIL","departureDateTime":"2026-01-02T10:00:00+01:00","arrivalDateTime":"2026-01-02T22:00:00+01:00","trainType":"MANIFEST","energyType":"ELECTRICITY","context":{"customProperty":"customRailLegValue"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"63d24653-8bc4-4d41-9682-6447af35610a":{"description":"Routes successfully calculated","content":{"application/json":{"schema":{"type":"object","required":["origin","destination","distanceKm","transportChain","creditCost"],"properties":{"origin":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"origin.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"origin.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"origin.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"origin.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"origin.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"origin.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"origin.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"origin.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"origin.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"origin.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"origin.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"origin","typeLabel":"Location · object"},"destination":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"destination.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"destination.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"destination.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"destination.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"destination.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"destination.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"destination.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"destination.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"destination.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"destination.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"destination.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The total distance of the transport chain in kilometers. Distances are the routed distances; no distance adjustment factors are applied.\n","isRequired":true,"uniqueKey":"distanceKm","typeLabel":"number\u003cdouble>"},"transportChain":{"type":"array","description":"The legs of the transport chain, in order.","items":{"type":"object","required":["type","start","end","distanceKm","elements"],"properties":{"type":{"type":"string","description":"The transport mode of the leg. For an `UNKNOWN` operation, this is the fallback mode that was used.","enum":["AIR","RAIL","ROAD","WATER"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The total distance of the leg in kilometers, including its connecting road operations.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].distanceKm","typeLabel":"number\u003cdouble>"},"elements":{"type":"array","description":"The operations making up the leg, in order. For example, a `WATER` leg starting from an address consists of a `ROAD` operation to the selected harbor followed by the `WATER` voyage. A flight with stopovers consists of consecutive `AIR` operations.\n","items":{"oneOf":[{"type":"object","title":"Air operation","required":["type","start","end","distanceKm"],"properties":{"type":{"type":"string","enum":["AIR"],"description":"A flight between two airports.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The distance of the flight in kilometers.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.distanceKm","typeLabel":"number\u003cdouble>"},"vehicle":{"type":"string","description":"The system identifier of the aircraft used. Only included when a specific aircraft was requested; omitted when a generic aircraft class is used.\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.vehicle","typeLabel":"string"},"icaoTypeDesignator":{"type":"string","description":"ICAO type designator for the aircraft when available. This property is omitted if no ICAO code applies.\n\n | ICAO code |\n |-----------|\n | `A124` |\n | `A140` |\n | `A148` |\n | `A19N` |\n | `A20N` |\n | `A21N` |\n | `A306` |\n | `A30B` |\n | `A310` |\n | `A318` |\n | `A319` |\n | `A320` |\n | `A321` |\n | `A332` |\n | `A333` |\n | `A338` |\n | `A339` |\n | `A342` |\n | `A343` |\n | `A345` |\n | `A346` |\n | `A359` |\n | `A35K` |\n | `A388` |\n | `A748` |\n | `AEST` |\n | `AN24` |\n | `AN26` |\n | `AN28` |\n | `AN32` |\n | `AN72` |\n | `AT43` |\n | `AT44` |\n | `AT45` |\n | `AT46` |\n | `AT72` |\n | `AT73` |\n | `AT75` |\n | `AT76` |\n | `ATP` |\n | `B190` |\n | `B38M` |\n | `B39M` |\n | `B461` |\n | `B462` |\n | `B463` |\n | `B712` |\n | `B722` |\n | `B731` |\n | `B732` |\n | `B733` |\n | `B734` |\n | `B735` |\n | `B736` |\n | `B737` |\n | `B738` |\n | `B739` |\n | `B741` |\n | `B742` |\n | `B743` |\n | `B744` |\n | `B748` |\n | `B752` |\n | `B753` |\n | `B762` |\n | `B763` |\n | `B764` |\n | `B772` |\n | `B773` |\n | `B77L` |\n | `B77W` |\n | `B788` |\n | `B789` |\n | `B78X` |\n | `BCS1` |\n | `BCS3` |\n | `BELF` |\n | `BN2P` |\n | `C130` |\n | `C208` |\n | `C212` |\n | `C408` |\n | `CN35` |\n | `CRJ1` |\n | `CRJ2` |\n | `CRJ7` |\n | `CRJ9` |\n | `CRJX` |\n | `CVLT` |\n | `D228` |\n | `D328` |\n | `DC10` |\n | `DC3` |\n | `DC85` |\n | `DC86` |\n | `DC87` |\n | `DC91` |\n | `DC92` |\n | `DC93` |\n | `DC94` |\n | `DC95` |\n | `DH2T` |\n | `DH3T` |\n | `DH8A` |\n | `DH8B` |\n | `DH8C` |\n | `DH8D` |\n | `DHC2` |\n | `DHC3` |\n | `DHC6` |\n | `DHC7` |\n | `E110` |\n | `E120` |\n | `E135` |\n | `E145` |\n | `E170` |\n | `E190` |\n | `E195` |\n | `E290` |\n | `E295` |\n | `E75L` |\n | `F100` |\n | `F27` |\n | `F50` |\n | `F70` |\n | `FA20` |\n | `I114` |\n | `IL18` |\n | `IL76` |\n | `IL96` |\n | `J328` |\n | `JS31` |\n | `JS32` |\n | `JS41` |\n | `L188` |\n | `L410` |\n | `MA60` |\n | `MD11` |\n | `MD81` |\n | `MD82` |\n | `MD83` |\n | `MD87` |\n | `MD88` |\n | `MU2` |\n | `PA31` |\n | `PA32` |\n | `PA34` |\n | `PC12` |\n | `PC6T` |\n | `RJ1H` |\n | `RJ70` |\n | `RJ85` |\n | `SB20` |\n | `SC7` |\n | `SF34` |\n | `SH33` |\n | `SH36` |\n | `SU95` |\n | `SW2` |\n | `SW3` |\n | `SW4` |\n | `T204` |\n | `TRIS` |\n | `Y12` |\n | `YK40` |\n | `YK42` |\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.icaoTypeDesignator","typeLabel":"string"},"iataTypeDesignator":{"type":"string","description":"IATA aircraft type code when available. This property is omitted if no IATA code applies.\n\n | IATA code |\n |-----------|\n | `100` |\n | `141` |\n | `142` |\n | `143` |\n | `14X` |\n | `14Y` |\n | `14Z` |\n | `221` |\n | `223` |\n | `290` |\n | `295` |\n | `312` |\n | `313` |\n | `318` |\n | `319` |\n | `31N` |\n | `31X` |\n | `31Y` |\n | `320` |\n | `321` |\n | `32A` |\n | `32B` |\n | `32N` |\n | `32Q` |\n | `332` |\n | `333` |\n | `338` |\n | `339` |\n | `33X` |\n | `33Y` |\n | `342` |\n | `343` |\n | `345` |\n | `346` |\n | `351` |\n | `359` |\n | `380` |\n | `717` |\n | `72Y` |\n | `731` |\n | `732` |\n | `733` |\n | `734` |\n | `735` |\n | `736` |\n | `738` |\n | `739` |\n | `73C` |\n | `73E` |\n | `73G` |\n | `73H` |\n | `73J` |\n | `73K` |\n | `73P` |\n | `73R` |\n | `73W` |\n | `73X` |\n | `73Y` |\n | `742` |\n | `743` |\n | `744` |\n | `74H` |\n | `74N` |\n | `74T` |\n | `74U` |\n | `74X` |\n | `74Y` |\n | `752` |\n | `753` |\n | `75F` |\n | `75T` |\n | `75W` |\n | `762` |\n | `763` |\n | `764` |\n | `76T` |\n | `76W` |\n | `76X` |\n | `76Y` |\n | `772` |\n | `773` |\n | `77L` |\n | `77W` |\n | `77X` |\n | `781` |\n | `788` |\n | `789` |\n | `7F8` |\n | `7M8` |\n | `7M9` |\n | `A26` |\n | `A28` |\n | `A32` |\n | `A40` |\n | `A4F` |\n | `A81` |\n | `AB4` |\n | `AB6` |\n | `ABX` |\n | `ABY` |\n | `AN4` |\n | `AN7` |\n | `AR1` |\n | `AR7` |\n | `AR8` |\n | `AT4` |\n | `AT5` |\n | `AT7` |\n | `ATD` |\n | `ATF` |\n | `ATP` |\n | `ATR` |\n | `BEH` |\n | `BES` |\n | `BNI` |\n | `BNT` |\n | `CNC` |\n | `CNT` |\n | `CR1` |\n | `CR2` |\n | `CR7` |\n | `CR9` |\n | `CRA` |\n | `CRF` |\n | `CRK` |\n | `CS2` |\n | `CS5` |\n | `CVF` |\n | `D1Y` |\n | `D28` |\n | `D38` |\n | `D3F` |\n | `D8T` |\n | `D8X` |\n | `D8Y` |\n | `D91` |\n | `D92` |\n | `D93` |\n | `D94` |\n | `D95` |\n | `D9C` |\n | `D9X` |\n | `DF2` |\n | `DH1` |\n | `DH2` |\n | `DH3` |\n | `DH4` |\n | `DH7` |\n | `DHL` |\n | `DHP` |\n | `DHR` |\n | `DHS` |\n | `DHT` |\n | `E70` |\n | `E75` |\n | `E90` |\n | `E95` |\n | `EM2` |\n | `EMB` |\n | `ER3` |\n | `ER4` |\n | `ERD` |\n | `F27` |\n | `F50` |\n | `F5F` |\n | `F70` |\n | `FRJ` |\n | `HS7` |\n | `I14` |\n | `I93` |\n | `I9F` |\n | `I9M` |\n | `I9Y` |\n | `IL7` |\n | `IL8` |\n | `J31` |\n | `J32` |\n | `J41` |\n | `L4T` |\n | `LOF` |\n | `LOH` |\n | `M1F` |\n | `M81` |\n | `M82` |\n | `M83` |\n | `M87` |\n | `M88` |\n | `MA6` |\n | `MU2` |\n | `PA1` |\n | `PA2` |\n | `PL2` |\n | `PL6` |\n | `S20` |\n | `SF3` |\n | `SFF` |\n | `SH3` |\n | `SH6` |\n | `SHB` |\n | `SHS` |\n | `SU9` |\n | `SWM` |\n | `T20` |\n | `YK2` |\n | `YK4` |\n | `YN2` |\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0.iataTypeDesignator","typeLabel":"string"}},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.0","typeLabel":"Air operation · object"},{"type":"object","title":"Rail operation","required":["type","start","end","distanceKm"],"properties":{"type":{"type":"string","enum":["RAIL"],"description":"A rail journey between two rail yards, or a roll-on/roll-off train crossing within a road operation.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The distance of the rail journey in kilometers.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.distanceKm","typeLabel":"number\u003cdouble>"},"route":{"type":"string","description":"An encoded polyline (Google Polyline Algorithm format) representing the full train route. It is only included when the request’s `options.includeRoutePolylines` is `TRUE`.\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1.route","typeLabel":"string"}},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.1","typeLabel":"Rail operation · object"},{"type":"object","title":"Road operation","required":["type","start","end","distanceKm"],"properties":{"type":{"type":"string","enum":["ROAD"],"description":"A road journey.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The distance of the road journey in kilometers, including any sub-operations.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.distanceKm","typeLabel":"number\u003cdouble>"},"route":{"type":"string","description":"An encoded polyline (Google Polyline Algorithm format) representing the full route, including any sub-operation segments. It is only included when the request’s `options.includeRoutePolylines` is `TRUE`.\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.route","typeLabel":"string"},"subOperations":{"type":"array","description":"The roll-on/roll-off ferry (`WATER`) and train (`RAIL`) crossings the vehicle takes on its journey, in order. Only included when the journey has such crossings.\n","items":{"oneOf":[{"type":"object","title":"Rail operation","required":["type","start","end","distanceKm"],"properties":{"type":{"type":"string","enum":["RAIL"],"description":"A rail journey between two rail yards, or a roll-on/roll-off train crossing within a road operation.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The distance of the rail journey in kilometers.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.distanceKm","typeLabel":"number\u003cdouble>"},"route":{"type":"string","description":"An encoded polyline (Google Polyline Algorithm format) representing the full train route. It is only included when the request’s `options.includeRoutePolylines` is `TRUE`.\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0.route","typeLabel":"string"}},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.0","typeLabel":"Rail operation · object"},{"type":"object","title":"Ferry operation","required":["type","start","end","distanceKm","vehicle","capacityBand"],"properties":{"type":{"type":"string","enum":["WATER"],"description":"A roll-on/roll-off ferry crossing within a road operation.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The distance of the ferry crossing in kilometers.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.distanceKm","typeLabel":"number\u003cdouble>"},"vehicle":{"type":"string","description":"The type of Roll-on/Roll-off ferry used in the sub-transport operation. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`ROLL_ON_ROLL_OFF`\u003c/enumValue>\n \u003cenumHeading>Roll on/roll off\u003c/enumHeading>\n \u003cenumDescription>A RO-RO freight ferry used within a parent road operation.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`ROLL_ON_ROLL_OFF_PASSENGERS`\u003c/enumValue>\n \u003cenumHeading>Roll on/roll off passengers\u003c/enumHeading>\n \u003cenumDescription>A RO-RO passenger ferry used within a parent road operation.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["ROLL_ON_ROLL_OFF","ROLL_ON_ROLL_OFF_PASSENGERS"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.vehicle","typeLabel":"enum\u003cstring>"},"capacityBand":{"type":"string","description":"The vessel’s carrying-capacity category in bands measured by deadweight tonnage (DWT), or gross tonnage (GT). The measurement unit depends on the vessel type (`vehicle` property). \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`DWT_0_TO_4999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ DWT \u003c 5,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity below 5,000 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_5000_TO_9999`\u003c/enumValue>\n \u003cenumHeading>5,000 ≤ DWT \u003c 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 5,000 and 9,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_10000_TO_14999`\u003c/enumValue>\n \u003cenumHeading>10,000 ≤ DWT \u003c 15,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 10,000 and 14,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_15000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 15,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 15,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_0_TO_1999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ GT \u003c 2,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage below 2,000 GT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_5000_TO_9999`\u003c/enumValue>\n \u003cenumHeading>5,000 ≤ GT \u003c 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage between 5,000 and 9,999 GT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_10000_TO_19999`\u003c/enumValue>\n \u003cenumHeading>10,000 ≤ GT \u003c 20,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage between 10,000 and 19,999 GT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_20000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>GT ≥ 20,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage of 20,000 GT or more.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["DWT_0_TO_4999","DWT_5000_TO_9999","DWT_10000_TO_14999","DWT_15000_AND_ABOVE","GT_0_TO_1999","GT_2000_TO_4999","GT_5000_TO_9999","GT_10000_TO_19999","GT_20000_AND_ABOVE"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1.capacityBand","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX].oneOf.1","typeLabel":"Ferry operation · object"}],"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations.items.[INDEX]","typeLabel":"Rail operation · object | Ferry operation · object"},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2.subOperations","typeLabel":"(Rail operation · object | Ferry operation · object)[]"}},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.2","typeLabel":"Road operation · object"},{"type":"object","title":"Water operation","required":["type","start","end","distanceKm","vehicle","capacityBand"],"properties":{"type":{"type":"string","enum":["WATER"],"description":"A voyage between two harbors.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"start":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.start","typeLabel":"Location · object"},"end":{"title":"Location","type":"object","required":["type","countryCode","latitude","longitude"],"properties":{"type":{"type":"string","description":"Defines the category of the location, distinguishing between transport facilities such as airports, harbors, and rail yards, and general places such as buildings, streets, postcodes, or cities. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`PLACE`\u003c/enumValue>\n \u003cenumHeading>Place\u003c/enumHeading>\n \u003cenumDescription>\n A general geographic point such as a building, street, postcode area, or city, rather than to a transport facility.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AIRPORT`\u003c/enumValue>\n \u003cenumHeading>Airport\u003c/enumHeading>\n \u003cenumDescription>An airport.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`RAIL_YARD`\u003c/enumValue>\n \u003cenumHeading>Rail yard\u003c/enumHeading>\n \u003cenumDescription>A rail yard.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`HARBOR`\u003c/enumValue>\n \u003cenumHeading>Harbor\u003c/enumHeading>\n \u003cenumDescription>A maritime port.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["PLACE","AIRPORT","RAIL_YARD","HARBOR"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.type","typeLabel":"enum\u003cstring>"},"latitude":{"type":"number","format":"double","description":"Latitude in decimal degrees (WGS 84 - EPSG:4326), range -90 to 90.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.latitude","typeLabel":"number\u003cdouble>"},"longitude":{"type":"number","format":"double","description":"Longitude in decimal degrees (WGS 84 - EPSG:4326), range -180 to 180.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.longitude","typeLabel":"number\u003cdouble>"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","minLength":2,"maxLength":2,"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.countryCode","typeLabel":"string"},"region":{"type":"string","description":"Administrative area (state/province/county/territory), e.g.,\n- `Bretagne`\n- `Ontario`\n- `Bavaria`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.region","typeLabel":"string"},"postcode":{"type":"string","description":"Postal or ZIP code identifying the area of the location. Format varies by country, e.g.,\n- `90210` *(Beverly Hills)*\n- `WC2N 5DU` *(Trafalgar Square)*\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.postcode","typeLabel":"string"},"city":{"type":"string","description":"City, town, or municipality where the location is situated, e.g.,\n- `Berlin`\n- `Paris`\n- `New York`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.city","typeLabel":"string"},"street":{"type":"string","description":"Street name and number, when available, formatted in the order commonly used in the location’s country. E.g.,\n - `1600 Pennsylvania Ave NW`\n - `Platz der Republik 1`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.street","typeLabel":"string"},"name":{"type":"string","description":"The name of a recognized landmark for the location, e.g.,\n - `Château de Versailles`\n - `The White House`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.name","typeLabel":"string"},"formatted":{"type":"string","description":"Full multi-line address, including line breaks, formatted according to the addressing rules of the location’s country. E.g.,\n - `White House` \n `1600 Pennsylvania Avenue Northwest` \n `Ward 2` \n `Washington, District of Columbia 20500` \n `United States` \n - `Sherlock Holmes Museum` \n `221B Baker Street` \n `Marylebone` \n `London` \n `NW1 6XE` \n `United Kingdom`\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.formatted","typeLabel":"string"},"code":{"type":"string","description":"Airport or harbor code, returned only when the location type is `AIRPORT` or `HARBOR`. \nFor airports, this is a 3 character IATA considerations.\nFor harbors, this is the 5 character UN/LOCODE.\n","minLength":3,"maxLength":5,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.end","typeLabel":"Location · object"},"distanceKm":{"type":"number","format":"double","description":"The distance of the voyage in kilometers.","isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.distanceKm","typeLabel":"number\u003cdouble>"},"vehicle":{"type":"string","description":"The type of vessel used in the water transport operation. \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`CONTAINER`\u003c/enumValue>\n \u003cenumHeading>Container\u003c/enumHeading>\n \u003cenumDescription>\n Transports standardized shipping containers.\n The default for `GENERAL` and `MANUFACTURED_PRODUCTS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`BULKER`\u003c/enumValue>\n \u003cenumHeading>Bulker\u003c/enumHeading>\n \u003cenumDescription>\n Transports unpackaged bulk goods. \n The default for `BUILDING_MATERIALS`, `CEREALS`, `COAL_AND_STEEL` and `SOLID_CHEMICALS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GENERAL_CARGO`\u003c/enumValue>\n \u003cenumHeading>General cargo\u003c/enumHeading>\n \u003cenumDescription>\n Transports varied packaged or breakbulk goods. \n The fallback when candidate ports show no historical AIS activity for the requested type.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`LIQUEFIED_GAS_TANKER`\u003c/enumValue>\n \u003cenumHeading>Liquefied gas tanker\u003c/enumHeading>\n \u003cenumDescription>\n Specialized tanker for transporting liquefied gases like LNG or LPG at very low temperatures or under pressure within insulated tanks.\n The default for `LIQUEFIED_GAS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`OIL_TANKER`\u003c/enumValue>\n \u003cenumHeading>Oil tanker\u003c/enumHeading>\n \u003cenumDescription>\n Tanker that taransport crude oil or refined petroleum products in segregated liquid cargo tanks.\n The default for `OIL` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CHEMICAL_TANKER`\u003c/enumValue>\n \u003cenumHeading>Chemical tanker\u003c/enumHeading>\n \u003cenumDescription>\n Tanker equipped with segregated tanks to transport liquid chemicals.\n The default for `LIQUID_CHEMICALS` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`OTHER_LIQUIDS_TANKER`\u003c/enumValue>\n \u003cenumHeading>Other liquids tanker\u003c/enumHeading>\n \u003cenumDescription>\n Tanker that transports liquids outside the oil, gas, and regulated chemical categories such as wine, or fruit juices. \n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`REFRIGERATED_BULKER`\u003c/enumValue>\n \u003cenumHeading>Refrigerated bulker\u003c/enumHeading>\n \u003cenumDescription>\n Bulk carrier with cooling systems for perishable goods.\n The default for `REFRIGERATED_BULK` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`AUTOMOBILE_CARRIER`\u003c/enumValue>\n \u003cenumHeading>Automobile carrier\u003c/enumHeading>\n \u003cenumDescription>\n A roll-on/roll-off vessel that transports cars and other wheeled vehicles.\n The default for `AUTOMOBILES` cargo.\n \u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["CONTAINER","BULKER","GENERAL_CARGO","LIQUEFIED_GAS_TANKER","OIL_TANKER","CHEMICAL_TANKER","OTHER_LIQUIDS_TANKER","REFRIGERATED_BULKER","AUTOMOBILE_CARRIER"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.vehicle","typeLabel":"enum\u003cstring>"},"capacityBand":{"type":"string","description":"The vessel’s carrying-capacity category in bands measured by deadweight tonnage (DWT), cargo volume (CBM), gross tonnage (GT), or container vessel class. The measurement unit depends on the vessel type (`vehicle` property). \u003cenumTable>\n \u003cenumItem>\n \u003cenumValue>`DWT_0_TO_999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ DWT \u003c 1,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity below 1,000 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_0_TO_1999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ DWT \u003c 2,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity below 2,000 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_0_TO_4999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ DWT \u003c 5,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity below 5,000 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_0_TO_9999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ DWT \u003c 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity below 10,000 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_2000_TO_4999`\u003c/enumValue>\n \u003cenumHeading>2,000 ≤ DWT \u003c 5,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 2,000 and 4,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_2000_TO_5999`\u003c/enumValue>\n \u003cenumHeading>2,000 ≤ DWT \u003c 6,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 2,000 and 5,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_5000_TO_9999`\u003c/enumValue>\n \u003cenumHeading>5,000 ≤ DWT \u003c 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 5,000 and 9,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_6000_TO_9999`\u003c/enumValue>\n \u003cenumHeading>6,000 ≤ DWT \u003c 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 6,000 and 9,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_10000_TO_14999`\u003c/enumValue>\n \u003cenumHeading>10,000 ≤ DWT \u003c 15,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 10,000 and 14,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_10000_TO_19999`\u003c/enumValue>\n \u003cenumHeading>10,000 ≤ DWT \u003c 20,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 10,000 and 19,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_10000_TO_34999`\u003c/enumValue>\n \u003cenumHeading>10,000 ≤ DWT \u003c 35,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 10,000 and 34,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_20000_TO_39999`\u003c/enumValue>\n \u003cenumHeading>20,000 ≤ DWT \u003c 40,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 20,000 and 39,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_20000_TO_59999`\u003c/enumValue>\n \u003cenumHeading>20,000 ≤ DWT \u003c 60,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 20,000 and 59,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_35000_TO_59999`\u003c/enumValue>\n \u003cenumHeading>35,000 ≤ DWT \u003c 60,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 35,000 and 59,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_60000_TO_79999`\u003c/enumValue>\n \u003cenumHeading>60,000 ≤ DWT \u003c 80,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 60,000 and 79,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_60000_TO_99999`\u003c/enumValue>\n \u003cenumHeading>60,000 ≤ DWT \u003c 100,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 60,000 and 99,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_80000_TO_119999`\u003c/enumValue>\n \u003cenumHeading>80,000 ≤ DWT \u003c 120,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 80,000 and 119,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_100000_TO_119999`\u003c/enumValue>\n \u003cenumHeading>100,000 ≤ DWT \u003c 120,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 100,000 and 119,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_120000_TO_199999`\u003c/enumValue>\n \u003cenumHeading>120,000 ≤ DWT \u003c 200,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 120,000 and 199,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_200000_TO_319999`\u003c/enumValue>\n \u003cenumHeading>200,000 ≤ DWT \u003c 320,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity between 200,000 and 319,999 DWT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_1000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 1,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 1,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_10000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 10,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_15000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 15,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 15,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_20000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 20,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 20,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_40000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 40,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 40,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_200000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 200,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 200,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`DWT_320000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>DWT ≥ 320,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with carrying capacity of 320,000 DWT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CBM_0_TO_9999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ CBM \u003c 10,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with cargo volume capacity below 10,000 m³.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CBM_10000_TO_49999`\u003c/enumValue>\n \u003cenumHeading>10,000 ≤ CBM \u003c 50,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with cargo volume capacity between 10,000 and 49,999 m³.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CBM_50000_TO_99999`\u003c/enumValue>\n \u003cenumHeading>50,000 ≤ CBM \u003c 100,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with cargo volume capacity between 50,000 and 99,999 m³.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CBM_100000_TO_199999`\u003c/enumValue>\n \u003cenumHeading>100,000 ≤ CBM \u003c 200,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with cargo volume capacity between 100,000 and 199,999 m³.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`CBM_200000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>CBM ≥ 200,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with cargo volume capacity of 200,000 m³ or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_0_TO_29999`\u003c/enumValue>\n \u003cenumHeading>0 ≤ GT \u003c 30,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage below 30,000 GT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_30000_TO_49999`\u003c/enumValue>\n \u003cenumHeading>30,000 ≤ GT \u003c 50,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage between 30,000 and 49,999 GT.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`GT_50000_AND_ABOVE`\u003c/enumValue>\n \u003cenumHeading>GT ≥ 50,000\u003c/enumHeading>\n \u003cenumDescription>Vessel with gross tonnage of 50,000 GT or more.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`SMALL_FEEDER`\u003c/enumValue>\n \u003cenumHeading>Small feeder\u003c/enumHeading>\n \u003cenumDescription>Small feeder container vessel with capacity up to 1,000 TEU.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`FEEDER`\u003c/enumValue>\n \u003cenumHeading>Feeder\u003c/enumHeading>\n \u003cenumDescription>Feeder container vessel typically carrying 1,001 to 2,000 TEU.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`FEEDERMAX`\u003c/enumValue>\n \u003cenumHeading>Feedermax\u003c/enumHeading>\n \u003cenumDescription>Upper-end feeder container vessel usually around 2,001 to 3,000 TEU.\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`PANAMAX`\u003c/enumValue>\n \u003cenumHeading>Panamax\u003c/enumHeading>\n \u003cenumDescription>Container vessel sized to fit the original Panama Canal locks (3,001 to 5,100 TEU).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`POST_PANAMAX`\u003c/enumValue>\n \u003cenumHeading>Poast panamax\u003c/enumHeading>\n \u003cenumDescription>Larger container vessel exceeding original Panama Canal dimensions (5,101 to 10,000 TEU).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`NEO_PANAMAX`\u003c/enumValue>\n \u003cenumHeading>Neopanamax\u003c/enumHeading>\n \u003cenumDescription>Container vessel sized for the expanded Panama Canal (10,000 to 14,500 TEU).\u003c/enumDescription>\n \u003c/enumItem>\n \u003cenumItem>\n \u003cenumValue>`ULTRA_LARGE`\u003c/enumValue>\n \u003cenumHeading>Ultra large\u003c/enumHeading>\n \u003cenumDescription>Ultra large container vessel (ULCV), typically 14,501+ TEU.\u003c/enumDescription>\n \u003c/enumItem>\n\u003c/enumTable>\n","enum":["DWT_0_TO_999","DWT_0_TO_1999","DWT_0_TO_4999","DWT_0_TO_9999","DWT_2000_TO_4999","DWT_2000_TO_5999","DWT_5000_TO_9999","DWT_6000_TO_9999","DWT_10000_TO_14999","DWT_10000_TO_19999","DWT_10000_TO_34999","DWT_20000_TO_39999","DWT_20000_TO_59999","DWT_35000_TO_59999","DWT_60000_TO_79999","DWT_60000_TO_99999","DWT_80000_TO_119999","DWT_100000_TO_119999","DWT_120000_TO_199999","DWT_200000_TO_319999","DWT_1000_AND_ABOVE","DWT_10000_AND_ABOVE","DWT_15000_AND_ABOVE","DWT_20000_AND_ABOVE","DWT_40000_AND_ABOVE","DWT_200000_AND_ABOVE","DWT_320000_AND_ABOVE","CBM_0_TO_9999","CBM_10000_TO_49999","CBM_50000_TO_99999","CBM_100000_TO_199999","CBM_200000_AND_ABOVE","GT_0_TO_29999","GT_30000_TO_49999","GT_50000_AND_ABOVE","SMALL_FEEDER","FEEDER","FEEDERMAX","PANAMAX","POST_PANAMAX","NEO_PANAMAX","ULTRA_LARGE"],"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.capacityBand","typeLabel":"enum\u003cstring>"},"route":{"type":"string","description":"An encoded polyline (Google Polyline Algorithm format) representing the full route between harbors. It is only included when the request’s `options.includeRoutePolylines` is `TRUE`.\n","uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3.route","typeLabel":"string"}},"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX].oneOf.3","typeLabel":"Water operation · object"}],"uniqueKey":"transportChain.items.[INDEX].elements.items.[INDEX]","typeLabel":"Air operation · object | Rail operation · object | Road operation · object | Water operation · object"},"isRequired":true,"uniqueKey":"transportChain.items.[INDEX].elements","typeLabel":"(Air operation · object | Rail operation · object | Road operation · object | Water operation · object)[]"},"id":{"type":"string","description":"The `id` provided on the corresponding transport operation in the request.","uniqueKey":"transportChain.items.[INDEX].id","typeLabel":"string"},"context":{"type":"object","description":"The `context` provided on the corresponding transport operation in the request.","uniqueKey":"transportChain.items.[INDEX].context","typeLabel":"object"}},"uniqueKey":"transportChain.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"transportChain","typeLabel":"object[]"},"creditCost":{"type":"number","format":"double","description":"The number of credits charged for the request. Credits are charged in the same way as for an emissions calculation.","isRequired":true,"uniqueKey":"creditCost","typeLabel":"number\u003cdouble>"},"id":{"type":"string","description":"The `id` provided in the request.","uniqueKey":"id","typeLabel":"string"},"context":{"type":"object","description":"The `context` provided in the request.","uniqueKey":"context","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"123456789","origin":{"type":"PLACE","countryCode":"GB","latitude":51.5237629,"longitude":-0.1584743,"region":"England","postcode":"NW1 6XE","city":"London","street":"221B Baker Street","name":"Sherlock Holmes Museum","formatted":"Sherlock Holmes Museum\n221B Baker Street\nMarylebone\nLondon\nNW1 6XE\nUnited Kingdom"},"destination":{"type":"PLACE","countryCode":"BE","latitude":50.8405365,"longitude":4.3622675,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","street":"Rue Brederode - Brederodestraat 16","formatted":"Rue Brederode - Brederodestraat 16\n1000 Brussels\nBelgium"},"distanceKm":428.17868397480544,"transportChain":[{"type":"WATER","id":"123456789-01","start":{"type":"PLACE","countryCode":"GB","latitude":51.5237629,"longitude":-0.1584743,"region":"England","postcode":"NW1 6XE","city":"London","street":"221B Baker Street","name":"Sherlock Holmes Museum","formatted":"Sherlock Holmes Museum\n221B Baker Street\nMarylebone\nLondon\nNW1 6XE\nUnited Kingdom"},"end":{"type":"HARBOR","countryCode":"BE","latitude":51.27936713324465,"longitude":4.3567657470703125,"region":"Antwerp","postcode":"2030","city":"Antwerp","name":"Port of Antwerp","code":"BEANR","formatted":"Port of Antwerp\n2030 Antwerp\nBelgium"},"distanceKm":361.25686120325236,"context":{"additionalInformation":"customWaterLegValue"},"elements":[{"type":"ROAD","start":{"type":"PLACE","countryCode":"GB","latitude":51.5237629,"longitude":-0.1584743,"region":"England","postcode":"NW1 6XE","city":"London","street":"221B Baker Street","name":"Sherlock Holmes Museum","formatted":"Sherlock Holmes Museum\n221B Baker Street\nMarylebone\nLondon\nNW1 6XE\nUnited Kingdom"},"end":{"type":"HARBOR","countryCode":"GB","latitude":51.459502138725945,"longitude":0.3407907485961914,"region":"England","postcode":"RM18 7DP","city":"Tilbury","name":"Port of Tilbury","code":"GBTIL","formatted":"Port of Tilbury\nTilbury\nRM18 7DP\nUnited Kingdom of Great Britain and Northern Ireland"},"distanceKm":47.708259845301605},{"vehicle":"CONTAINER","capacityBand":"POST_PANAMAX","type":"WATER","start":{"type":"HARBOR","countryCode":"GB","latitude":51.459502138725945,"longitude":0.3407907485961914,"region":"England","postcode":"RM18 7DP","city":"Tilbury","name":"Port of Tilbury","code":"GBTIL","formatted":"Port of Tilbury\nTilbury\nRM18 7DP\nUnited Kingdom of Great Britain and Northern Ireland"},"end":{"type":"HARBOR","countryCode":"BE","latitude":51.27936713324465,"longitude":4.3567657470703125,"region":"Antwerp","postcode":"2030","city":"Antwerp","name":"Port of Antwerp","code":"BEANR","formatted":"Port of Antwerp\n2030 Antwerp\nBelgium"},"distanceKm":313.54860135795076}]},{"type":"RAIL","id":"123456789-02","start":{"type":"PLACE","countryCode":"BE","latitude":51.279002,"longitude":4.356769,"region":"Antwerp","postcode":"2030","city":"Antwerp","formatted":"2030 Antwerp\nBelgium"},"end":{"type":"PLACE","countryCode":"BE","latitude":50.8405365,"longitude":4.3622675,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","street":"Rue Brederode - Brederodestraat 16","formatted":"Rue Brederode - Brederodestraat 16\n1000 Brussels\nBelgium"},"distanceKm":66.92182277155307,"context":{"customProperty":"customRailLegValue"},"elements":[{"type":"RAIL","start":{"type":"PLACE","countryCode":"BE","latitude":51.279002,"longitude":4.356769,"region":"Antwerp","postcode":"2030","city":"Antwerp","formatted":"2030 Antwerp\nBelgium"},"end":{"type":"PLACE","countryCode":"BE","latitude":50.844459,"longitude":4.356229,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","formatted":"Pentagon\n1000 Brussels\nBrussels-Capital\nBelgium"},"distanceKm":65.84587562993619},{"type":"ROAD","start":{"type":"PLACE","countryCode":"BE","latitude":50.844459,"longitude":4.356229,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","formatted":"Pentagon\n1000 Brussels\nBrussels-Capital\nBelgium"},"end":{"type":"PLACE","countryCode":"BE","latitude":50.8405365,"longitude":4.3622675,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","street":"Rue Brederode - Brederodestraat 16","formatted":"Rue Brederode - Brederodestraat 16\n1000 Brussels\nBelgium"},"distanceKm":1.075947141616878}]}],"creditCost":4},"examples":{"Example":{"title":"Example","value":{"id":"123456789","origin":{"type":"PLACE","countryCode":"GB","latitude":51.5237629,"longitude":-0.1584743,"region":"England","postcode":"NW1 6XE","city":"London","street":"221B Baker Street","name":"Sherlock Holmes Museum","formatted":"Sherlock Holmes Museum\n221B Baker Street\nMarylebone\nLondon\nNW1 6XE\nUnited Kingdom"},"destination":{"type":"PLACE","countryCode":"BE","latitude":50.8405365,"longitude":4.3622675,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","street":"Rue Brederode - Brederodestraat 16","formatted":"Rue Brederode - Brederodestraat 16\n1000 Brussels\nBelgium"},"distanceKm":428.17868397480544,"transportChain":[{"type":"WATER","id":"123456789-01","start":{"type":"PLACE","countryCode":"GB","latitude":51.5237629,"longitude":-0.1584743,"region":"England","postcode":"NW1 6XE","city":"London","street":"221B Baker Street","name":"Sherlock Holmes Museum","formatted":"Sherlock Holmes Museum\n221B Baker Street\nMarylebone\nLondon\nNW1 6XE\nUnited Kingdom"},"end":{"type":"HARBOR","countryCode":"BE","latitude":51.27936713324465,"longitude":4.3567657470703125,"region":"Antwerp","postcode":"2030","city":"Antwerp","name":"Port of Antwerp","code":"BEANR","formatted":"Port of Antwerp\n2030 Antwerp\nBelgium"},"distanceKm":361.25686120325236,"context":{"additionalInformation":"customWaterLegValue"},"elements":[{"type":"ROAD","start":{"type":"PLACE","countryCode":"GB","latitude":51.5237629,"longitude":-0.1584743,"region":"England","postcode":"NW1 6XE","city":"London","street":"221B Baker Street","name":"Sherlock Holmes Museum","formatted":"Sherlock Holmes Museum\n221B Baker Street\nMarylebone\nLondon\nNW1 6XE\nUnited Kingdom"},"end":{"type":"HARBOR","countryCode":"GB","latitude":51.459502138725945,"longitude":0.3407907485961914,"region":"England","postcode":"RM18 7DP","city":"Tilbury","name":"Port of Tilbury","code":"GBTIL","formatted":"Port of Tilbury\nTilbury\nRM18 7DP\nUnited Kingdom of Great Britain and Northern Ireland"},"distanceKm":47.708259845301605},{"vehicle":"CONTAINER","capacityBand":"POST_PANAMAX","type":"WATER","start":{"type":"HARBOR","countryCode":"GB","latitude":51.459502138725945,"longitude":0.3407907485961914,"region":"England","postcode":"RM18 7DP","city":"Tilbury","name":"Port of Tilbury","code":"GBTIL","formatted":"Port of Tilbury\nTilbury\nRM18 7DP\nUnited Kingdom of Great Britain and Northern Ireland"},"end":{"type":"HARBOR","countryCode":"BE","latitude":51.27936713324465,"longitude":4.3567657470703125,"region":"Antwerp","postcode":"2030","city":"Antwerp","name":"Port of Antwerp","code":"BEANR","formatted":"Port of Antwerp\n2030 Antwerp\nBelgium"},"distanceKm":313.54860135795076}]},{"type":"RAIL","id":"123456789-02","start":{"type":"PLACE","countryCode":"BE","latitude":51.279002,"longitude":4.356769,"region":"Antwerp","postcode":"2030","city":"Antwerp","formatted":"2030 Antwerp\nBelgium"},"end":{"type":"PLACE","countryCode":"BE","latitude":50.8405365,"longitude":4.3622675,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","street":"Rue Brederode - Brederodestraat 16","formatted":"Rue Brederode - Brederodestraat 16\n1000 Brussels\nBelgium"},"distanceKm":66.92182277155307,"context":{"customProperty":"customRailLegValue"},"elements":[{"type":"RAIL","start":{"type":"PLACE","countryCode":"BE","latitude":51.279002,"longitude":4.356769,"region":"Antwerp","postcode":"2030","city":"Antwerp","formatted":"2030 Antwerp\nBelgium"},"end":{"type":"PLACE","countryCode":"BE","latitude":50.844459,"longitude":4.356229,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","formatted":"Pentagon\n1000 Brussels\nBrussels-Capital\nBelgium"},"distanceKm":65.84587562993619},{"type":"ROAD","start":{"type":"PLACE","countryCode":"BE","latitude":50.844459,"longitude":4.356229,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","formatted":"Pentagon\n1000 Brussels\nBrussels-Capital\nBelgium"},"end":{"type":"PLACE","countryCode":"BE","latitude":50.8405365,"longitude":4.3622675,"region":"Brussels-Capital","postcode":"1000","city":"Brussels","street":"Rue Brederode - Brederodestraat 16","formatted":"Rue Brederode - Brederodestraat 16\n1000 Brussels\nBelgium"},"distanceKm":1.075947141616878}]}],"creditCost":4}}},"exampleType":"examples"}},"exampleType":"examples"},"030e88f0-5609-44bf-9f1b-aafd13e1b944":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"Invalid property value","status":400,"code":5,"details":["Property 'type' contains invalid value 'WEIGHTED_MODES'"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Alter your request to use one of these values: UNKNOWN,AIR,RAIL,ROAD,WATER,HUB"},"examples":{"Example":{"title":"Example","value":{"title":"Invalid property value","status":400,"code":5,"details":["Property 'type' contains invalid value 'WEIGHTED_MODES'"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Alter your request to use one of these values: UNKNOWN,AIR,RAIL,ROAD,WATER,HUB"}}},"exampleType":"examples"}},"exampleType":"examples"},"1b74236e-3ea6-4a42-aad2-1b74fe076ccf":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"API key invalid","status":401,"code":41,"details":["'...' is not a valid API key"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Provide a valid API key. If you don’t have one, then apply to TerraTwin"},"examples":{"Example":{"title":"Example","value":{"title":"API key invalid","status":401,"code":41,"details":["'...' is not a valid API key"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Provide a valid API key. If you don’t have one, then apply to TerraTwin"}}},"exampleType":"examples"}},"exampleType":"examples"},"3a682ffb-4888-4335-af38-9916aacaf8ee":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"Insufficient credits","status":403,"code":42,"details":["Your account has no remaining credits"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Purchase additional credits from TerraTwin"},"examples":{"Example":{"title":"Example","value":{"title":"Insufficient credits","status":403,"code":42,"details":["Your account has no remaining credits"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Purchase additional credits from TerraTwin"}}},"exampleType":"examples"}},"exampleType":"examples"},"35055dc8-3532-4d4e-b833-c120458b2e09":{"description":"Unprocessable entity","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"Not routable by rail","status":422,"code":33,"details":["Operation 'transportChain[0]' could not be routed by rail between '50.68689,7.16285' and '-36.85209,174.76318'"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Review the mode of transport selected and the locations"},"examples":{"Example":{"title":"Example","value":{"title":"Not routable by rail","status":422,"code":33,"details":["Operation 'transportChain[0]' could not be routed by rail between '50.68689,7.16285' and '-36.85209,174.76318'"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Review the mode of transport selected and the locations"}}},"exampleType":"examples"}},"exampleType":"examples"},"e5649ac5-f2a4-410c-9cdf-26c4b8af654d":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"Rate limit exceeded","status":429,"code":45,"details":["Too many requests. The limit is 5 requests per second"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Reduce your request rate to ≤ 5 requests/second"},"examples":{"Example":{"title":"Example","value":{"title":"Rate limit exceeded","status":429,"code":45,"details":["Too many requests. The limit is 5 requests per second"],"instance":"/api/v1/transportation/routes/calculate","recommendation":"Reduce your request rate to ≤ 5 requests/second"}}},"exampleType":"examples"}},"exampleType":"examples"},"994a50c8-2c33-41ad-8763-7f4bd84abe48":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"title":"\u003cstring>","status":123,"code":1,"details":["\u003cstring>"],"instance":"\u003cstring>","recommendation":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"2d2a57fd-2de5-4c46-8d10-aac51f20cc05":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","required":["title","status","code","details","instance","recommendation"],"properties":{"title":{"type":"string","description":"Short, human readable summary of the error.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"number","format":"integer","description":"HTTP status code associated with the error, indicating the type of failure.","isRequired":true,"uniqueKey":"status","typeLabel":"number\u003cinteger>"},"code":{"type":"number","description":"Application-specific numeric error code that identifies the exact error condition. Error codes 10000 and above represent internal errors.\n\n | Code | Description |\n |------|----------------------------------------------------|\n | 1 | API key missing |\n | 2 | Invalid JSON |\n | 3 | API property missing |\n | 4 | Invalid weight |\n | 5 | Invalid property value |\n | 6 | Invalid transport chain element JSON |\n | 7 | Insufficient location information |\n | 8 | Unknown airport IATA code |\n | 9 | Missing coordinate |\n | 10 | Invalid coordinate |\n | 11 | Coordinates outside country borders |\n | 12 | Invalid country code |\n | 13 | Unknown UN/LOCODE |\n | 14 | Invalid UN/LOCODE |\n | 15 | Missing country code with address |\n | 16 | Unresolvable location |\n | 17 | Missing location |\n | 18 | Missing hub |\n | 19 | Invalid volume |\n | 20 | Invalid container count |\n | 21 | Incompatible capacity unit for water vessel |\n | 22 | Invalid load factor percentage |\n | 23 | Invalid empty running percentage |\n | 24 | Invalid energy consumption |\n | 25 | Invalid date/time |\n | 26 | Invalid container type code |\n | 27 | Unknown aircraft identifier |\n | 28 | Location not routable to airport |\n | 29 | Location not routable to rail yard |\n | 30 | Location not routable to harbor |\n | 31 | No rail system in country |\n | 32 | Not routable by air |\n | 33 | Not routable by rail |\n | 34 | Not routable by road |\n | 35 | Unknown rail yard identifier |\n | 36 | Fallback transport modes routing failure |\n | 37 | Invalid percentage |\n | 38 | Invalid percentage summation |\n | 39 | Energy type incompatible with consumption unit |\n | 40 | Energy type not supported for road transport |\n | 41 | Invalid API key |\n | 42 | Insufficient credits |\n | 43 | Account not found |\n | 44 | Service unavailable |\n | 45 | Rate limit exceeded |\n | 46 | Payload too large |\n | 47 | Invalid HTTP request |\n | 48 | Missing request id |\n | 49 | Invalid cursor |\n | 50 | Emissions result not found |\n","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cnumber>"},"details":{"type":"array","description":"One or more strings providing additional details about the error. For internal errors (error codes 10000 and above), this includes a tracking code that users can provide to TerraTwin tech support for diagnosis and resolution.\n","items":{"type":"string","uniqueKey":"details.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"details","typeLabel":"string[]"},"instance":{"type":"string","description":"Path of the API endpoint where the error occurred.","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"recommendation":{"type":"string","description":"Guidance on how to resolve the error.","isRequired":true,"uniqueKey":"recommendation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"title":"\u003cstring>","status":123,"code":1,"details":["\u003cstring>"],"instance":"\u003cstring>","recommendation":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5c01fafc-1d07-4af4-9a9e-62ebaef671fc":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authenticating requests. Include this header in all calls.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"888107b0-69ba-44ec-9e9b-b5285434f02d":{"url":"https://api.terratwin.com/api/v1/transportation"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authenticating requests. Include this header in all calls.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"API key for authenticating requests. Include this header in all calls.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"content/api-reference/openapi.yaml"},"subdomain":"terratwin","siteName":"TerraTwin API Documentation","title":"Calculate transport routes - TerraTwin API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T16:41:01.664Z","originalFileLocation":"api-reference/calculate-transport-routes.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. WEIGHTED_MODES transport operations are not supported.\">\u003cmeta data-mint-head name=\"application-name\" content=\"TerraTwin API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Calculate transport routes - TerraTwin API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. WEIGHTED_MODES transport operations are not supported.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TerraTwin API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.terratwin.com/api-reference/calculate-transport-routes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://terratwin.mintlify.app/_mintlify/api/og/v2?division=Endpoints\u0026amp;title=Calculate+transport+routes\u0026amp;description=Calculates+the+routes+and+distances+of+a+transport+chain+without+calculating+emissions.+Locations%2C+transport+modes%2C+and+fallback+transport+modes+are+handled+exa\u0026amp;theme=3bbdc7790d080616537a795b\u0026amp;signature=c9ca88c014b48853f002402f2e498cc13c92484ac030db75e24ce1b7a37068a8\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Calculate transport routes - TerraTwin API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. WEIGHTED_MODES transport operations are not supported.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://terratwin.mintlify.app/_mintlify/api/og/v2?division=Endpoints\u0026amp;title=Calculate+transport+routes\u0026amp;description=Calculates+the+routes+and+distances+of+a+transport+chain+without+calculating+emissions.+Locations%2C+transport+modes%2C+and+fallback+transport+modes+are+handled+exa\u0026amp;theme=3bbdc7790d080616537a795b\u0026amp;signature=c9ca88c014b48853f002402f2e498cc13c92484ac030db75e24ce1b7a37068a8\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/terratwin/OKpIZb_MshjILWz8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TerraTwin API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f39f6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.terratwin.com/api-reference/calculate-transport-routes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/calculate-transport-routes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.terratwin.com/#organization\",\"name\":\"TerraTwin API Documentation\",\"url\":\"https://docs.terratwin.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/terratwin/2SbfaHlKcC6sWfe8/logo/light-logo.svg?fit=max\u0026auto=format\u0026n=2SbfaHlKcC6sWfe8\u0026q=85\u0026s=9e7cc787e818460799fee628a09663d8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.terratwin.com#website\",\"name\":\"TerraTwin API Documentation\",\"url\":\"https://docs.terratwin.com\",\"publisher\":{\"@id\":\"https://docs.terratwin.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes#webpage\",\"url\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes\",\"name\":\"Calculate transport routes\",\"description\":\"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. WEIGHTED_MODES transport operations are not supported.\",\"dateModified\":\"2026-10-30T16:41:01.664Z\",\"isPartOf\":{\"@id\":\"https://docs.terratwin.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.terratwin.com/api-reference/calculate-transport-emissions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculate transport routes\",\"item\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes#apireference\",\"headline\":\"Calculate transport routes\",\"name\":\"Calculate transport routes\",\"description\":\"Calculates the routes and distances of a transport chain without calculating emissions. Locations, transport modes, and fallback transport modes are handled exactly as for an emissions calculation, so the distances match those used there. The response contains the resolved locations, distances, and optionally route polylines. WEIGHTED_MODES transport operations are not supported.\",\"url\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes\",\"mainEntityOfPage\":{\"@id\":\"https://docs.terratwin.com/api-reference/calculate-transport-routes#webpage\"},\"dateModified\":\"2026-10-30T16:41:01.664Z\",\"publisher\":{\"@id\":\"https://docs.terratwin.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.terratwin.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TerraTwin API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TerraTwin API Documentation","nav":{"global":null,"tabs":[{"tab":"Get Started","icon":"seedling","pages":[{"title":"Get Started","href":"/content/get-started/quick-start"}]},{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/content/guides"}]},{"tab":"API Reference","icon":"square-terminal","groups":[{"group":"Endpoints","pages":[{"title":"Calculate transport emissions","description":"Calculates greenhouse gas emissions for one or more transport operations. The endpoint supports the four core transport modes - `AIR`, `RAIL`, `ROAD`, and `WATER` - as well as a combination mode, `WEIGHTED_MODES`, which allows multiple underlying modes to be prorated into a single combined operation. Each transport operation in the request represents one leg of the cargo movement, and you may submit a single operation or a sequence of operations within the same request.\n","deprecated":null,"version":null,"openapi":"/content/api-reference/openapi.yaml post /emissions/calculate","href":"/api-reference/calculate-transport-emissions"},{"title":"Calculate transport routes","deprecated":null,"version":null,"openapi":"/content/api-reference/openapi.yaml post /routes/calculate","href":"/api-reference/calculate-transport-routes"},{"title":"List calculation results","description":"Returns a paginated list of stored calculations matching any supplied `created_from` and `created_to` filters, up to the requested `limit`. Items are returned in descending order of creation, with the latest results first. \n\nEach item includes the calculation ID originally provided in the request and the date-time when the calculation was created. Use the `cursor` query parameter to request the next page of calculations by passing the `nextCursor` value from the previous response.\n","deprecated":null,"version":null,"openapi":"/content/api-reference/openapi.yaml get /emissions","href":"/api-reference/list-calculation-results"},{"title":"Get calculation result","deprecated":null,"version":null,"openapi":"/content/api-reference/openapi.yaml get /emissions/{id}","href":"/api-reference/get-calculation-result"}]}]}]},"title":"Calculate transport routes - TerraTwin API Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}