> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bahnexpress.fi/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> For Bahn Customer API V2 integration work, start with /skill.md and /guides/agent-integration.md on this documentation site. Use /llms.txt to find the guides for the requested workflow.
> The main integration orders your company's transports from existing software. Follow the requested screen, service, or job. Omit ordered_for for own-account orders. Use the platform-ordering guide when ordering for represented businesses. Add a customer-facing interface only when requested.
> Use /openapi.yaml for paths, schemas, scopes, and operation preconditions. Use the guides for transport rules and recovery behavior. Load only the relevant pages.
> Use the sandbox for development and tests. Keep credentials on the server. Production orders start real transport work; follow the customer's authorized workflow and account context.
> For required writes, preserve write keys and request data across retries, and use current actions and quoted revisions for order changes. When consuming webhooks, verify and durably store them before acknowledgement.
> Deliver the implemented workflow with test evidence, setup steps, and remaining gaps. Distinguish simulated checks from requests actually verified against Bahn.

# Get CMR recipient choices and defaults

> Read your account’s document recipient choices and defaults for future orders.

export const getCmrOptions = {
  "initialPanel": "response",
  "description": "Returns the authenticated account's registered company address, saved customer\nlocations, and document defaults for future orders. Each option identifies\nmissing recipient details. This read does not accept ordered_for and does\nnot change an order or its physical delivery destination.\n",
  "request": [{
    "id": "request-auth",
    "label": "Authentication",
    "node": 52
  }],
  "response": [{
    "id": "response-200-0",
    "label": "200 response",
    "description": "Current options for this customer. (application/json)",
    "node": 267
  }],
  "errors": [{
    "id": "error-401",
    "label": "Error body",
    "description": "Authentication failed. (application/problem+json)",
    "node": 46
  }],
  "statuses": [{
    "status": "200",
    "description": "Current options for this customer."
  }, {
    "status": "401",
    "description": "Authentication failed.",
    "code": "authentication_failed"
  }, {
    "status": "403",
    "description": "The access token lacks the required scope.",
    "code": "permission_denied"
  }],
  "examples": []
};

export const referenceNodes = [{
  "type": "string",
  "description": "HTTP Basic with the client ID and client secret.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Authorization",
    "node": 0,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The customer API supports only the client_credentials grant.",
  "rules": ["Must be \"client_credentials\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Space-separated scopes to request. Omit this field to request all assigned scopes.",
  "rules": ["Length: at least 1 character."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "OAuth 2.0 client credentials request.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "grant_type",
    "node": 2,
    "required": true,
    "visible": false
  }, {
    "name": "scope",
    "node": 3,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Bearer token to send in the Authorization header.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Token lifetime in seconds.",
  "rules": ["Must be 900."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Token expiry as Unix time in seconds.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Token type for the Authorization header.",
  "rules": ["Must be \"Bearer\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Space-separated scopes granted to this token.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Short-lived bearer token for customer API requests.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "access_token",
    "node": 5,
    "required": true,
    "visible": false
  }, {
    "name": "expires_in",
    "node": 6,
    "required": true,
    "visible": false
  }, {
    "name": "expires_at",
    "node": 7,
    "required": true,
    "visible": false
  }, {
    "name": "token_type",
    "node": 8,
    "required": true,
    "visible": false
  }, {
    "name": "scope",
    "node": 9,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable OAuth error code.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Human-readable reason for the error.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "OAuth 2.0 token endpoint error.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "error",
    "node": 11,
    "required": true,
    "visible": false
  }, {
    "name": "error_description",
    "node": 12,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "HTTP Basic authentication challenge.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "WWW-Authenticate",
    "node": 14,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Bearer token. Required scopes: orders:write.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Authorization",
    "node": 16,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "A unique key for this logical write across the customer account. Reuse it only for retries of the same operation and request data.",
  "rules": ["Length: 8 to 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "A caller-supplied request identifier for support.",
  "rules": ["Length: 1 to 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Idempotency-Key",
    "node": 18,
    "required": true,
    "visible": false
  }, {
    "name": "X-Request-Id",
    "node": 19,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Customer-facing explanation of what the uploaded document contains.",
  "rules": ["Length: at least 1 character."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Original file name shown with the uploaded document.",
  "rules": ["Length: 1 to 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Use power_of_attorney only for a power of attorney. Use customer_document for other files, including pickup release documents.",
  "rules": ["Values: \"power_of_attorney\", \"customer_document\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "MIME type of the file that will be uploaded.",
  "rules": ["Values: \"application/pdf\", \"image/jpeg\", \"image/png\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Exact file size in bytes. The maximum is 12 MiB.",
  "rules": ["Range: 1 to 12582912."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Metadata used to create a temporary direct-upload form.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 22,
    "required": true,
    "visible": false
  }, {
    "name": "category",
    "node": 23,
    "required": true,
    "visible": false
  }, {
    "name": "media_type",
    "node": 24,
    "required": true,
    "visible": false
  }, {
    "name": "size_bytes",
    "node": 25,
    "required": true,
    "visible": false
  }, {
    "name": "description",
    "node": 21,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "ID to add to an order after the upload succeeds.",
  "rules": ["Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "HTTP method required by the upload form.",
  "rules": ["Must be \"POST\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Temporary URL that receives the multipart form.",
  "rules": ["Format: uri."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Form fields to send unchanged before the final file field.",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "[key]",
    "node": 30,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time after which this upload form no longer accepts the file.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Temporary form that accepts the file contents.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "method",
    "node": 28,
    "required": true,
    "visible": false
  }, {
    "name": "url",
    "node": 29,
    "required": true,
    "visible": false
  }, {
    "name": "fields",
    "node": 31,
    "required": true,
    "visible": false
  }, {
    "name": "expires_at",
    "node": 32,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "File ID and temporary multipart form for direct upload.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "file_id",
    "node": 27,
    "required": true,
    "visible": false
  }, {
    "name": "upload",
    "node": 33,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "A stable URI for the problem type.",
  "rules": ["Format: uri."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "A short problem summary.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "The HTTP status code returned with this problem.",
  "rules": ["Range: 400 to 599."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable code for application logic and retry decisions.",
  "rules": ["Values: \"validation_error\", \"authentication_failed\", \"permission_denied\", \"resource_not_found\", \"idempotency_conflict\", \"revision_conflict\", \"order_not_cancellable\", \"order_not_updateable\", \"business_rule_violation\", \"ordered_for_not_allowed\", \"ordered_for_customer_not_found\", \"file_too_large\", \"request_too_large\", \"scenario_not_allowed\", \"internal_error\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "A human-readable explanation of this occurrence.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The request path that produced the problem.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Request identifier to include when you contact Bahn support.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Dot-separated path to the invalid field.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable validation code for this field error.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Human-readable reason why the field is invalid.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Field-level validation errors, when the problem concerns request input.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "path",
    "node": 42,
    "required": true,
    "visible": false
  }, {
    "name": "code",
    "node": 43,
    "required": true,
    "visible": false
  }, {
    "name": "message",
    "node": 44,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "A machine-readable API error in RFC 9457 problem-details format.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "type",
    "node": 35,
    "required": true,
    "visible": false
  }, {
    "name": "title",
    "node": 36,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 37,
    "required": true,
    "visible": false
  }, {
    "name": "code",
    "node": 38,
    "required": true,
    "visible": false
  }, {
    "name": "instance",
    "node": 40,
    "required": true,
    "visible": false
  }, {
    "name": "request_id",
    "node": 41,
    "required": true,
    "visible": false
  }, {
    "name": "detail",
    "node": 39,
    "required": false,
    "visible": false
  }, {
    "name": "errors",
    "node": 45,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The order identifier.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "File to delete from this order.",
  "rules": ["Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "order_id",
    "node": 47,
    "required": true,
    "visible": false
  }, {
    "name": "file_id",
    "node": 48,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "X-Request-Id",
    "node": 19,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Bearer token. Required scopes: orders:read.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Authorization",
    "node": 51,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "order_id",
    "node": 47,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable file ID. Use this as the file identity instead of content_url.",
  "rules": ["Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle associated with the file, or null for an order-level file.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Whether the UI should render this file as an image or document.",
  "rules": ["Values: \"image\", \"document\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "What the file contains.",
  "rules": ["Values: \"vehicle\", \"odometer\", \"vin\", \"accessories\", \"cmr\", \"power_of_attorney\", \"customer_document\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The pickup or delivery stage, or null when the file has no handover stage.",
  "rules": ["Values: \"pickup\", \"delivery\", null."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "The damage or inspection facts that use this file as evidence.",
  "rules": ["Values: \"inspection\", \"damage\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "string | null",
  "description": "Customer-facing file description, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Display file name.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "MIME type, when known.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "File size in bytes, when known. This value is null for documents that the server creates on request.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time when the file became available on the order.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Short-lived URL for downloading the file. Do not store it as file identity.",
  "rules": ["Format: uri."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time when content_url expires. Read the file list again for a fresh URL.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "boolean",
  "description": "Whether the current credential can delete this file now.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Customer uploads, photos, documents, and evidence files.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "id",
    "node": 54,
    "required": true,
    "visible": false
  }, {
    "name": "item_id",
    "node": 55,
    "required": true,
    "visible": false
  }, {
    "name": "kind",
    "node": 56,
    "required": true,
    "visible": false
  }, {
    "name": "category",
    "node": 57,
    "required": true,
    "visible": false
  }, {
    "name": "stage",
    "node": 58,
    "required": true,
    "visible": false
  }, {
    "name": "evidence_for",
    "node": 59,
    "required": true,
    "visible": false
  }, {
    "name": "description",
    "node": 60,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 61,
    "required": true,
    "visible": false
  }, {
    "name": "media_type",
    "node": 62,
    "required": true,
    "visible": false
  }, {
    "name": "size_bytes",
    "node": 63,
    "required": true,
    "visible": false
  }, {
    "name": "created_at",
    "node": 64,
    "required": true,
    "visible": false
  }, {
    "name": "content_url",
    "node": 65,
    "required": true,
    "visible": false
  }, {
    "name": "content_url_expires_at",
    "node": 66,
    "required": true,
    "visible": false
  }, {
    "name": "can_delete",
    "node": 67,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Files currently available for an order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "data",
    "node": 68,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order that requested the inspection.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The primary order item.\nThis value is null when the order needs no report.\n",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current availability of the full inspection report.",
  "rules": ["Values: \"not_required\", \"pending\", \"available\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Time when the full inspection was completed, or null before completion.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Overall inspector summary, or null when none was recorded.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle area or function that was checked.",
  "rules": ["Values: \"body\", \"tires\", \"interior\", \"starting\", \"electrical\", \"accessories\", \"service_book\", \"engine\", \"gearbox\", \"drivetrain\", \"other\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "ok when no issue was recorded; issue when the report contains a finding.",
  "rules": ["Values: \"ok\", \"issue\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Inspector findings for this category, or null when none were recorded.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Photos or documents attached to this inspection category.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "id",
    "node": 54,
    "required": true,
    "visible": false
  }, {
    "name": "item_id",
    "node": 55,
    "required": true,
    "visible": false
  }, {
    "name": "kind",
    "node": 56,
    "required": true,
    "visible": false
  }, {
    "name": "category",
    "node": 57,
    "required": true,
    "visible": false
  }, {
    "name": "stage",
    "node": 58,
    "required": true,
    "visible": false
  }, {
    "name": "evidence_for",
    "node": 59,
    "required": true,
    "visible": false
  }, {
    "name": "description",
    "node": 60,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 61,
    "required": true,
    "visible": false
  }, {
    "name": "media_type",
    "node": 62,
    "required": true,
    "visible": false
  }, {
    "name": "size_bytes",
    "node": 63,
    "required": true,
    "visible": false
  }, {
    "name": "created_at",
    "node": 64,
    "required": true,
    "visible": false
  }, {
    "name": "content_url",
    "node": 65,
    "required": true,
    "visible": false
  }, {
    "name": "content_url_expires_at",
    "node": 66,
    "required": true,
    "visible": false
  }, {
    "name": "can_delete",
    "node": 67,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object[]",
  "description": "Category-level inspection results. Empty until the report is available.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "category",
    "node": 75,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 76,
    "required": true,
    "visible": false
  }, {
    "name": "findings",
    "node": 77,
    "required": true,
    "visible": false
  }, {
    "name": "evidence",
    "node": 78,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Structured full-inspection result for the primary vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 70,
    "required": true,
    "visible": false
  }, {
    "name": "item_id",
    "node": 71,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 72,
    "required": true,
    "visible": false
  }, {
    "name": "inspected_at",
    "node": 73,
    "required": true,
    "visible": false
  }, {
    "name": "overall_findings",
    "node": 74,
    "required": true,
    "visible": false
  }, {
    "name": "items",
    "node": 79,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The ISO 3166-1 alpha-2 country code of the Bahn customer.",
  "rules": ["Pattern: `^[A-Z]{2}$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The official business ID of the Bahn customer.",
  "rules": ["Length: 1 to 100 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Business that an ordering channel represents. It must already exist as a Bahn customer in production.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "country_code",
    "node": 81,
    "required": true,
    "visible": false
  }, {
    "name": "business_id",
    "node": 82,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The ordering channel can create orders for this business identity.",
  "rules": ["Must be \"eligible\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Eligibility result for a represented business.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "status",
    "node": 84,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The current order revision inside double quotation marks. Preserve it when retrying the same logical write.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Idempotency-Key",
    "node": 18,
    "required": true,
    "visible": false
  }, {
    "name": "If-Match",
    "node": 86,
    "required": true,
    "visible": false
  }, {
    "name": "X-Request-Id",
    "node": 19,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The cancelled order revision.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "ETag",
    "node": 88,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable Bahn order ID. Store it after order creation.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Business the order was placed for, or null when it belongs to your own account.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "country_code",
    "node": 81,
    "required": true,
    "visible": false
  }, {
    "name": "business_id",
    "node": 82,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Reference supplied by your system, or null when none was supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current overall order state.",
  "rules": ["Values: \"accepted\", \"in_transit\", \"delivered\", \"cancelled\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current seller readiness for pickup.",
  "rules": ["Values: \"pending\", \"preparing\", \"confirmed\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time when Bahn accepted the order.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time when Bahn last updated the order.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Complete human-readable address.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Business or site name, when supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Street name and building number, when supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Secondary address detail, when supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Postal code, when supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "City or municipality, when supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Two-letter ISO 3166-1 country code, when supplied.",
  "rules": ["Pattern: `^[A-Z]{2}$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "number",
  "description": "Latitude in decimal degrees.",
  "rules": ["Range: -90 to 90."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "number",
  "description": "Longitude in decimal degrees.",
  "rules": ["Range: -180 to 180."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Map coordinates for the address, when available.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "latitude",
    "node": 104,
    "required": true,
    "visible": false
  }, {
    "name": "longitude",
    "node": 105,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Pickup location stored on the order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "formatted_address",
    "node": 97,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 98,
    "required": true,
    "visible": false
  }, {
    "name": "address_line_1",
    "node": 99,
    "required": true,
    "visible": false
  }, {
    "name": "address_line_2",
    "node": 100,
    "required": true,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 101,
    "required": true,
    "visible": false
  }, {
    "name": "city",
    "node": 102,
    "required": true,
    "visible": false
  }, {
    "name": "country_code",
    "node": 103,
    "required": true,
    "visible": false
  }, {
    "name": "coordinates",
    "node": 106,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Type of pickup handover.",
  "rules": ["Values: \"dealership\", \"private\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Full name of the handover contact.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Phone number that Bahn can use to coordinate the handover.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Email address for the handover contact.",
  "rules": ["Format: email."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Pickup contact, or null when none is available.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 109,
    "required": true,
    "visible": false
  }, {
    "name": "phone",
    "node": 110,
    "required": true,
    "visible": false
  }, {
    "name": "email",
    "node": 111,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Code or reference needed to release the vehicle, when supplied.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The first time when the vehicle is available for pickup.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Start of the window as an RFC 3339 timestamp with an offset.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "End of the window as an RFC 3339 timestamp with an offset.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "An IANA time-zone name.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Pickup windows requested by the customer. These are not commitments.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object | null",
  "description": "The agreed pickup window. This value is not an ETA.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The current pickup ETA. This value is null when no reliable ETA exists.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The time when Bahn last calculated or updated the pickup ETA.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The actual pickup time.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Current pickup location, contact, requested timing, agreed timing, ETA, and actual time.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 107,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 108,
    "required": true,
    "visible": false
  }, {
    "name": "contact",
    "node": 112,
    "required": true,
    "visible": false
  }, {
    "name": "release_code",
    "node": 113,
    "required": true,
    "visible": false
  }, {
    "name": "available_from",
    "node": 114,
    "required": true,
    "visible": false
  }, {
    "name": "requested_windows",
    "node": 118,
    "required": true,
    "visible": false
  }, {
    "name": "agreed_window",
    "node": 119,
    "required": true,
    "visible": false
  }, {
    "name": "eta",
    "node": 120,
    "required": true,
    "visible": false
  }, {
    "name": "eta_updated_at",
    "node": 121,
    "required": true,
    "visible": false
  }, {
    "name": "actual_at",
    "node": 122,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Delivery location stored on the order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "formatted_address",
    "node": 97,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 98,
    "required": true,
    "visible": false
  }, {
    "name": "address_line_1",
    "node": 99,
    "required": true,
    "visible": false
  }, {
    "name": "address_line_2",
    "node": 100,
    "required": true,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 101,
    "required": true,
    "visible": false
  }, {
    "name": "city",
    "node": 102,
    "required": true,
    "visible": false
  }, {
    "name": "country_code",
    "node": 103,
    "required": true,
    "visible": false
  }, {
    "name": "coordinates",
    "node": 106,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Type of delivery handover.",
  "rules": ["Values: \"dealership\", \"end_customer\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Delivery contact, or null when none is available.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 109,
    "required": true,
    "visible": false
  }, {
    "name": "phone",
    "node": 110,
    "required": true,
    "visible": false
  }, {
    "name": "email",
    "node": 111,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Delivery windows requested by the customer. These are not commitments.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object | null",
  "description": "The agreed delivery window. This value is not an ETA.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The latest committed delivery time.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The current delivery ETA. This value is null when no reliable ETA exists.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The time when Bahn last calculated or updated the delivery ETA.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "The actual delivery time.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Current delivery location, contact, requested timing, agreed timing, ETA, and actual time.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 124,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 125,
    "required": true,
    "visible": false
  }, {
    "name": "contact",
    "node": 126,
    "required": true,
    "visible": false
  }, {
    "name": "requested_windows",
    "node": 127,
    "required": true,
    "visible": false
  }, {
    "name": "agreed_window",
    "node": 128,
    "required": true,
    "visible": false
  }, {
    "name": "commitment_deadline_at",
    "node": 129,
    "required": true,
    "visible": false
  }, {
    "name": "eta",
    "node": 130,
    "required": true,
    "visible": false
  }, {
    "name": "eta_updated_at",
    "node": 131,
    "required": true,
    "visible": false
  }, {
    "name": "actual_at",
    "node": 132,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable ID for this vehicle within the order.",
  "rules": ["Pattern: `^item_[a-z0-9]+_(primary|trade_in)$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "primary for the outbound vehicle; trade_in for the reverse-route vehicle.",
  "rules": ["Values: \"primary\", \"trade_in\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current physical transport state of this vehicle.",
  "rules": ["Values: \"awaiting_pickup\", \"in_transit\", \"delivered\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle identification number, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Registration number, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle manufacturer, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle model, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle-specific note supplied with the order.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle fuel or powertrain type.",
  "rules": ["Values: \"petrol\", \"diesel\", \"electric\", \"hybrid_petrol\", \"hybrid_diesel\", \"unknown\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle transmission type.",
  "rules": ["Values: \"manual\", \"automatic\", \"unknown\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "Engine or motor power in kilowatts, when available.",
  "rules": ["Range: at least 1."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "Calendar year of first registration, when available.",
  "rules": ["Range: at least 1886."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "Vehicle kerb weight in kilograms, when available.",
  "rules": ["Range: at least 1."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "none for no CMR, physical for a paper CMR, or digital for a Bahn-generated document.",
  "rules": ["Values: \"none\", \"physical\", \"digital\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Whether the transport requires registration plates for this vehicle.",
  "rules": ["Values: \"none\", \"required\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "clear when no damage is recorded; damage_reported when damage is recorded.",
  "rules": ["Values: \"clear\", \"damage_reported\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Human-readable condition or damage note, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "IDs of order files that support this pickup condition.",
  "rules": ["Items must be unique.", "Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "object | null",
  "description": "Condition recorded at pickup, or null until it is available.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "status",
    "node": 149,
    "required": true,
    "visible": false
  }, {
    "name": "description",
    "node": 150,
    "required": true,
    "visible": false
  }, {
    "name": "evidence_file_ids",
    "node": 151,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "clear when no new damage is recorded; new_damage_reported when new damage is recorded.",
  "rules": ["Values: \"clear\", \"new_damage_reported\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Human-readable condition or new-damage note, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "IDs of order files that support this delivery condition.",
  "rules": ["Items must be unique.", "Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "object | null",
  "description": "Condition recorded at delivery, or null until it is available.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "status",
    "node": 153,
    "required": true,
    "visible": false
  }, {
    "name": "description",
    "node": 154,
    "required": true,
    "visible": false
  }, {
    "name": "evidence_file_ids",
    "node": 155,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "boolean",
  "description": "Whether winter tires are mounted on the vehicle.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "boolean",
  "description": "Whether an additional winter-tire set travels inside the vehicle.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Winter-tire details for the primary vehicle, or null when not supplied.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "mounted",
    "node": 157,
    "required": true,
    "visible": false
  }, {
    "name": "in_vehicle",
    "node": 158,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Primary vehicle and optional trade-in vehicle, each with its own state and handover condition.",
  "rules": ["Items: 1 to 2.", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "id",
    "node": 134,
    "required": true,
    "visible": false
  }, {
    "name": "role",
    "node": 135,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 136,
    "required": true,
    "visible": false
  }, {
    "name": "vin",
    "node": 137,
    "required": true,
    "visible": false
  }, {
    "name": "registration_number",
    "node": 138,
    "required": true,
    "visible": false
  }, {
    "name": "make",
    "node": 139,
    "required": true,
    "visible": false
  }, {
    "name": "model",
    "node": 140,
    "required": true,
    "visible": false
  }, {
    "name": "note",
    "node": 141,
    "required": true,
    "visible": false
  }, {
    "name": "fuel_type",
    "node": 142,
    "required": true,
    "visible": false
  }, {
    "name": "transmission",
    "node": 143,
    "required": true,
    "visible": false
  }, {
    "name": "engine_power_kw",
    "node": 144,
    "required": true,
    "visible": false
  }, {
    "name": "first_registered_year",
    "node": 145,
    "required": true,
    "visible": false
  }, {
    "name": "kerb_weight_kg",
    "node": 146,
    "required": true,
    "visible": false
  }, {
    "name": "cmr",
    "node": 147,
    "required": true,
    "visible": false
  }, {
    "name": "plates",
    "node": 148,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_condition",
    "node": 152,
    "required": true,
    "visible": false
  }, {
    "name": "delivery_condition",
    "node": 156,
    "required": true,
    "visible": false
  }, {
    "name": "winter_tires",
    "node": 159,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "string",
  "description": "How Bahn may move the primary vehicle.\nflexible allows driven or truck transport; truck_preferred requests a truck when practical;\ntruck_required means the vehicle must not be driven.\n",
  "rules": ["Values: \"flexible\", \"truck_preferred\", \"truck_required\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "standard for the normal handover check; full for a structured inspection report.",
  "rules": ["Values: \"standard\", \"full\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Transport and inspection service selected for this order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "transport_preference",
    "node": 161,
    "required": true,
    "visible": false
  }, {
    "name": "inspection",
    "node": 162,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Currency for every amount in this price.",
  "rules": ["Must be \"EUR\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Total price, including transport, additional fees, and trade-in service.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Price of the primary vehicle transport before additional fees and trade-in service.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Total additional service fees. The value is negative when agreed discounts or price corrections on the order outweigh its surcharges.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Price of the reverse-route trade-in transport, or zero when none is included.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Price accepted when the order was created, or null when unavailable.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "currency",
    "node": 164,
    "required": true,
    "visible": false
  }, {
    "name": "total_cents",
    "node": 165,
    "required": true,
    "visible": false
  }, {
    "name": "transport_cents",
    "node": 166,
    "required": true,
    "visible": false
  }, {
    "name": "additional_fees_cents",
    "node": 167,
    "required": true,
    "visible": false
  }, {
    "name": "trade_in_cents",
    "node": 168,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "The driving distance in meters that the price calculation used.\nThe field appears only in the creation response.\nBahn does not store the value on the order.\n",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Order-level note supplied by the customer.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "Actions currently available to this credential. Use this list to enable order controls.",
  "rules": ["Items must be unique.", "Values: \"update\", \"cancel\", \"get_files\", \"get_inspection_report\", \"get_tracking\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "string",
  "description": "An opaque order revision.\nUse this value in the If-Match header for an order change.\nA live ETA update does not change this value.\n",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Current state of one transport order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "id",
    "node": 90,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "customer_reference",
    "node": 92,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 93,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_readiness",
    "node": 94,
    "required": true,
    "visible": false
  }, {
    "name": "created_at",
    "node": 95,
    "required": true,
    "visible": false
  }, {
    "name": "updated_at",
    "node": 96,
    "required": true,
    "visible": false
  }, {
    "name": "pickup",
    "node": 123,
    "required": true,
    "visible": false
  }, {
    "name": "delivery",
    "node": 133,
    "required": true,
    "visible": false
  }, {
    "name": "items",
    "node": 160,
    "required": true,
    "visible": false
  }, {
    "name": "service_options",
    "node": 163,
    "required": true,
    "visible": false
  }, {
    "name": "price",
    "node": 169,
    "required": true,
    "visible": false
  }, {
    "name": "customer_note",
    "node": 171,
    "required": true,
    "visible": false
  }, {
    "name": "allowed_actions",
    "node": 172,
    "required": true,
    "visible": false
  }, {
    "name": "revision",
    "node": 173,
    "required": true,
    "visible": false
  }, {
    "name": "distance_meters",
    "node": 170,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Replacement customer reference, or null to clear it.",
  "rules": ["Length: 1 to 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Complete address as it should appear to a person handling the transport.",
  "rules": ["Length: 1 to 500 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Business, dealership, auction, or site name at this address.",
  "rules": ["Length: 1 to 500 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Street name and building number.",
  "rules": ["Length: 1 to 200 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Unit, gate, building, or other secondary address detail.",
  "rules": ["Length: 1 to 200 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Postal code for the location.",
  "rules": ["Length: 1 to 100 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "City or municipality for the location.",
  "rules": ["Length: 1 to 100 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Two-letter ISO 3166-1 country code, such as FI or DE.",
  "rules": ["Pattern: `^[A-Z]{2}$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Replacement pickup address.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "formatted_address",
    "node": 176,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 177,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_1",
    "node": 178,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_2",
    "node": 179,
    "required": false,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 180,
    "required": false,
    "visible": false
  }, {
    "name": "city",
    "node": 181,
    "required": false,
    "visible": false
  }, {
    "name": "country_code",
    "node": 182,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Replacement pickup handover type.",
  "rules": ["Values: \"dealership\", \"private\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Phone number for handover coordination. Include the country code.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Email address for handover coordination.",
  "rules": ["Format: email."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Replacement pickup contact.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 109,
    "required": false,
    "visible": false
  }, {
    "name": "phone",
    "node": 185,
    "required": false,
    "visible": false
  }, {
    "name": "email",
    "node": 186,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Replacement release code, or null to clear it.",
  "rules": ["Length: at most 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Replacement earliest pickup time.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Replacement list of acceptable pickup windows.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Changes only the supplied pickup fields.",
  "rules": ["At least 1 field.", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 183,
    "required": false,
    "visible": false
  }, {
    "name": "type",
    "node": 184,
    "required": false,
    "visible": false
  }, {
    "name": "contact",
    "node": 187,
    "required": false,
    "visible": false
  }, {
    "name": "release_code",
    "node": 188,
    "required": false,
    "visible": false
  }, {
    "name": "available_from",
    "node": 189,
    "required": false,
    "visible": false
  }, {
    "name": "requested_windows",
    "node": 190,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Replacement delivery address.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "formatted_address",
    "node": 176,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 177,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_1",
    "node": 178,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_2",
    "node": 179,
    "required": false,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 180,
    "required": false,
    "visible": false
  }, {
    "name": "city",
    "node": 181,
    "required": false,
    "visible": false
  }, {
    "name": "country_code",
    "node": 182,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Replacement delivery handover type.",
  "rules": ["Values: \"dealership\", \"end_customer\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Replacement delivery contact.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 109,
    "required": false,
    "visible": false
  }, {
    "name": "phone",
    "node": 185,
    "required": false,
    "visible": false
  }, {
    "name": "email",
    "node": 186,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Replacement list of acceptable delivery windows.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Changes only the supplied delivery fields.",
  "rules": ["At least 1 field.", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 192,
    "required": false,
    "visible": false
  }, {
    "name": "type",
    "node": 193,
    "required": false,
    "visible": false
  }, {
    "name": "contact",
    "node": 194,
    "required": false,
    "visible": false
  }, {
    "name": "requested_windows",
    "node": 195,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Identifies the main vehicle in the order.",
  "rules": ["Must be \"primary\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "17-character vehicle identification number. Required for cross-border orders.",
  "rules": ["Length: 17 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Registration number, or null when the vehicle is not registered.",
  "rules": ["Length: 1 to 50 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle manufacturer, when known.",
  "rules": ["Length: 1 to 100 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle model, when known.",
  "rules": ["Length: 1 to 100 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle fuel or powertrain type, when known.",
  "rules": ["Values: \"petrol\", \"diesel\", \"electric\", \"hybrid_petrol\", \"hybrid_diesel\", \"unknown\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle transmission type, when known.",
  "rules": ["Values: \"manual\", \"automatic\", \"unknown\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Engine or motor power in kilowatts, when known.",
  "rules": ["Range: at least 1."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Calendar year of first registration, when known.",
  "rules": ["Range: 1886 to 3000."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Vehicle kerb weight in kilograms, when known.",
  "rules": ["Range: at least 1."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Winter-tire information, when relevant to the transport.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "mounted",
    "node": 157,
    "required": true,
    "visible": false
  }, {
    "name": "in_vehicle",
    "node": 158,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle-specific handling or identification note for Bahn.",
  "rules": ["Length: at most 5000 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Replaces the primary vehicle input. Include its identifier and every fact to retain.\nA trade-in item remains unchanged.\n",
  "rules": ["Items: 1.", "No additional fields.", "Must omit: `cmr_recipient`."],
  "strict": true,
  "fields": [{
    "name": "role",
    "node": 197,
    "required": true,
    "visible": false
  }, {
    "name": "vin",
    "node": 198,
    "required": false,
    "visible": true
  }, {
    "name": "registration_number",
    "node": 199,
    "required": false,
    "visible": true
  }, {
    "name": "make",
    "node": 200,
    "required": false,
    "visible": false
  }, {
    "name": "model",
    "node": 201,
    "required": false,
    "visible": false
  }, {
    "name": "fuel_type",
    "node": 202,
    "required": false,
    "visible": false
  }, {
    "name": "transmission",
    "node": 203,
    "required": false,
    "visible": false
  }, {
    "name": "engine_power_kw",
    "node": 204,
    "required": false,
    "visible": false
  }, {
    "name": "first_registered_year",
    "node": 205,
    "required": false,
    "visible": false
  }, {
    "name": "kerb_weight_kg",
    "node": 206,
    "required": false,
    "visible": false
  }, {
    "name": "winter_tires",
    "node": 207,
    "required": false,
    "visible": false
  }, {
    "name": "note",
    "node": 208,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Replacement transport and inspection service.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "transport_preference",
    "node": 161,
    "required": true,
    "visible": false
  }, {
    "name": "inspection",
    "node": 162,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "Adds uploaded files to the order.\nExisting order files remain attached.\n",
  "rules": ["Items must be unique.", "Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "string | null",
  "description": "Replacement order-level note, or null to clear it.",
  "rules": ["Length: at most 5000 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Order fields to change. Omitted fields keep their current values.",
  "rules": ["At least 1 field.", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "customer_reference",
    "node": 175,
    "required": false,
    "visible": false
  }, {
    "name": "pickup",
    "node": 191,
    "required": false,
    "visible": false
  }, {
    "name": "delivery",
    "node": 196,
    "required": false,
    "visible": false
  }, {
    "name": "items",
    "node": 209,
    "required": false,
    "visible": false
  }, {
    "name": "service_options",
    "node": 210,
    "required": false,
    "visible": false
  }, {
    "name": "file_ids",
    "node": 211,
    "required": false,
    "visible": false
  }, {
    "name": "customer_note",
    "node": 212,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The new order revision.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "ETag",
    "node": 214,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Optional. Send it only when an ordering-channel credential orders for another business. Omit it to order for your own account.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "country_code",
    "node": 81,
    "required": true,
    "visible": false
  }, {
    "name": "business_id",
    "node": 82,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Your reference for matching the Bahn order to your system. It does not need to be unique.",
  "rules": ["Length: 1 to 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Location where Bahn collects the vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "formatted_address",
    "node": 176,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 177,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_1",
    "node": 178,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_2",
    "node": 179,
    "required": false,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 180,
    "required": false,
    "visible": false
  }, {
    "name": "city",
    "node": 181,
    "required": false,
    "visible": false
  }, {
    "name": "country_code",
    "node": 182,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Dealership for a business handover; private for a private-person handover.",
  "rules": ["Values: \"dealership\", \"private\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Person Bahn should contact about the pickup.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 109,
    "required": false,
    "visible": false
  }, {
    "name": "phone",
    "node": 185,
    "required": false,
    "visible": false
  }, {
    "name": "email",
    "node": 186,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Code or reference required to release the vehicle at pickup.",
  "rules": ["Length: at most 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Time ranges the customer can accept for pickup. Bahn can agree to one later.",
  "rules": ["Default: [].", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Pickup location and handover details. Send available_from, one or more requested_windows, or both.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 218,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 219,
    "required": true,
    "visible": false
  }, {
    "name": "contact",
    "node": 220,
    "required": false,
    "visible": false
  }, {
    "name": "release_code",
    "node": 221,
    "required": false,
    "visible": false
  }, {
    "name": "available_from",
    "node": 114,
    "required": false,
    "visible": true
  }, {
    "name": "requested_windows",
    "node": 222,
    "required": false,
    "visible": true
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Location where Bahn delivers the vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "formatted_address",
    "node": 176,
    "required": true,
    "visible": false
  }, {
    "name": "name",
    "node": 177,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_1",
    "node": 178,
    "required": false,
    "visible": false
  }, {
    "name": "address_line_2",
    "node": 179,
    "required": false,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 180,
    "required": false,
    "visible": false
  }, {
    "name": "city",
    "node": 181,
    "required": false,
    "visible": false
  }, {
    "name": "country_code",
    "node": 182,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Dealership for a business handover; end_customer for delivery to the buyer or user.",
  "rules": ["Values: \"dealership\", \"end_customer\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Person Bahn should contact about the delivery.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 109,
    "required": false,
    "visible": false
  }, {
    "name": "phone",
    "node": 185,
    "required": false,
    "visible": false
  }, {
    "name": "email",
    "node": 186,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Time ranges the customer can accept for delivery. Bahn can agree to one later.",
  "rules": ["Default: [].", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "description": "Delivery location, handover details, and requested windows.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 224,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 225,
    "required": true,
    "visible": false
  }, {
    "name": "contact",
    "node": 226,
    "required": false,
    "visible": false
  }, {
    "name": "requested_windows",
    "node": 227,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Must be \"company\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Length: at least 1 character."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Pattern: `^[A-Z]{2}$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Optional copy of the address returned by Get CMR options. Bahn rejects the selection if these details no longer match.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "street_address",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "city",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "country_code",
    "node": 231,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Use the registered company address on the customer account.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "kind",
    "node": 229,
    "required": true,
    "visible": false
  }, {
    "name": "expected_recipient",
    "node": 232,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Must be \"delivery\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Use the delivery destination for this vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "kind",
    "node": 234,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Must be \"place\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Use an active saved location on the customer account. Send its place_id.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "kind",
    "node": 236,
    "required": true,
    "visible": false
  }, {
    "name": "place_id",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "expected_recipient",
    "node": 232,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Must be \"other\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "The complete address to print on this vehicle's CMR.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "street_address",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "city",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "country_code",
    "node": 231,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Provide the complete recipient address for this vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "kind",
    "node": 238,
    "required": true,
    "visible": false
  }, {
    "name": "recipient",
    "node": 239,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Optional CMR recipient for this vehicle. Omit to use your account defaults. It does not change the transport destination or handling mode.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "Registered company address",
    "node": 233
  }, {
    "label": "Physical delivery destination",
    "node": 235
  }, {
    "label": "Saved customer location",
    "node": 237
  }, {
    "label": "One-off recipient",
    "node": 240
  }],
  "array": false
}, {
  "type": "object",
  "description": "Vehicle that Bahn transports from pickup to delivery. Send a VIN or registration number; cross-border orders require the VIN.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "role",
    "node": 197,
    "required": true,
    "visible": false
  }, {
    "name": "vin",
    "node": 198,
    "required": false,
    "visible": true
  }, {
    "name": "registration_number",
    "node": 199,
    "required": false,
    "visible": true
  }, {
    "name": "make",
    "node": 200,
    "required": false,
    "visible": false
  }, {
    "name": "model",
    "node": 201,
    "required": false,
    "visible": false
  }, {
    "name": "fuel_type",
    "node": 202,
    "required": false,
    "visible": false
  }, {
    "name": "transmission",
    "node": 203,
    "required": false,
    "visible": false
  }, {
    "name": "engine_power_kw",
    "node": 204,
    "required": false,
    "visible": false
  }, {
    "name": "first_registered_year",
    "node": 205,
    "required": false,
    "visible": false
  }, {
    "name": "kerb_weight_kg",
    "node": 206,
    "required": false,
    "visible": false
  }, {
    "name": "winter_tires",
    "node": 207,
    "required": false,
    "visible": false
  }, {
    "name": "note",
    "node": 208,
    "required": false,
    "visible": false
  }, {
    "name": "cmr_recipient",
    "node": 241,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Identifies the trade-in vehicle in the order.",
  "rules": ["Must be \"trade_in\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "17-character vehicle identification number, when known.",
  "rules": ["Length: 17 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Registration number used to identify the trade-in vehicle.",
  "rules": ["Length: 1 to 50 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Optional vehicle collected from the delivery location and returned to the pickup location.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "role",
    "node": 243,
    "required": true,
    "visible": false
  }, {
    "name": "registration_number",
    "node": 245,
    "required": true,
    "visible": false
  }, {
    "name": "vin",
    "node": 244,
    "required": false,
    "visible": true
  }, {
    "name": "make",
    "node": 200,
    "required": false,
    "visible": false
  }, {
    "name": "model",
    "node": 201,
    "required": false,
    "visible": false
  }, {
    "name": "fuel_type",
    "node": 202,
    "required": false,
    "visible": false
  }, {
    "name": "transmission",
    "node": 203,
    "required": false,
    "visible": false
  }, {
    "name": "engine_power_kw",
    "node": 204,
    "required": false,
    "visible": false
  }, {
    "name": "first_registered_year",
    "node": 205,
    "required": false,
    "visible": false
  }, {
    "name": "kerb_weight_kg",
    "node": 206,
    "required": false,
    "visible": false
  }, {
    "name": "note",
    "node": 208,
    "required": false,
    "visible": false
  }, {
    "name": "cmr_recipient",
    "node": 241,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Exactly one item must have the primary role.",
  "rules": ["Items: 1 to 2.", "Exactly 1 item with `role = \"primary\"`."],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "Primary vehicle",
    "node": 242
  }, {
    "label": "Trade-in vehicle",
    "node": 246
  }],
  "array": true
}, {
  "type": "object",
  "description": "Transport and inspection service for the order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "transport_preference",
    "node": 161,
    "required": true,
    "visible": false
  }, {
    "name": "inspection",
    "node": 162,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "IDs returned by POST /v2/files. Use a customer_document file for a pickup release document.",
  "rules": ["Items must be unique.", "Pattern: `^file_[a-z0-9-]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "string | null",
  "description": "Order-level note for Bahn. Use item.note for vehicle-specific instructions.",
  "rules": ["Length: at most 5000 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Complete transport request that creates an order in the selected environment.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "pickup",
    "node": 223,
    "required": true,
    "visible": false
  }, {
    "name": "delivery",
    "node": 228,
    "required": true,
    "visible": false
  }, {
    "name": "items",
    "node": 247,
    "required": true,
    "visible": false
  }, {
    "name": "service_options",
    "node": 248,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 216,
    "required": false,
    "visible": false
  }, {
    "name": "customer_reference",
    "node": 217,
    "required": false,
    "visible": false
  }, {
    "name": "file_ids",
    "node": 249,
    "required": false,
    "visible": false
  }, {
    "name": "customer_note",
    "node": 250,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The new order resource.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "ETag",
    "node": 214,
    "required": false,
    "visible": false
  }, {
    "name": "Location",
    "node": 252,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The current order revision. Live ETA changes do not change it.\nSend this quoted value in If-Match for an update or cancellation.\n",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "ETag",
    "node": 254,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Version of the customer configuration. This is not an order revision for If-Match.",
  "rules": ["Length: at least 1 character."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "rules": ["Values: \"automatic\", \"company\", \"delivery\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "kind",
    "node": 257,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "kind",
    "node": 236,
    "required": true,
    "visible": false
  }, {
    "name": "place_id",
    "node": 230,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Default for future orders. automatic uses the physical destination.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "kind: automatic, company, delivery",
    "node": 258
  }, {
    "label": "kind = \"place\"",
    "node": 259
  }],
  "array": false
}, {
  "type": "string | null",
  "description": "Customer document-handling override, or null when normal route rules apply. Independent of the recipient choice.",
  "rules": ["Values: \"PHYSICAL\", \"DIGITAL\", \"NONE\", null."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Choose a recipient when creating the order; it stays fixed afterwards. For company or saved-location selections, send expected_recipient to reject stale address details.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "Registered company address",
    "node": 233
  }, {
    "label": "Physical delivery destination",
    "node": 235
  }, {
    "label": "Saved customer location",
    "node": 237
  }, {
    "label": "One-off recipient",
    "node": 240
  }],
  "array": false
}, {
  "type": "object | null",
  "description": "Complete recipient address, or null when required details are missing.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "street_address",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "postal_code",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "city",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "country_code",
    "node": 231,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "Recipient details to complete before this option can be used.",
  "rules": ["Values: \"name\", \"street_address\", \"postal_code\", \"city\", \"country_code\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "object[]",
  "description": "Registered company and active saved locations on this account.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "selection",
    "node": 262,
    "required": true,
    "visible": false
  }, {
    "name": "label",
    "node": 230,
    "required": true,
    "visible": false
  }, {
    "name": "recipient",
    "node": 263,
    "required": true,
    "visible": false
  }, {
    "name": "missing_fields",
    "node": 264,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "object",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "revision",
    "node": 256,
    "required": true,
    "visible": false
  }, {
    "name": "default_recipient",
    "node": 260,
    "required": true,
    "visible": false
  }, {
    "name": "default_mode",
    "node": 261,
    "required": true,
    "visible": false
  }, {
    "name": "options",
    "node": 265,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "data",
    "node": 266,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The opaque cursor from the previous response.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "The number of resources to return.",
  "rules": ["Range: 1 to 100.", "Default: 50."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Return only orders with this status.",
  "rules": ["Values: \"accepted\", \"in_transit\", \"delivered\", \"cancelled\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Return orders with this exact customer reference.",
  "rules": ["Length: 1 to 255 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "cursor",
    "node": 268,
    "required": false,
    "visible": false
  }, {
    "name": "page_size",
    "node": 269,
    "required": false,
    "visible": false
  }, {
    "name": "status",
    "node": 270,
    "required": false,
    "visible": false
  }, {
    "name": "customer_reference",
    "node": 271,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable Bahn order ID.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Customer reference supplied with the order.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Primary vehicle VIN, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Primary vehicle registration number, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Identifiers for the primary vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "vin",
    "node": 275,
    "required": true,
    "visible": false
  }, {
    "name": "registration_number",
    "node": 276,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Human-readable pickup address for list display.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Human-readable delivery address for list display.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Actual primary-vehicle pickup time, or null before pickup.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Actual primary-vehicle delivery time, or null before delivery.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Orders in this page.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "id",
    "node": 273,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "customer_reference",
    "node": 274,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 93,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_readiness",
    "node": 94,
    "required": true,
    "visible": false
  }, {
    "name": "created_at",
    "node": 95,
    "required": true,
    "visible": false
  }, {
    "name": "updated_at",
    "node": 96,
    "required": true,
    "visible": false
  }, {
    "name": "primary_vehicle",
    "node": 277,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_address",
    "node": 278,
    "required": true,
    "visible": false
  }, {
    "name": "delivery_address",
    "node": 279,
    "required": true,
    "visible": false
  }, {
    "name": "actual_pickup_at",
    "node": 280,
    "required": true,
    "visible": false
  }, {
    "name": "actual_delivery_at",
    "node": 281,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "string | null",
  "description": "Opaque cursor for the next page, or null after the final page.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "boolean",
  "description": "Whether another page is available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Cursor-paginated list of order summaries.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "data",
    "node": 282,
    "required": true,
    "visible": false
  }, {
    "name": "next_cursor",
    "node": 283,
    "required": true,
    "visible": false
  }, {
    "name": "has_more",
    "node": 284,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Proposed pickup details. A price check does not require pickup availability.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 218,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 219,
    "required": true,
    "visible": false
  }, {
    "name": "contact",
    "node": 220,
    "required": false,
    "visible": false
  }, {
    "name": "release_code",
    "node": 221,
    "required": false,
    "visible": false
  }, {
    "name": "available_from",
    "node": 114,
    "required": false,
    "visible": true
  }, {
    "name": "requested_windows",
    "node": 222,
    "required": false,
    "visible": true
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Proposed delivery details.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "address",
    "node": 224,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 225,
    "required": true,
    "visible": false
  }, {
    "name": "contact",
    "node": 226,
    "required": false,
    "visible": false
  }, {
    "name": "requested_windows",
    "node": 227,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Identifies the main vehicle in the price check.",
  "rules": ["Must be \"primary\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "17-character vehicle identification number, when already known.",
  "rules": ["Length: 17 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Registration number, or null when it is not known.",
  "rules": ["Length: 1 to 50 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Winter-tire information, when relevant to pricing.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "mounted",
    "node": 157,
    "required": true,
    "visible": false
  }, {
    "name": "in_vehicle",
    "node": 158,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Vehicle-specific note that can affect the transport.",
  "rules": ["Length: at most 5000 characters."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Primary vehicle facts needed to calculate a price. A vehicle identifier is optional here.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "role",
    "node": 288,
    "required": true,
    "visible": false
  }, {
    "name": "vin",
    "node": 289,
    "required": false,
    "visible": true
  }, {
    "name": "registration_number",
    "node": 290,
    "required": false,
    "visible": true
  }, {
    "name": "make",
    "node": 200,
    "required": false,
    "visible": false
  }, {
    "name": "model",
    "node": 201,
    "required": false,
    "visible": false
  }, {
    "name": "fuel_type",
    "node": 202,
    "required": false,
    "visible": false
  }, {
    "name": "transmission",
    "node": 203,
    "required": false,
    "visible": false
  }, {
    "name": "engine_power_kw",
    "node": 204,
    "required": false,
    "visible": false
  }, {
    "name": "first_registered_year",
    "node": 205,
    "required": false,
    "visible": false
  }, {
    "name": "kerb_weight_kg",
    "node": 206,
    "required": false,
    "visible": false
  }, {
    "name": "winter_tires",
    "node": 291,
    "required": false,
    "visible": false
  }, {
    "name": "note",
    "node": 292,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "One primary vehicle and, optionally, one reverse-route trade-in vehicle.",
  "rules": ["Items: 1 to 2.", "Exactly 1 item with `role = \"primary\"`."],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "Primary vehicle",
    "node": 293
  }, {
    "label": "Trade-in vehicle",
    "node": 246
  }],
  "array": true
}, {
  "type": "object",
  "description": "Proposed transport and inspection service.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "transport_preference",
    "node": 161,
    "required": true,
    "visible": false
  }, {
    "name": "inspection",
    "node": 162,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Route, vehicles, and service choices used to calculate a price.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "pickup",
    "node": 286,
    "required": true,
    "visible": false
  }, {
    "name": "delivery",
    "node": 287,
    "required": true,
    "visible": false
  }, {
    "name": "items",
    "node": 294,
    "required": true,
    "visible": false
  }, {
    "name": "service_options",
    "node": 295,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 216,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "available means the response contains an automatic price.",
  "rules": ["Must be \"available\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Business the price was calculated for, or null when it is for your own account.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "country_code",
    "node": 81,
    "required": true,
    "visible": false
  }, {
    "name": "business_id",
    "node": 82,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Automatic price for this request.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "currency",
    "node": 164,
    "required": true,
    "visible": false
  }, {
    "name": "total_cents",
    "node": 165,
    "required": true,
    "visible": false
  }, {
    "name": "transport_cents",
    "node": 166,
    "required": true,
    "visible": false
  }, {
    "name": "additional_fees_cents",
    "node": 167,
    "required": true,
    "visible": false
  }, {
    "name": "trade_in_cents",
    "node": 168,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "The driving distance in meters that the price calculation uses for this route.\nBahn's per-km prices use this distance rounded up to whole kilometers.\nUse it to calculate your own derived prices from exactly the same distance.\nThe value is null when no driving distance is available for the route.\n",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Indicative pickup time for this price result. It is not an agreed window or ETA.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Indicative delivery time for this price result. It is not an agreed window or ETA.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Automatic price with indicative pickup and delivery times.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "status",
    "node": 297,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 298,
    "required": true,
    "visible": false
  }, {
    "name": "price",
    "node": 299,
    "required": true,
    "visible": false
  }, {
    "name": "distance_meters",
    "node": 300,
    "required": true,
    "visible": false
  }, {
    "name": "estimated_pickup_at",
    "node": 301,
    "required": true,
    "visible": false
  }, {
    "name": "estimated_delivery_at",
    "node": 302,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "custom_quote_required means automatic pricing is not available for this request.",
  "rules": ["Must be \"custom_quote_required\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "null",
  "description": "Always null because no automatic price is available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Indicative pickup time when one can still be calculated.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Indicative delivery time when one can still be calculated.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Automatic pricing is not available. Bahn does not guarantee a custom quote.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "status",
    "node": 304,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 298,
    "required": true,
    "visible": false
  }, {
    "name": "price",
    "node": 305,
    "required": true,
    "visible": false
  }, {
    "name": "distance_meters",
    "node": 300,
    "required": true,
    "visible": false
  }, {
    "name": "estimated_pickup_at",
    "node": 306,
    "required": true,
    "visible": false
  }, {
    "name": "estimated_delivery_at",
    "node": 307,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Automatic price result or a clear custom-quote result.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "Automatic price available",
    "node": 303
  }, {
    "label": "Custom quote required",
    "node": 308
  }],
  "array": false
}, {
  "type": "string",
  "description": "Bearer token. Required scopes: reports:read.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Authorization",
    "node": 310,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Include orders created at or after this RFC 3339 timestamp.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Include orders created at or before this RFC 3339 timestamp.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "cursor",
    "node": 268,
    "required": false,
    "visible": false
  }, {
    "name": "page_size",
    "node": 269,
    "required": false,
    "visible": false
  }, {
    "name": "created_from",
    "node": 312,
    "required": false,
    "visible": false
  }, {
    "name": "created_to",
    "node": 313,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Pickup country as a two-letter ISO code, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Delivery country as a two-letter ISO code, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Human-readable pickup address, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Human-readable delivery address, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Pickup handover type.",
  "rules": ["Values: \"dealership\", \"private\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Delivery handover type.",
  "rules": ["Values: \"dealership\", \"end_customer\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Credential name or person name, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Person email for portal orders, or null for API-credential orders.",
  "rules": ["Format: email."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Person or API credential that created the order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 321,
    "required": true,
    "visible": false
  }, {
    "name": "email",
    "node": 322,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Earliest pickup availability supplied with the order, when available.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Actual primary-vehicle pickup time, when available.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Actual primary-vehicle delivery time, when available.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "Sum of recorded driving distances for completed transport work, in meters.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "Sum of recorded driving times for completed transport work, in minutes.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer | null",
  "description": "Minutes from actual primary pickup to actual primary delivery.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Currency of the report cost.",
  "rules": ["Must be \"EUR\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Billing price plus additional billing rows, in euro cents.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Billed order cost, or null when unavailable.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "currency",
    "node": 330,
    "required": true,
    "visible": false
  }, {
    "name": "total_cents",
    "node": 331,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "boolean",
  "description": "Whether Bahn recorded an approved fuel or charging expense.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Total approved fuel or charging cost in euro cents.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Approved fuel or charging expense summary.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "occurred",
    "node": 333,
    "required": true,
    "visible": false
  }, {
    "name": "cost_cents",
    "node": 334,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "Report rows in this page.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 273,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "customer_reference",
    "node": 274,
    "required": true,
    "visible": false
  }, {
    "name": "created_at",
    "node": 95,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 93,
    "required": true,
    "visible": false
  }, {
    "name": "primary_vin",
    "node": 275,
    "required": true,
    "visible": false
  }, {
    "name": "primary_registration_number",
    "node": 276,
    "required": true,
    "visible": false
  }, {
    "name": "origin_country",
    "node": 315,
    "required": true,
    "visible": false
  }, {
    "name": "destination_country",
    "node": 316,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_address",
    "node": 317,
    "required": true,
    "visible": false
  }, {
    "name": "delivery_address",
    "node": 318,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_type",
    "node": 319,
    "required": true,
    "visible": false
  }, {
    "name": "delivery_type",
    "node": 320,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_by",
    "node": 323,
    "required": true,
    "visible": false
  }, {
    "name": "available_for_pickup_at",
    "node": 324,
    "required": true,
    "visible": false
  }, {
    "name": "picked_up_at",
    "node": 325,
    "required": true,
    "visible": false
  }, {
    "name": "delivered_at",
    "node": 326,
    "required": true,
    "visible": false
  }, {
    "name": "distance_meters",
    "node": 327,
    "required": true,
    "visible": false
  }, {
    "name": "driver_time_minutes",
    "node": 328,
    "required": true,
    "visible": false
  }, {
    "name": "total_transport_minutes",
    "node": 329,
    "required": true,
    "visible": false
  }, {
    "name": "cost",
    "node": 332,
    "required": true,
    "visible": false
  }, {
    "name": "refuel",
    "node": 335,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "boolean",
  "description": "Whether another report page is available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Cursor-paginated page of flat report rows.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "data",
    "node": 336,
    "required": true,
    "visible": false
  }, {
    "name": "next_cursor",
    "node": 283,
    "required": true,
    "visible": false
  }, {
    "name": "has_more",
    "node": 337,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Bearer token. Required scopes: test:write.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "Authorization",
    "node": 339,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Named state change to apply. Its current-state precondition must be satisfied.",
  "rules": ["Values: \"pickup_readiness_confirmed\", \"pickup_approach_started\", \"pickup_nearby\", \"pickup_completed\", \"delivery_eta_changed\", \"inspection_completed\", \"files_published\", \"tracking_available\", \"tracking_unavailable\", \"tracking_paused\", \"delivery_completed\", \"cancelled\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Optional event time for deterministic tests. Defaults to the current time.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Scenario to apply to one sandbox order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "scenario",
    "node": 341,
    "required": true,
    "visible": false
  }, {
    "name": "occurred_at",
    "node": 342,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Scenario that was applied.",
  "rules": ["Values: \"pickup_readiness_confirmed\", \"pickup_approach_started\", \"pickup_nearby\", \"pickup_completed\", \"delivery_eta_changed\", \"inspection_completed\", \"files_published\", \"tracking_available\", \"tracking_unavailable\", \"tracking_paused\", \"delivery_completed\", \"cancelled\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Current order after the scenario.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "id",
    "node": 90,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "customer_reference",
    "node": 92,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 93,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_readiness",
    "node": 94,
    "required": true,
    "visible": false
  }, {
    "name": "created_at",
    "node": 95,
    "required": true,
    "visible": false
  }, {
    "name": "updated_at",
    "node": 96,
    "required": true,
    "visible": false
  }, {
    "name": "pickup",
    "node": 123,
    "required": true,
    "visible": false
  }, {
    "name": "delivery",
    "node": 133,
    "required": true,
    "visible": false
  }, {
    "name": "items",
    "node": 160,
    "required": true,
    "visible": false
  }, {
    "name": "service_options",
    "node": 163,
    "required": true,
    "visible": false
  }, {
    "name": "price",
    "node": 169,
    "required": true,
    "visible": false
  }, {
    "name": "customer_note",
    "node": 171,
    "required": true,
    "visible": false
  }, {
    "name": "allowed_actions",
    "node": 172,
    "required": true,
    "visible": false
  }, {
    "name": "revision",
    "node": 173,
    "required": true,
    "visible": false
  }, {
    "name": "distance_meters",
    "node": 170,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Applied scenario and the resulting current order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "scenario",
    "node": 344,
    "required": true,
    "visible": false
  }, {
    "name": "order",
    "node": 345,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The last location revision that the caller received.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "X-Request-Id",
    "node": 19,
    "required": false,
    "visible": false
  }, {
    "name": "If-None-Match",
    "node": 347,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The location snapshot revision.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "ETag",
    "node": 349,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order represented by this tracking snapshot.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current overall order status.",
  "rules": ["Values: \"accepted\", \"in_transit\", \"delivered\", \"cancelled\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle that this tracking entry describes.",
  "rules": ["Pattern: `^item_[a-z0-9]+_(primary|trade_in)$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current tracking lifecycle state.\nnot_started means no customer tracking has started.\nactive means the current driver assignment has active tracking.\npaused means a durable ferry or carrier phase has no driver GPS.\nended means delivery or cancellation ended tracking.\nA null position during a short GPS gap does not change active to paused.\n",
  "rules": ["Values: \"not_started\", \"active\", \"paused\", \"ended\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The current tracking phase.",
  "rules": ["Values: \"pickup\", \"transport\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Pickup approach state, or null outside pickup approach.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Driver's full name.",
  "rules": ["Length: at least 1 character."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Known pickup driver, or null when no driver name is available.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "name",
    "node": 357,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "GeoJSON geometry type.",
  "rules": ["Must be \"Point\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "number",
  "description": "Longitude, in degrees.",
  "rules": ["Range: -180 to 180."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "number",
  "description": "Latitude, in degrees.",
  "rules": ["Range: -90 to 90."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "tuple[]",
  "description": "Longitude and latitude for the map marker.",
  "rules": ["Items: 2."],
  "strict": false,
  "fields": [{
    "name": "[0]",
    "node": 360,
    "required": true,
    "visible": false
  }, {
    "name": "[1]",
    "node": 361,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "GeoJSON point to render as the vehicle marker.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "type",
    "node": 359,
    "required": true,
    "visible": false
  }, {
    "name": "coordinates",
    "node": 362,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time when this position was observed. Show its age near the map.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "number | null",
  "description": "The position accuracy radius in meters.",
  "rules": ["Range: at least 0."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "number | null",
  "description": "The travel heading in degrees from north.",
  "rules": ["Range: 0 to 360."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "The position to show for this item, or null when no position is available.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "point",
    "node": 363,
    "required": true,
    "visible": false
  }, {
    "name": "observed_at",
    "node": 364,
    "required": true,
    "visible": false
  }, {
    "name": "accuracy_meters",
    "node": 365,
    "required": true,
    "visible": false
  }, {
    "name": "heading_degrees",
    "node": 366,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object[]",
  "description": "One tracking entry for each order item.",
  "rules": ["Items: at least 1.", "No additional fields."],
  "strict": true,
  "fields": [{
    "name": "item_id",
    "node": 353,
    "required": true,
    "visible": false
  }, {
    "name": "role",
    "node": 135,
    "required": true,
    "visible": false
  }, {
    "name": "tracking_state",
    "node": 354,
    "required": true,
    "visible": false
  }, {
    "name": "phase",
    "node": 355,
    "required": true,
    "visible": false
  }, {
    "name": "pickup_progress",
    "node": 356,
    "required": true,
    "visible": false
  }, {
    "name": "driver",
    "node": 358,
    "required": true,
    "visible": false
  }, {
    "name": "position",
    "node": 367,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": true
}, {
  "type": "string",
  "description": "Opaque snapshot revision used as the tracking ETag.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Current map and pickup-approach state for every vehicle in an order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 351,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 352,
    "required": true,
    "visible": false
  }, {
    "name": "items",
    "node": 368,
    "required": true,
    "visible": false
  }, {
    "name": "revision",
    "node": 369,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Event identifier included in the signature input. It remains the same across retries.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Unix timestamp in seconds included in the signature input.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "One or more Standard Webhooks v1 signatures for the raw request body.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "rules": [],
  "strict": false,
  "fields": [{
    "name": "webhook-id",
    "node": 371,
    "required": true,
    "visible": false
  }, {
    "name": "webhook-timestamp",
    "node": 372,
    "required": true,
    "visible": false
  }, {
    "name": "webhook-signature",
    "node": 373,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "CloudEvents specification version.",
  "rules": ["Must be \"1.0\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable event ID. Use it to deduplicate retries and replays.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Bahn API origin for the event environment. Resolve resource paths against this origin.",
  "rules": ["Format: uri."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order subject in the form orders/{order_id}.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Time when the event occurred.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Media type of the event data.",
  "rules": ["Must be \"application/json\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable event type that identifies the changed resource or order area.",
  "rules": ["Values: \"com.bahn.order.updated.v1\", \"com.bahn.order.pickup_readiness.changed.v1\", \"com.bahn.order.schedule.changed.v1\", \"com.bahn.order.files.updated.v1\", \"com.bahn.order.inspection_report.available.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order affected by the event.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "integer",
  "description": "Increasing sequence used to order events for this order.",
  "rules": ["Range: at least 1."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "The path of the related current resource.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string[]",
  "description": "Paths of other resources that changed with the primary resource.",
  "rules": ["Items: at least 1.", "Items must be unique."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": true
}, {
  "type": "string",
  "description": "The order revision at the event time, when available.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Order identity and URLs for reading current state.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Order, schedule, readiness, file, or inspection change notice.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 381,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 387,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for an accepted-order event.",
  "rules": ["Must be \"com.bahn.order.created.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Initial status of every newly accepted order.",
  "rules": ["Must be \"accepted\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Accepted order identity and current-resource URL.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 390,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent after Bahn accepts a new order.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 389,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 391,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for an overall order-status event.",
  "rules": ["Must be \"com.bahn.order.status.changed.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Overall order status before the change.",
  "rules": ["Values: \"accepted\", \"in_transit\", \"delivered\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Overall order status after the change.",
  "rules": ["Values: \"accepted\", \"in_transit\", \"delivered\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Previous and current overall order status.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "previous_status",
    "node": 394,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 395,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent for an overall status transition not covered by an item or cancellation event.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 393,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 396,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for a vehicle-status event.",
  "rules": ["Must be \"com.bahn.order.item.status.changed.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle whose status changed.",
  "rules": ["Pattern: `^item_[a-z0-9]+_(primary|trade_in)$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Role of the changed vehicle.",
  "rules": ["Values: \"primary\", \"trade_in\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle status before the change.",
  "rules": ["Values: \"awaiting_pickup\", \"in_transit\", \"delivered\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle status after the change.",
  "rules": ["Values: \"awaiting_pickup\", \"in_transit\", \"delivered\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Vehicle identity and its previous and current status.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "item_id",
    "node": 399,
    "required": true,
    "visible": false
  }, {
    "name": "role",
    "node": 400,
    "required": true,
    "visible": false
  }, {
    "name": "previous_status",
    "node": 401,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 402,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent when one primary or trade-in vehicle changes physical transport state.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 398,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 403,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for an order cancellation event.",
  "rules": ["Must be \"com.bahn.order.cancelled.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Overall order status before cancellation.",
  "rules": ["Values: \"accepted\", \"in_transit\", \"delivered\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Final cancelled status.",
  "rules": ["Must be \"cancelled\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Previous order status and final cancelled status.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "previous_status",
    "node": 406,
    "required": true,
    "visible": false
  }, {
    "name": "status",
    "node": 407,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent when an order becomes cancelled.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 405,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 408,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for a material ETA event.",
  "rules": ["Must be \"com.bahn.order.eta_changed.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order whose ETA changed.",
  "rules": ["Pattern: `^ord_[a-z0-9]+$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order path to read for the current ETA and timing values.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Order revision at the event time, when available. ETA-only changes do not create a new revision.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stop whose ETA changed.",
  "rules": ["Values: \"pickup\", \"delivery\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "New ETA, or null when the ETA became unavailable.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Previously notified ETA, or null when no ETA had been notified.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object | null",
  "description": "Current agreed window for the target stop, or null when none exists.",
  "rules": [],
  "strict": true,
  "fields": [{
    "name": "start_at",
    "node": 115,
    "required": true,
    "visible": false
  }, {
    "name": "end_at",
    "node": 116,
    "required": true,
    "visible": false
  }, {
    "name": "timezone",
    "node": 117,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Current delivery commitment deadline, or null for pickup and uncommitted delivery.",
  "rules": ["Format: date-time."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Why Bahn sent the event: available for a new ETA, material_change for a large change,\noutside_window or inside_window for a boundary crossing, and unavailable when an ETA disappears.\n",
  "rules": ["Values: \"available\", \"material_change\", \"outside_window\", \"inside_window\", \"unavailable\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Previous and current ETA with the reason for notification.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 411,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 412,
    "required": true,
    "visible": false
  }, {
    "name": "target",
    "node": 414,
    "required": true,
    "visible": false
  }, {
    "name": "eta",
    "node": 415,
    "required": true,
    "visible": false
  }, {
    "name": "previous_eta",
    "node": 416,
    "required": true,
    "visible": false
  }, {
    "name": "window",
    "node": 417,
    "required": true,
    "visible": false
  }, {
    "name": "commitment_deadline_at",
    "node": 418,
    "required": true,
    "visible": false
  }, {
    "name": "reason",
    "node": 419,
    "required": true,
    "visible": false
  }, {
    "name": "revision",
    "node": 413,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent for a material pickup or delivery ETA change.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 410,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 420,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for a tracking state event.",
  "rules": ["Must be \"com.bahn.order.tracking.state_changed.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle whose tracking state changed.",
  "rules": ["Pattern: `^item_[a-z0-9]+_(primary|trade_in)$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Tracking state before the change, or null when no previous state exists.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Tracking state after the change.",
  "rules": ["Values: \"not_started\", \"active\", \"paused\", \"ended\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "pickup before collection; transport after collection.",
  "rules": ["Values: \"pickup\", \"transport\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Vehicle identity and its previous and current tracking state.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "item_id",
    "node": 423,
    "required": true,
    "visible": false
  }, {
    "name": "role",
    "node": 400,
    "required": true,
    "visible": false
  }, {
    "name": "previous_state",
    "node": 424,
    "required": true,
    "visible": false
  }, {
    "name": "state",
    "node": 425,
    "required": true,
    "visible": false
  }, {
    "name": "phase",
    "node": 426,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent when the tracking state changes for one vehicle.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 422,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 427,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Stable type for a pickup-approach event.",
  "rules": ["Must be \"com.bahn.order.pickup_progress.changed.v1\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Vehicle whose pickup progress changed.",
  "rules": ["Pattern: `^item_[a-z0-9]+_(primary|trade_in)$`."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string | null",
  "description": "Previous pickup progress, or null when approach just started.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "string",
  "description": "Current pickup progress.",
  "rules": ["Values: \"on_the_way\", \"nearby\"."],
  "strict": false,
  "fields": [],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Vehicle identity and its previous and current pickup progress.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "order_id",
    "node": 382,
    "required": true,
    "visible": false
  }, {
    "name": "ordered_for",
    "node": 91,
    "required": true,
    "visible": false
  }, {
    "name": "order_sequence",
    "node": 383,
    "required": true,
    "visible": false
  }, {
    "name": "resource_url",
    "node": 384,
    "required": true,
    "visible": false
  }, {
    "name": "item_id",
    "node": 430,
    "required": true,
    "visible": false
  }, {
    "name": "role",
    "node": 400,
    "required": true,
    "visible": false
  }, {
    "name": "previous_progress",
    "node": 431,
    "required": true,
    "visible": false
  }, {
    "name": "progress",
    "node": 432,
    "required": true,
    "visible": false
  }, {
    "name": "related_resource_urls",
    "node": 385,
    "required": false,
    "visible": false
  }, {
    "name": "revision",
    "node": 386,
    "required": false,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Sent when one vehicle becomes on_the_way or nearby for pickup.",
  "rules": ["No additional fields."],
  "strict": true,
  "fields": [{
    "name": "specversion",
    "node": 375,
    "required": true,
    "visible": false
  }, {
    "name": "id",
    "node": 376,
    "required": true,
    "visible": false
  }, {
    "name": "source",
    "node": 377,
    "required": true,
    "visible": false
  }, {
    "name": "subject",
    "node": 378,
    "required": true,
    "visible": false
  }, {
    "name": "time",
    "node": 379,
    "required": true,
    "visible": false
  }, {
    "name": "datacontenttype",
    "node": 380,
    "required": true,
    "visible": false
  }, {
    "name": "type",
    "node": 429,
    "required": true,
    "visible": false
  }, {
    "name": "data",
    "node": 433,
    "required": true,
    "visible": false
  }],
  "choices": [],
  "array": false
}, {
  "type": "object",
  "description": "Any signed Bahn order webhook event.",
  "rules": [],
  "strict": false,
  "fields": [],
  "choices": [{
    "label": "Order resource changed",
    "node": 388
  }, {
    "label": "Order created",
    "node": 392
  }, {
    "label": "Order status changed",
    "node": 397
  }, {
    "label": "Vehicle status changed",
    "node": 404
  }, {
    "label": "Order cancelled",
    "node": 409
  }, {
    "label": "ETA changed",
    "node": 421
  }, {
    "label": "Tracking state changed",
    "node": 428
  }, {
    "label": "Pickup progress changed",
    "node": 434
  }],
  "array": false
}];

export const ReferenceBrowser = ({nodes, operation, operationId}) => {
  const [panel, setPanel] = useState(operation.initialPanel);
  const [query, setQuery] = useState("");
  const [resultLimit, setResultLimit] = useState(30);
  const [expanded, setExpanded] = useState({});
  const [example, setExample] = useState(0);
  const [copied, setCopied] = useState(false);
  const root = useRef(null);
  const pendingTarget = useRef(null);
  const panels = {
    usage: "Usage and retries",
    request: "Request fields",
    response: "Response fields",
    errors: "Status and errors"
  };
  const slug = value => value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
  const hasChildren = node => node.fields.length > 0 || node.choices.length > 0;
  const optionalFields = node => node.fields.filter(field => !field.required && !field.visible && !hasChildren(nodes[field.node]));
  const defaultOpen = (node, required, depth) => required && (depth <= 2 || node.fields.length <= 5 && node.fields.every(field => !hasChildren(nodes[field.node])));
  const prose = value => (value ?? "").split(/(`[^`]*`)/g).map((part, index) => part.startsWith("`") ? <code key={index}>{part.slice(1, -1)}</code> : part);
  const index = useMemo(() => {
    const records = [];
    const indexField = (field, location, section, folded) => {
      const id = `${location.id}-${slug(field.name)}`;
      const path = location.path ? `${location.path}.${field.name}` : field.name;
      const value = nodes[field.node];
      const parents = folded.has(field) ? [...location.parents, `${location.id}-additional-fields`] : location.parents;
      records.push({
        id,
        path,
        node: field.node,
        section,
        parents,
        context: location.context,
        text: `${location.context} ${path} ${value.description ?? ""} ${value.rules.join(" ")}`.toLowerCase()
      });
      visit(field.node, {
        id: `${id}-fields`,
        path: `${path}${value.array ? "[]" : ""}`,
        parents: [...parents, `${id}-fields`],
        context: location.context
      }, section);
    };
    const visit = (nodeId, location, section) => {
      const node = nodes[nodeId];
      const optional = optionalFields(node);
      const folded = optional.length > 4 ? new Set(optional) : new Set();
      for (const field of node.fields) indexField(field, location, section, folded);
      node.choices.forEach((choice, choiceIndex) => {
        const id = `${location.id}-choice-${choiceIndex}`;
        const value = nodes[choice.node];
        const context = `${location.context} / ${choice.label}`;
        records.push({
          id,
          path: `${location.path}: ${choice.label}`,
          node: choice.node,
          section,
          parents: location.parents,
          context,
          text: `${context} ${value.description ?? ""} ${value.rules.join(" ")}`.toLowerCase()
        });
        visit(choice.node, {
          ...location,
          id,
          context,
          parents: [...location.parents, id]
        }, section);
      });
    };
    for (const section of ["request", "response", "errors"]) for (const group of operation[section]) visit(group.node, {
      id: group.id,
      path: "",
      parents: [],
      context: `${panels[section]} / ${group.label}`
    }, section);
    for (const status of operation.statuses) records.push({
      id: "reference-errors",
      path: `HTTP ${status.status}`,
      section: "errors",
      parents: [],
      description: status.description,
      text: `${status.status} ${status.description} ${status.code ?? ""}`.toLowerCase()
    });
    return records;
  }, [operationId]);
  const navigate = id => {
    const section = id.startsWith("reference-") ? id.slice(10) : index.find(record => record.id === id)?.section;
    const record = index.find(value => value.id === id);
    if (!section || panels[section] === undefined) return;
    setQuery("");
    setPanel(section);
    if (record) setExpanded(previous => Object.fromEntries([...Object.entries(previous), ...[...record.parents, record.id].map(parent => [parent, true])]));
    pendingTarget.current = id;
  };
  useEffect(() => {
    const onHash = () => navigate(decodeURIComponent(window.location.hash.slice(1)));
    onHash();
    window.addEventListener("hashchange", onHash);
    return () => window.removeEventListener("hashchange", onHash);
  }, [operationId]);
  useEffect(() => {
    const target = pendingTarget.current;
    if (!target) return;
    const element = document.getElementById(target);
    if (element) {
      element.scrollIntoView({
        block: "start",
        behavior: "instant"
      });
      pendingTarget.current = null;
    }
  }, [panel, expanded, query]);
  const linkTo = id => {
    window.history.pushState(null, "", `#${id}`);
    navigate(id);
    if (id.startsWith("reference-")) root.current.scrollIntoView({
      block: "start",
      behavior: "instant"
    });
  };
  const disclosure = (id, label, value, content, initiallyOpen = false) => {
    const open = expanded[id] ?? initiallyOpen;
    return <div className="bahn-field-disclosure" id={id} data-open={open} key={id}>
        <button type="button" aria-expanded={open} aria-controls={`${id}-content`} onClick={event => {
      event.preventDefault();
      setExpanded(previous => ({
        ...previous,
        [id]: !open
      }));
    }}>
          <span className="bahn-disclosure-chevron" aria-hidden="true">
            ›
          </span>
          <span className="bahn-disclosure-label">
            <strong>{label}</strong>
            {value && <span className="bahn-choice-value">{value}</span>}
          </span>
          <span className="bahn-disclosure-state">{open ? "Hide" : "Show"}</span>
        </button>
        {open && <div className="bahn-disclosure-content" id={`${id}-content`}>
            {content()}
          </div>}
      </div>;
  };
  const childFields = (field, location) => {
    const node = nodes[field.node];
    if (!hasChildren(node)) return null;
    const contents = () => fields(field.node, location);
    if (defaultOpen(node, field.required, location.depth)) return <div className="bahn-field-children" id={location.id}>
          {contents()}
        </div>;
    return disclosure(location.id, node.choices.length ? "Choose a shape" : "Fields", "", contents);
  };
  const fieldRow = (field, location) => {
    const node = nodes[field.node];
    const id = `${location.id}-${slug(field.name)}`;
    const path = location.path ? `${location.path}.${field.name}` : field.name;
    const displayRules = node.rules.filter(rule => rule !== "No additional fields.");
    const childLocation = {
      id: `${id}-fields`,
      path: `${path}${node.array ? "[]" : ""}`,
      depth: location.depth + 1
    };
    return <div className="bahn-field" id={id} key={id}>
        <div className="bahn-field-heading">
          <a className="bahn-field-name" href={`#${id}`} title={path} onClick={event => {
      if (!event.metaKey && !event.ctrlKey) {
        event.preventDefault();
        linkTo(id);
      }
    }}>
            <code>{field.name}</code>
          </a>
          <span className="bahn-field-meta">
            <span>{node.type}</span>
            <span className={field.required ? "bahn-field-required" : ""}>
              {field.required ? "required" : "optional"}
            </span>
            {node.strict && <span>no extra fields</span>}
          </span>
        </div>
        {node.description && <p className="bahn-field-description">{prose(node.description)}</p>}
        {displayRules.length > 0 && <p className="bahn-field-rules">{prose(displayRules.join(" "))}</p>}
        {childFields(field, childLocation)}
      </div>;
  };
  const fields = (nodeId, location) => {
    const node = nodes[nodeId];
    if (node.choices.length) return <div className="bahn-field-choices">
          <p className="bahn-choice-help">
            {node.array ? "Each array item uses one shape." : "Use exactly one shape."}
          </p>
          {node.choices.map((choice, choiceIndex) => {
      const id = `${location.id}-choice-${choiceIndex}`;
      return disclosure(id, choice.label, nodes[choice.node].description, () => <>
                  <p className="bahn-reference-rules">
                    {prose(nodes[choice.node].rules.join(" "))}
                  </p>
                  {fields(choice.node, {
        ...location,
        id
      })}
                </>, choiceIndex === 0);
    })}
        </div>;
    const optional = optionalFields(node);
    const folded = optional.length > 4 ? new Set(optional) : new Set();
    return <div className="bahn-field-list">
        {node.fields.filter(field => !folded.has(field)).map(field => fieldRow(field, location))}
        {folded.size > 0 && disclosure(`${location.id}-additional-fields`, `Optional fields (${folded.size})`, optional.map(field => field.name).join(", "), () => optional.map(field => fieldRow(field, location)))}
      </div>;
  };
  const groups = section => operation[section].map(group => <section className="bahn-reference-group" id={group.id} key={group.id}>
        <h3>{group.label}</h3>
        {group.description && <p className="bahn-reference-rules">{prose(group.description)}</p>}
        {nodes[group.node].rules.length > 0 && <p className="bahn-reference-rules">{prose(nodes[group.node].rules.join(" "))}</p>}
        {fields(group.node, {
    id: group.id,
    path: "",
    depth: 0
  })}
      </section>);
  const requestExamples = () => {
    const selected = operation.examples[example] ?? operation.examples[0];
    if (!selected) return null;
    return <section className="bahn-request-examples not-prose">
        <h3>Complete request examples</h3>
        <div className="bahn-example-controls">
          <label>
            Scenario{" "}
            <select value={example} onChange={event => {
      setExample(Number(event.target.value));
      setCopied(false);
    }}>
              {operation.examples.map((value, index) => <option key={value.title} value={index}>
                  {value.title}
                </option>)}
            </select>
          </label>
          <button type="button" onClick={async () => {
      try {
        await navigator.clipboard.writeText(JSON.stringify(selected.value, null, 2));
        setCopied(true);
      } catch {
        setCopied(false);
      }
    }}>
            {copied ? "Copied" : "Copy JSON"}
          </button>
        </div>
        <pre>
          <code>{JSON.stringify(selected.value, null, 2)}</code>
        </pre>
      </section>;
  };
  const usage = () => <section className="bahn-operation-rules">
      <h2>Operation rules</h2>
      <p>{prose(operation.description)}</p>
      {[["Before you call", operation.preconditions], ["What changes", operation.effects]].map(([label, rules]) => rules?.length > 0 && <div key={label}>
              <h3>{label}</h3>
              <ul>
                {rules.map(rule => <li key={rule}>{prose(rule)}</li>)}
              </ul>
            </div>)}
      {operation.retry && <p>
          <strong>Retries:</strong> {prose(operation.retry)}
        </p>}
    </section>;
  const errors = () => <>
      <h2>HTTP status codes</h2>
      <table className="bahn-field-table">
        <thead>
          <tr>
            <th>Status</th>
            <th>Meaning</th>
          </tr>
        </thead>
        <tbody>
          {operation.statuses.map(value => <tr key={value.status}>
              <td>
                <code>{value.status}</code>
              </td>
              <td>
                {prose(value.description)}
                {value.code && <p>
                    Example code: <code>{value.code}</code>
                  </p>}
              </td>
            </tr>)}
        </tbody>
      </table>
      {groups("errors")}
      <p>
        See <a href="/guides/errors-and-retries">Errors and retries</a> for recovery decisions.
      </p>
    </>;
  const terms = query.trim().toLowerCase().split(/\s+/).filter(Boolean);
  const matches = terms.length ? index.filter(record => terms.every(term => record.text.includes(term))) : [];
  return <div className="bahn-api-reference" ref={root}>
      <div className="bahn-reference-tools not-prose">
        <fieldset className="bahn-reference-panels">
          <legend className="sr-only">Reference sections</legend>
          {Object.entries(panels).map(([name, label]) => <button key={name} type="button" aria-pressed={!terms.length && panel === name} onClick={() => linkTo(`reference-${name}`)}>
              {label}
            </button>)}
        </fieldset>
        <div className="bahn-reference-controls">
          <label className="bahn-reference-search">
            <span className="sr-only">Search all fields and options</span>
            <input type="search" value={query} onChange={event => {
    setQuery(event.target.value);
    setResultLimit(30);
  }} placeholder="Find a field or option" />
          </label>
          <div className="bahn-reference-view">
            <button type="button" onClick={() => {
    setExpanded(Object.fromEntries(index.filter(record => record.section === panel).flatMap(record => [...record.parents, record.id]).map(id => [id, true])));
    setQuery("");
  }}>
              Show all details
            </button>
            <button type="button" onClick={() => {
    setExpanded({});
    setQuery("");
  }}>
              Reset view
            </button>
          </div>
        </div>
      </div>
      {terms.length ? <section className="bahn-search-results" aria-live="polite">
          <p>
            {matches.length} matching{" "}
            {matches.length === 1 ? "field or option" : "fields and options"} across this endpoint.
          </p>
          {matches.slice(0, resultLimit).map(record => <div className="bahn-field" key={`${record.section}-${record.id}-${record.path}`}>
              <p className="bahn-reference-rules">{record.context ?? panels[record.section]}</p>
              <div className="bahn-field-heading">
                <code>{record.path}</code>
                <span className="bahn-field-meta">{nodes[record.node]?.type ?? "HTTP status"}</span>
              </div>
              <p className="bahn-field-description">
                {prose(nodes[record.node]?.description ?? record.description)}
              </p>
              <p className="bahn-field-rules">
                {prose((nodes[record.node]?.rules ?? []).join(" "))}
              </p>
              <button className="bahn-search-context" type="button" onClick={() => linkTo(record.id)}>
                Show in {panels[record.section].toLowerCase()} →
              </button>
            </div>)}
          {matches.length > resultLimit && <button className="bahn-search-context" type="button" onClick={() => setResultLimit(limit => limit + 30)}>
              Show next {Math.min(30, matches.length - resultLimit)} matches
            </button>}
        </section> : <section id={`reference-${panel}`} data-reference-panel={panel}>
          {panel === "usage" && usage()}
          {panel === "request" && <>
              {requestExamples()}
              {groups("request")}
              {!operation.request.some(group => group.id.startsWith("request-body")) && <p>This operation has no request body.</p>}
            </>}
          {panel === "response" && <>
              {groups("response")}
              {!operation.response.length && <p>No response body.</p>}
            </>}
          {panel === "errors" && errors()}
        </section>}
    </div>;
};

Required scope: `orders:read`.

Read the [workflow guide](/guides/cmr-recipients) for setup, examples, and recovery behavior.

<ReferenceBrowser key="getCmrOptions" operationId="getCmrOptions" nodes={referenceNodes} operation={getCmrOptions} />


## OpenAPI

````yaml openapi.yaml GET /v2/cmr-options
openapi: 3.1.2
info:
  title: Bahn Customer API
  version: 2.0.0-draft
  summary: Create and follow vehicle transport orders.
  description: |
    Create vehicle transport orders and read their current state.
  contact:
    name: Bahn API support
    email: support@bahnexpress.com
  license:
    name: Proprietary
    identifier: LicenseRef-Proprietary
servers:
  - url: https://sandbox.api.bahnexpress.fi
    description: Customer sandbox
  - url: https://api.bahnexpress.fi
    description: Production
security:
  - oauth2:
      - orders:read
      - orders:write
tags:
  - name: Authentication
    description: Create an access token for the selected environment.
  - name: Prices
    description: Check the current price for a route.
  - name: Ordering channels
    description: Check which businesses an ordering channel can represent.
  - name: Orders
    description: Create, read, change, and cancel orders.
  - name: Files
    description: Upload and read order files.
  - name: Inspections
    description: Get vehicle inspection reports.
  - name: Tracking
    description: Get the current location for each order item.
  - name: Reports
    description: Get order report rows.
  - name: Sandbox
    description: Apply deterministic scenarios in the customer sandbox.
  - name: Webhooks
    description: Receive order change events from Bahn.
paths:
  /v2/cmr-options:
    get:
      tags:
        - Orders
      summary: Get CMR recipient choices and defaults
      description: >
        Returns the authenticated account's registered company address, saved
        customer

        locations, and document defaults for future orders. Each option
        identifies

        missing recipient details. This read does not accept ordered_for and
        does

        not change an order or its physical delivery destination.
      operationId: getCmrOptions
      responses:
        '200':
          description: Current options for this customer.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/CustomerCmrOptions'
              example:
                data:
                  revision: '2026-07-30T12:00:00Z'
                  default_recipient:
                    kind: automatic
                  default_mode: null
                  options:
                    - selection:
                        kind: company
                      label: Example Motors Oy
                      recipient:
                        name: Example Motors Oy
                        street_address: Mannerheimintie 1
                        postal_code: '00100'
                        city: Helsinki
                        country_code: FI
                      missing_fields: []
                    - selection:
                        kind: place
                        place_id: place_01k1a2b3c4d5e6f7g8h9j0k1m2
                      label: Warehouse
                      recipient: null
                      missing_fields:
                        - postal_code
        '401':
          description: Authentication failed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://api.bahnexpress.fi/problems/authentication-failed
                title: The access token is not valid.
                status: 401
                code: authentication_failed
                instance: /v2/cmr-options
                request_id: req_01k1a2b3c4d5e6f7g8h9j0k1m2
        '403':
          description: The access token lacks the required scope.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://api.bahnexpress.fi/problems/permission-denied
                title: The access token does not have the required scope.
                status: 403
                code: permission_denied
                instance: /v2/cmr-options
                request_id: req_01k1a2b3c4d5e6f7g8h9j0k1m2
                detail: The orders:read scope is required.
      security:
        - oauth2:
            - orders:read
components:
  schemas:
    CustomerCmrOptions:
      type: object
      additionalProperties: false
      required:
        - revision
        - default_recipient
        - default_mode
        - options
      properties:
        revision:
          type: string
          minLength: 1
          description: >-
            Version of the customer configuration. This is not an order revision
            for If-Match.
        default_recipient:
          description: Default for future orders. automatic uses the physical destination.
          oneOf:
            - type: object
              additionalProperties: false
              required:
                - kind
              properties:
                kind:
                  enum:
                    - automatic
                    - company
                    - delivery
            - type: object
              additionalProperties: false
              required:
                - kind
                - place_id
              properties:
                kind:
                  const: place
                place_id:
                  type: string
                  minLength: 1
        default_mode:
          enum:
            - PHYSICAL
            - DIGITAL
            - NONE
            - null
          description: >-
            Customer document-handling override, or null when normal route rules
            apply. Independent of the recipient choice.
        options:
          description: Registered company and active saved locations on this account.
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - selection
              - label
              - recipient
              - missing_fields
            properties:
              selection:
                $ref: '#/components/schemas/CmrRecipientSelection'
              label:
                type: string
                minLength: 1
              recipient:
                description: >-
                  Complete recipient address, or null when required details are
                  missing.
                oneOf:
                  - $ref: '#/components/schemas/CmrRecipient'
                  - type: 'null'
              missing_fields:
                description: Recipient details to complete before this option can be used.
                type: array
                items:
                  enum:
                    - name
                    - street_address
                    - postal_code
                    - city
                    - country_code
    Problem:
      description: A machine-readable API error in RFC 9457 problem-details format.
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - code
        - instance
        - request_id
      properties:
        type:
          type: string
          format: uri
          description: A stable URI for the problem type.
        title:
          type: string
          description: A short problem summary.
        status:
          type: integer
          minimum: 400
          maximum: 599
          description: The HTTP status code returned with this problem.
        code:
          $ref: '#/components/schemas/ProblemCode'
          description: Stable code for application logic and retry decisions.
        detail:
          type: string
          description: A human-readable explanation of this occurrence.
        instance:
          type: string
          description: The request path that produced the problem.
        request_id:
          type: string
          description: Request identifier to include when you contact Bahn support.
        errors:
          type: array
          description: >-
            Field-level validation errors, when the problem concerns request
            input.
          items:
            $ref: '#/components/schemas/FieldError'
    CmrRecipientSelection:
      description: >-
        Choose a recipient when creating the order; it stays fixed afterwards.
        For company or saved-location selections, send expected_recipient to
        reject stale address details.
      oneOf:
        - title: Registered company address
          description: Use the registered company address on the customer account.
          type: object
          additionalProperties: false
          required:
            - kind
          properties:
            kind:
              const: company
            expected_recipient:
              $ref: '#/components/schemas/CmrRecipient'
              description: >-
                Optional copy of the address returned by Get CMR options. Bahn
                rejects the selection if these details no longer match.
        - title: Physical delivery destination
          description: Use the delivery destination for this vehicle.
          type: object
          additionalProperties: false
          required:
            - kind
          properties:
            kind:
              const: delivery
        - title: Saved customer location
          description: >-
            Use an active saved location on the customer account. Send its
            place_id.
          type: object
          additionalProperties: false
          required:
            - kind
            - place_id
          properties:
            kind:
              const: place
            place_id:
              type: string
              minLength: 1
            expected_recipient:
              $ref: '#/components/schemas/CmrRecipient'
              description: >-
                Optional copy of the address returned by Get CMR options. Bahn
                rejects the selection if these details no longer match.
        - title: One-off recipient
          description: Provide the complete recipient address for this vehicle.
          type: object
          additionalProperties: false
          required:
            - kind
            - recipient
          properties:
            kind:
              const: other
            recipient:
              $ref: '#/components/schemas/CmrRecipient'
              description: The complete address to print on this vehicle's CMR.
    CmrRecipient:
      title: CMR recipient address
      type: object
      additionalProperties: false
      required:
        - name
        - street_address
        - postal_code
        - city
        - country_code
      properties:
        name:
          type: string
          minLength: 1
        street_address:
          type: string
          minLength: 1
        postal_code:
          type: string
          minLength: 1
        city:
          type: string
          minLength: 1
        country_code:
          type: string
          pattern: ^[A-Z]{2}$
    ProblemCode:
      type: string
      description: A stable machine code for client decisions.
      enum:
        - validation_error
        - authentication_failed
        - permission_denied
        - resource_not_found
        - idempotency_conflict
        - revision_conflict
        - order_not_cancellable
        - order_not_updateable
        - business_rule_violation
        - ordered_for_not_allowed
        - ordered_for_customer_not_found
        - file_too_large
        - request_too_large
        - scenario_not_allowed
        - internal_error
    FieldError:
      description: One invalid request field.
      type: object
      additionalProperties: false
      required:
        - path
        - code
        - message
      properties:
        path:
          type: string
          description: Dot-separated path to the invalid field.
        code:
          type: string
          description: Stable validation code for this field error.
        message:
          type: string
          description: Human-readable reason why the field is invalid.
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 client credentials.
      flows:
        clientCredentials:
          tokenUrl: /oauth2/token
          scopes:
            orders:read: Read customer orders.
            orders:write: Check prices, upload files, and change customer orders.
            reports:read: Read customer order reports.
            test:write: Apply customer sandbox scenarios.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.