{
  "openapi": "3.1.0",
  "info": {
    "title": "VIGO Rust standalone API",
    "version": "0.4.3-development",
    "description": "Prepared City routing and isochrones. Public result schemas are shared with the Node CLI; raw native and trace contracts are separate. Runtime validates mode combinations and native index/array invariants beyond these structural schemas. Bearer auth is optional only when no token is configured on a loopback listener."
  },
  "servers": [
    {
      "url": "https://routing.hytangs.com",
      "description": "Hosted Boston MBTA and Massport routing"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/v1/route": {
      "post": {
        "operationId": "route",
        "summary": "Route",
        "parameters": [
          {
            "in": "query",
            "name": "diagnostics",
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "summary",
                "profile",
                "trace"
              ]
            },
            "description": "Optional diagnostic detail; default none."
          },
          {
            "in": "query",
            "name": "includeGeometry",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLimitations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RouteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "408": {
            "description": "Request read deadline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "417": {
            "description": "Unsupported Expect header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "431": {
            "description": "Header limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Capacity or worker unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Query deadline or worker failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/matrix": {
      "post": {
        "operationId": "matrix",
        "summary": "Matrix",
        "parameters": [
          {
            "in": "query",
            "name": "diagnostics",
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "summary",
                "profile",
                "trace"
              ]
            },
            "description": "Optional diagnostic detail; default none."
          },
          {
            "in": "query",
            "name": "includeGeometry",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLimitations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatrixRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatrixResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "408": {
            "description": "Request read deadline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "417": {
            "description": "Unsupported Expect header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "431": {
            "description": "Header limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Capacity or worker unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Query deadline or worker failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/reach": {
      "post": {
        "operationId": "reach",
        "summary": "Reach",
        "parameters": [
          {
            "in": "query",
            "name": "diagnostics",
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "summary",
                "profile",
                "trace"
              ]
            },
            "description": "Optional diagnostic detail; default none."
          },
          {
            "in": "query",
            "name": "includeGeometry",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLimitations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReachRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReachResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "408": {
            "description": "Request read deadline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "417": {
            "description": "Unsupported Expect header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "431": {
            "description": "Header limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Capacity or worker unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Query deadline or worker failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/compare": {
      "post": {
        "operationId": "compare",
        "summary": "Compare",
        "parameters": [
          {
            "in": "query",
            "name": "diagnostics",
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "summary",
                "profile",
                "trace"
              ]
            },
            "description": "Optional diagnostic detail; default none."
          },
          {
            "in": "query",
            "name": "includeGeometry",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLimitations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompareRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompareResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "408": {
            "description": "Request read deadline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "417": {
            "description": "Unsupported Expect header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "431": {
            "description": "Header limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Capacity or worker unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Query deadline or worker failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/native": {
      "post": {
        "operationId": "native",
        "summary": "Native",
        "parameters": [
          {
            "in": "query",
            "name": "diagnostics",
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "summary",
                "profile",
                "trace"
              ]
            },
            "description": "Optional diagnostic detail; default none."
          },
          {
            "in": "query",
            "name": "includeGeometry",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLimitations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NativeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NativeResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "408": {
            "description": "Request read deadline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "417": {
            "description": "Unsupported Expect header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "431": {
            "description": "Header limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Capacity or worker unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Query deadline or worker failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/isochrone": {
      "post": {
        "operationId": "isochrone",
        "summary": "Alias of Reach",
        "parameters": [
          {
            "in": "query",
            "name": "diagnostics",
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "summary",
                "profile",
                "trace"
              ]
            },
            "description": "Optional diagnostic detail; default none."
          },
          {
            "in": "query",
            "name": "includeGeometry",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLimitations",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReachRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReachResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "408": {
            "description": "Request read deadline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "417": {
            "description": "Unsupported Expect header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "431": {
            "description": "Header limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Capacity or worker unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Query deadline or worker failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/info": {
      "get": {
        "operationId": "info",
        "summary": "Info",
        "responses": {
          "200": {
            "description": "Runtime metadata; inspect capabilities for supported combinations.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/capabilities": {
      "get": {
        "operationId": "capabilities",
        "summary": "Capabilities",
        "responses": {
          "200": {
            "description": "Runtime metadata; inspect capabilities for supported combinations.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Bearer authentication failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/healthz": {
      "get": {
        "operationId": "healthz",
        "security": [],
        "summary": "Liveness",
        "responses": {
          "200": {
            "description": "Ready, or live while recovering",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "component"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok"
                      ]
                    },
                    "component": {
                      "type": "string",
                      "enum": [
                        "gateway"
                      ]
                    },
                    "readiness": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Gateway liveness only. This does not wake or check the routing container. Use authenticated /readyz for engine readiness."
      }
    },
    "/readyz": {
      "get": {
        "operationId": "readyz",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Readiness",
        "responses": {
          "200": {
            "description": "Ready, or live while recovering",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ready",
                        "recovering"
                      ]
                    },
                    "runtime": {
                      "const": "rust"
                    },
                    "version": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "status",
                    "runtime",
                    "version"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Worker recovering"
          }
        }
      }
    },
    "/": {
      "get": {
        "security": [],
        "summary": "Offline manual",
        "responses": {
          "200": {
            "description": "Self-contained HTML",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs": {
      "get": {
        "security": [],
        "summary": "Offline manual",
        "responses": {
          "200": {
            "description": "Self-contained HTML",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/docs/": {
      "get": {
        "security": [],
        "summary": "Offline manual",
        "responses": {
          "200": {
            "description": "Self-contained HTML",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "security": [],
        "summary": "This OpenAPI document",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 JSON",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/docs/openapi.json": {
      "get": {
        "security": [],
        "summary": "This OpenAPI document",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 JSON",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/standalone-openapi.json": {
      "get": {
        "security": [],
        "summary": "This OpenAPI document",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 JSON",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/docs/standalone-openapi.json": {
      "get": {
        "security": [],
        "summary": "This OpenAPI document",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 JSON",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "TimetableQueryInput": {
        "type": "object",
        "properties": {
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "originCandidateIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller candidate identities used in origin witness references."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "destinationCandidateIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller candidate identities used in destination witness references."
          },
          "departure": {
            "type": "number",
            "description": "Earliest departure clock in service-day seconds."
          },
          "horizon": {
            "type": "number",
            "description": "Latest scan clock in service-day seconds, not a duration."
          },
          "allowPreRideTransfers": {
            "type": "boolean",
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "maximumBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle boarding cap, one larger than a transfer cap."
          }
        },
        "required": [
          "originStops",
          "originWalkSeconds",
          "originCandidateIndices",
          "destinationStops",
          "destinationWalkSeconds",
          "destinationCandidateIndices",
          "departure",
          "horizon",
          "allowPreRideTransfers"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableQueryResult": {
        "type": "object",
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bestArrival": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Selected arrival clock in service-day seconds, or null when no arrival is available."
          },
          "bestBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "bestDestinationIndex": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "chainKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainFromStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainToStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainTripOrCandidate": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainBoardSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainAlightSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainArrivals": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "destinationSeedNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "originSeedNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "scanNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "chainNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "poppedStates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "scannedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedStops": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "expandedTripRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedTripBoardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "explicitTransferChecks": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          }
        },
        "required": [
          "supported",
          "status",
          "reason",
          "bestArrival",
          "bestBoardings",
          "bestDestinationIndex",
          "chainKinds",
          "chainFromStops",
          "chainToStops",
          "chainTripOrCandidate",
          "chainBoardSequences",
          "chainAlightSequences",
          "chainDurations",
          "chainArrivals",
          "queryNs",
          "destinationSeedNs",
          "originSeedNs",
          "scanNs",
          "chainNs",
          "poppedStates",
          "scannedDepartures",
          "relaxedStops",
          "expandedTripRuns",
          "dominatedTripBoardings",
          "explicitTransferChecks"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableArriveByQueryInput": {
        "type": "object",
        "properties": {
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "originCandidateIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller candidate identities used in origin witness references."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "destinationCandidateIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller candidate identities used in destination witness references."
          },
          "earliest": {
            "type": "number",
            "description": "Earliest permitted search clock in service-day seconds."
          },
          "deadline": {
            "type": "number",
            "description": "Arrival deadline in service-day seconds."
          },
          "allowPreRideTransfers": {
            "type": "boolean",
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "maximumBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle boarding cap, one larger than a transfer cap."
          }
        },
        "required": [
          "originStops",
          "originWalkSeconds",
          "originCandidateIndices",
          "destinationStops",
          "destinationWalkSeconds",
          "destinationCandidateIndices",
          "earliest",
          "deadline",
          "allowPreRideTransfers"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableArriveByQueryResult": {
        "type": "object",
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "latestDeparture": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Selected departure clock in service-day seconds, or null when no departure is available."
          },
          "candidateCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "verifiedCandidates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "engineQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "scannedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedStops": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "expandedTripRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedTripBoardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "explicitTransferChecks": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          }
        },
        "required": [
          "supported",
          "status",
          "reason",
          "latestDeparture",
          "candidateCount",
          "verifiedCandidates",
          "queryNs",
          "engineQueryNs",
          "scannedDepartures",
          "relaxedStops",
          "expandedTripRuns",
          "dominatedTripBoardings",
          "explicitTransferChecks"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableMatrixQueryInput": {
        "type": "object",
        "properties": {
          "originOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed origin candidates; starts at zero."
          },
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "allowPreRideTransfers": {
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "destinationOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed destination candidates; starts at zero."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "departure": {
            "type": "number",
            "description": "Depart-at: shared departure clock. Arrive-by: earliest search clock. Measured in service-day seconds."
          },
          "horizon": {
            "type": "number",
            "description": "Depart-at: latest scan clock. Arrive-by: shared arrival deadline. Measured in service-day seconds."
          },
          "arriveBy": {
            "type": "boolean",
            "description": "Use reverse time direction and a shared arrival deadline."
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "boolean"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "maximumBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle boarding cap, one larger than a transfer cap."
          },
          "includeJourneys": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Materialize compact native journey witnesses alongside matrix times."
          }
        },
        "required": [
          "originOffsets",
          "originStops",
          "originWalkSeconds",
          "allowPreRideTransfers",
          "destinationOffsets",
          "destinationStops",
          "destinationWalkSeconds",
          "departure",
          "horizon",
          "arriveBy"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableMatrixQueryResult": {
        "type": "object",
        "properties": {
          "times": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Flat origin-major matrix of service-day clocks in seconds: arrivals for depart-at, departures for arrive-by. Null marks an unreachable pair. These are not travel durations."
          },
          "journeys": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/TimetableMatrixJourney"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Journey records in the same order as times. Null when journeys were not requested; individual null entries mark pairs without a journey."
          },
          "forwardSearches": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "reverseSearches": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "scannedDepartures": {
            "type": [
              "number",
              "null"
            ]
          },
          "relaxedStops": {
            "type": [
              "number",
              "null"
            ]
          },
          "expandedTripRuns": {
            "type": [
              "number",
              "null"
            ]
          },
          "dominatedTripBoardings": {
            "type": [
              "number",
              "null"
            ]
          },
          "explicitTransferChecks": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "times",
          "journeys",
          "forwardSearches",
          "reverseSearches",
          "queryNs",
          "scannedDepartures",
          "relaxedStops",
          "expandedTripRuns",
          "dominatedTripBoardings",
          "explicitTransferChecks"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableMatrixJourney": {
        "type": "object",
        "properties": {
          "departure": {
            "type": [
              "number",
              "null"
            ],
            "description": "Earliest departure clock in service-day seconds."
          },
          "arrival": {
            "type": [
              "number",
              "null"
            ]
          },
          "boardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "walkingSeconds": {
            "type": [
              "number",
              "null"
            ]
          },
          "rideSeconds": {
            "type": [
              "number",
              "null"
            ]
          },
          "waitingSeconds": {
            "type": [
              "number",
              "null"
            ]
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimetableMatrixLeg"
            }
          }
        },
        "required": [
          "departure",
          "arrival",
          "boardings",
          "walkingSeconds",
          "rideSeconds",
          "waitingSeconds",
          "legs"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable/journeys.rs. Native semantic validation also applies."
      },
      "TimetableMatrixLeg": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "fromStop": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "toStop": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "trip": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "boardSequence": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "alightSequence": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "departure": {
            "type": [
              "number",
              "null"
            ],
            "description": "Earliest departure clock in service-day seconds."
          },
          "arrival": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "kind",
          "fromStop",
          "toStop",
          "trip",
          "boardSequence",
          "alightSequence",
          "departure",
          "arrival"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable/journeys.rs. Native semantic validation also applies."
      },
      "TimetableManyQueryInput": {
        "type": "object",
        "properties": {
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "destinationOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed destination candidates; starts at zero."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "excludedTrips": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Active trip indices to exclude from this query."
          },
          "departure": {
            "type": "number",
            "description": "Earliest departure clock in service-day seconds."
          },
          "horizon": {
            "type": "number",
            "description": "Latest scan clock in service-day seconds, not a duration."
          },
          "allowPreRideTransfers": {
            "type": "boolean",
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "boolean"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "maximumBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle boarding cap, one larger than a transfer cap."
          }
        },
        "required": [
          "originStops",
          "originWalkSeconds",
          "destinationOffsets",
          "destinationStops",
          "destinationWalkSeconds",
          "excludedTrips",
          "departure",
          "horizon",
          "allowPreRideTransfers"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableManyQueryResult": {
        "type": "object",
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "algorithm": {
            "type": "string"
          },
          "bestArrivals": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Earliest arrival clocks in service-day seconds, in destination-group order. Null marks an unreachable destination."
          },
          "bestDestinationIndex": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "chainKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainFromStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainToStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainTripOrCandidate": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainBoardSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainAlightSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainArrivals": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "scannedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "excludedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedStops": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "expandedTripRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedTripBoardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "explicitTransferChecks": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          }
        },
        "required": [
          "supported",
          "status",
          "reason",
          "algorithm",
          "bestArrivals",
          "bestDestinationIndex",
          "chainKinds",
          "chainFromStops",
          "chainToStops",
          "chainTripOrCandidate",
          "chainBoardSequences",
          "chainAlightSequences",
          "chainDurations",
          "chainArrivals",
          "queryNs",
          "scannedDepartures",
          "excludedDepartures",
          "relaxedStops",
          "expandedTripRuns",
          "dominatedTripBoardings",
          "explicitTransferChecks"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableArriveByManyQueryInput": {
        "type": "object",
        "properties": {
          "originOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed origin candidates; starts at zero."
          },
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "allowPreRideTransfers": {
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "earliest": {
            "type": "number",
            "description": "Earliest permitted search clock in service-day seconds."
          },
          "deadline": {
            "type": "number",
            "description": "Arrival deadline in service-day seconds."
          },
          "excludedTrips": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Active trip indices to exclude from this query."
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "maximumBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle boarding cap, one larger than a transfer cap."
          }
        },
        "required": [
          "originOffsets",
          "originStops",
          "originWalkSeconds",
          "allowPreRideTransfers",
          "destinationStops",
          "destinationWalkSeconds",
          "earliest",
          "deadline",
          "excludedTrips"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableArriveByManyQueryResult": {
        "type": "object",
        "properties": {
          "latestDepartures": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Latest departure clocks in service-day seconds, in origin-group order. Null marks an unreachable origin."
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "scannedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "excludedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedStops": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "expandedTripRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedTripBoardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "explicitTransferChecks": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          }
        },
        "required": [
          "latestDepartures",
          "queryNs",
          "scannedDepartures",
          "excludedDepartures",
          "relaxedStops",
          "expandedTripRuns",
          "dominatedTripBoardings",
          "explicitTransferChecks"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableParetoQueryInput": {
        "type": "object",
        "properties": {
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "originCandidateIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller candidate identities used in origin witness references."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "destinationCandidateIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller candidate identities used in destination witness references."
          },
          "departure": {
            "type": "number",
            "description": "Earliest departure clock in service-day seconds."
          },
          "horizon": {
            "type": "number",
            "description": "Latest scan clock in service-day seconds, not a duration."
          },
          "allowPreRideTransfers": {
            "type": "boolean",
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "earliestArrival": {
            "type": "number",
            "description": "Reference earliest arrival clock for Pareto bounds, in seconds."
          },
          "boardingUpperBound": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Maximum boarding count considered by the Pareto search."
          },
          "candidateDestinationIndex": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Reference candidate destination identity for Pareto certification."
          },
          "candidateWalkingSeconds": {
            "type": "number",
            "description": "Walking time of the candidate being certified."
          },
          "arrivalSlackSeconds": {
            "type": "number",
            "description": "Permitted arrival slack relative to the supplied reference arrival."
          },
          "transferPenaltySeconds": {
            "type": "number",
            "description": "Generalized-cost penalty associated with additional boardings."
          },
          "walkReluctance": {
            "type": "number",
            "description": "Walking cost multiplier used by the native Pareto objective."
          },
          "collectAlternatives": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Return arrival/boarding/walking trade-offs inside the supplied bounds."
          },
          "restrictionMode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional exact corridor restriction mode used by the production Pareto certifier."
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "deadlineObjective": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "At a fixed latest departure, minimize boardings, then walking, then arrival, subject to the supplied hard arrival bound."
          }
        },
        "required": [
          "originStops",
          "originWalkSeconds",
          "originCandidateIndices",
          "destinationStops",
          "destinationWalkSeconds",
          "destinationCandidateIndices",
          "departure",
          "horizon",
          "allowPreRideTransfers",
          "earliestArrival",
          "boardingUpperBound",
          "candidateDestinationIndex",
          "candidateWalkingSeconds",
          "arrivalSlackSeconds",
          "transferPenaltySeconds",
          "walkReluctance"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableParetoQueryResult": {
        "type": "object",
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bestArrival": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "bestBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "bestDestinationIndex": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ]
          },
          "bestWalkingSeconds": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "bestGeneralizedSeconds": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "improvedCandidate": {
            "type": "boolean"
          },
          "alternatives": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TimetableParetoAlternative"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "chainKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainFromStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainToStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainTripOrCandidate": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainBoardSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainAlightSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainArrivals": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "corridorNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "forwardNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "reverseNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "roundNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "corridorExitEvents": {
            "type": [
              "number",
              "null"
            ]
          },
          "corridorRunSegments": {
            "type": [
              "number",
              "null"
            ]
          },
          "corridorTransferEdges": {
            "type": [
              "number",
              "null"
            ]
          },
          "forwardDepartureEvents": {
            "type": [
              "number",
              "null"
            ]
          },
          "forwardRunSegments": {
            "type": [
              "number",
              "null"
            ]
          },
          "forwardTransferEdges": {
            "type": [
              "number",
              "null"
            ]
          },
          "scannedDepartures": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedStops": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "expandedTripRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedTripBoardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "explicitTransferChecks": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedCandidateLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedExistingLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "terminalCandidatesEvaluated": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "paretoLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "runProfiles": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "restrictionMode": {
            "type": "string"
          },
          "forwardRestrictionApplied": {
            "type": "boolean"
          },
          "reverseRestrictionApplied": {
            "type": "boolean"
          },
          "scalarEnvelopeReused": {
            "type": "boolean"
          },
          "forwardEnvelopeBuilt": {
            "type": "boolean"
          },
          "reverseCorridorBuilt": {
            "type": "boolean"
          },
          "retainedRunLayerMemberships": {
            "type": [
              "number",
              "null"
            ]
          },
          "totalRunLayerMemberships": {
            "type": [
              "number",
              "null"
            ]
          },
          "retainedSegmentLayerMemberships": {
            "type": [
              "number",
              "null"
            ]
          },
          "totalSegmentLayerMemberships": {
            "type": [
              "number",
              "null"
            ]
          },
          "retainedStopDeadlineMemberships": {
            "type": [
              "number",
              "null"
            ]
          },
          "totalStopDeadlineMemberships": {
            "type": [
              "number",
              "null"
            ]
          },
          "retainedUniqueRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "restrictionBytes": {
            "type": [
              "number",
              "null"
            ]
          },
          "labelBytes": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "supported",
          "status",
          "reason",
          "bestArrival",
          "bestBoardings",
          "bestDestinationIndex",
          "bestWalkingSeconds",
          "bestGeneralizedSeconds",
          "improvedCandidate",
          "alternatives",
          "chainKinds",
          "chainFromStops",
          "chainToStops",
          "chainTripOrCandidate",
          "chainBoardSequences",
          "chainAlightSequences",
          "chainDurations",
          "chainArrivals",
          "queryNs",
          "corridorNs",
          "forwardNs",
          "reverseNs",
          "roundNs",
          "corridorExitEvents",
          "corridorRunSegments",
          "corridorTransferEdges",
          "forwardDepartureEvents",
          "forwardRunSegments",
          "forwardTransferEdges",
          "scannedDepartures",
          "relaxedStops",
          "expandedTripRuns",
          "dominatedTripBoardings",
          "explicitTransferChecks",
          "dominatedCandidateLabels",
          "dominatedExistingLabels",
          "terminalCandidatesEvaluated",
          "paretoLabels",
          "runProfiles",
          "restrictionMode",
          "forwardRestrictionApplied",
          "reverseRestrictionApplied",
          "scalarEnvelopeReused",
          "forwardEnvelopeBuilt",
          "reverseCorridorBuilt",
          "retainedRunLayerMemberships",
          "totalRunLayerMemberships",
          "retainedSegmentLayerMemberships",
          "totalSegmentLayerMemberships",
          "retainedStopDeadlineMemberships",
          "totalStopDeadlineMemberships",
          "retainedUniqueRuns",
          "restrictionBytes",
          "labelBytes"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableParetoAlternative": {
        "type": "object",
        "properties": {
          "bestArrival": {
            "type": [
              "number",
              "null"
            ]
          },
          "bestBoardings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "bestDestinationIndex": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "bestWalkingSeconds": {
            "type": [
              "number",
              "null"
            ]
          },
          "chainKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainFromStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainToStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainTripOrCandidate": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            }
          },
          "chainBoardSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainAlightSequences": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "chainDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "chainArrivals": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          }
        },
        "required": [
          "bestArrival",
          "bestBoardings",
          "bestDestinationIndex",
          "bestWalkingSeconds",
          "chainKinds",
          "chainFromStops",
          "chainToStops",
          "chainTripOrCandidate",
          "chainBoardSequences",
          "chainAlightSequences",
          "chainDurations",
          "chainArrivals"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableOverlayManyQueryInput": {
        "type": "object",
        "properties": {
          "originStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for origin candidates."
          },
          "originWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Access seconds parallel to origin stop candidates."
          },
          "destinationOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed destination candidates; starts at zero."
          },
          "destinationStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Resident timetable stop indices for destination candidates."
          },
          "destinationWalkSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Egress seconds parallel to destination stop candidates."
          },
          "excludedTrips": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Active trip indices to exclude from this query."
          },
          "departure": {
            "type": "number",
            "description": "Earliest departure clock in service-day seconds."
          },
          "horizon": {
            "type": "number",
            "description": "Latest scan clock in service-day seconds, not a duration."
          },
          "allowPreRideTransfers": {
            "type": "boolean",
            "description": "Allow transfer-graph movement before first boarding; per-origin arrays for grouped queries."
          },
          "overlayStopCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Number of overlay-local stops appended to the resident domain."
          },
          "overlayBaseStops": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -2147483648,
                  "maximum": 2147483647
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Resident identity for each overlay stop, or -1 for a new scenario stop. Realtime replacements inherit the original station's transfer rules."
          },
          "directionOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping each planned direction/run stop list."
          },
          "directionStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Packed stop indices in the overlay-local domain."
          },
          "directionStopOffsetsSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Departure offsets from each planned run start."
          },
          "directionArrivalOffsetsSeconds": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional arrival offsets preserve dwell time in realtime replacements. Frequency scenarios without this field retain their existing offsets."
          },
          "serviceStartSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "First run departure clock for each planned direction."
          },
          "serviceEndSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Last allowed run departure clock for each planned direction."
          },
          "serviceHeadwaySeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Positive spacing between generated run departures."
          },
          "supplementalTransferOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative transfer boundaries for the combined resident-plus-overlay stop domain."
          },
          "supplementalTransferTo": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Transfer target indices in the combined stop domain."
          },
          "supplementalTransferDuration": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Supplemental transfer durations in seconds."
          },
          "originCandidateIndices": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Caller candidate identities used in origin witness references."
          },
          "destinationCandidateIndices": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Caller candidate identities used in destination witness references."
          },
          "directionCanBoard": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "directionCanAlight": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "allowPostRideTransfers": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "boolean"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Allow transfer-graph movement after the last ride; per-destination arrays where typed."
          },
          "maximumBoardings": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              },
              {
                "type": "null"
              }
            ],
            "description": "Vehicle boarding cap, one larger than a transfer cap."
          },
          "certifyJourney": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Certify secondary objectives for a single journey, without charging matrix/scenario callers for itinerary ranking."
          }
        },
        "required": [
          "originStops",
          "originWalkSeconds",
          "destinationOffsets",
          "destinationStops",
          "destinationWalkSeconds",
          "excludedTrips",
          "departure",
          "horizon",
          "allowPreRideTransfers",
          "overlayStopCount",
          "directionOffsets",
          "directionStops",
          "directionStopOffsetsSeconds",
          "serviceStartSeconds",
          "serviceEndSeconds",
          "serviceHeadwaySeconds",
          "supplementalTransferOffsets",
          "supplementalTransferTo",
          "supplementalTransferDuration"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "TimetableOverlayManyQueryResult": {
        "type": "object",
        "properties": {
          "timetable": {
            "$ref": "#/components/schemas/TimetableManyQueryResult"
          },
          "overlayConnections": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "overlayRuns": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "overlayRunDirections": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Input direction for each query-local run. Expired directions may emit no runs and frequency directions may emit several."
          },
          "supplementalTransferEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "compileNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "scanNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "transientBytes": {
            "type": [
              "number",
              "null"
            ]
          },
          "workspaceBytes": {
            "type": [
              "number",
              "null"
            ]
          },
          "lexicographicCertified": {
            "type": "boolean"
          },
          "qualityQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "qualityBytes": {
            "type": [
              "number",
              "null"
            ]
          },
          "qualityReason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "timetable",
          "overlayConnections",
          "overlayRuns",
          "overlayRunDirections",
          "supplementalTransferEdges",
          "compileNs",
          "scanNs",
          "transientBytes",
          "workspaceBytes",
          "lexicographicCertified",
          "qualityQueryNs",
          "qualityBytes",
          "qualityReason"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable.rs. Native semantic validation also applies."
      },
      "EndpointRoleInput": {
        "type": "object",
        "properties": {
          "longitude": {
            "type": "number",
            "description": "WGS84 longitude in degrees."
          },
          "latitude": {
            "type": "number",
            "description": "WGS84 latitude in degrees."
          },
          "maximumWalkM": {
            "type": "number",
            "description": "Maximum endpoint or terminal walking distance in meters."
          },
          "walkingSpeedKph": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Walking speed in kilometers per hour; omission uses the prepared policy."
          },
          "accessPaddingFactor": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Multiplier applied to transit endpoint walking time."
          },
          "accessOverheadSeconds": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fixed transit endpoint access overhead in seconds."
          },
          "role": {
            "type": "string",
            "description": "Endpoint direction: origin or destination; directed walking access and egress differ."
          },
          "disableCache": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Disable endpoint cache reuse for this call."
          }
        },
        "required": [
          "longitude",
          "latitude",
          "maximumWalkM",
          "role"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "EndpointRoleResult": {
        "type": "object",
        "properties": {
          "queryToken": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "cacheHit": {
            "type": "boolean"
          },
          "memberIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "pathMemberIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "distancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "accessSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "candidateKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "linkFromStopKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "linkToStopKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "linkDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "linkPathDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "linkStreetVerified": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "accessReductionNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "snapNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "searchNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "settledNodes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "rawCandidates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "linkedStations": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "cchAccelerated": {
            "type": "boolean"
          }
        },
        "required": [
          "queryToken",
          "cacheHit",
          "memberIndices",
          "pathMemberIndices",
          "distancesM",
          "accessSeconds",
          "candidateKinds",
          "linkFromStopKeys",
          "linkToStopKeys",
          "linkDurations",
          "linkPathDistancesM",
          "linkStreetVerified",
          "queryNs",
          "accessReductionNs",
          "snapNs",
          "searchNs",
          "settledNodes",
          "relaxedEdges",
          "rawCandidates",
          "linkedStations",
          "cchAccelerated"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "EndpointRouteInput": {
        "type": "object",
        "properties": {
          "originLon": {
            "type": "number",
            "description": "Origin longitude in degrees."
          },
          "originLat": {
            "type": "number",
            "description": "Origin latitude in degrees."
          },
          "destinationLon": {
            "type": "number",
            "description": "Destination longitude in degrees."
          },
          "destinationLat": {
            "type": "number",
            "description": "Destination latitude in degrees."
          },
          "maximumWalkM": {
            "type": "number",
            "description": "Maximum endpoint or terminal walking distance in meters."
          },
          "walkingSpeedKph": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Walking speed in kilometers per hour; omission uses the prepared policy."
          },
          "accessPaddingFactor": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Multiplier applied to transit endpoint walking time."
          },
          "accessOverheadSeconds": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fixed transit endpoint access overhead in seconds."
          },
          "disableCache": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Disable endpoint cache reuse for this call."
          }
        },
        "required": [
          "originLon",
          "originLat",
          "destinationLon",
          "destinationLat",
          "maximumWalkM"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "EndpointRouteResult": {
        "type": "object",
        "properties": {
          "queryToken": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "cacheHit": {
            "type": "boolean"
          },
          "originCacheHit": {
            "type": "boolean"
          },
          "destinationCacheHit": {
            "type": "boolean"
          },
          "originMemberIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originPathMemberIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "originAccessSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originCandidateKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originLinkFromStopKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originLinkToStopKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originLinkDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originLinkPathDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "originLinkStreetVerified": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "originAccessReductionNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "destinationMemberIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationPathMemberIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "destinationAccessSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationCandidateKinds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationLinkFromStopKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationLinkToStopKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationLinkDurations": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationLinkPathDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "destinationLinkStreetVerified": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "destinationAccessReductionNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "accessReductionNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "snapNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "originSearchNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "destinationSearchNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "originSettledNodes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "destinationSettledNodes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "originRelaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "destinationRelaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "originRawCandidates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "destinationRawCandidates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "originLinkedStations": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "destinationLinkedStations": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "originCchAccelerated": {
            "type": "boolean"
          },
          "destinationCchAccelerated": {
            "type": "boolean"
          }
        },
        "required": [
          "queryToken",
          "cacheHit",
          "originCacheHit",
          "destinationCacheHit",
          "originMemberIndices",
          "originPathMemberIndices",
          "originDistancesM",
          "originAccessSeconds",
          "originCandidateKinds",
          "originLinkFromStopKeys",
          "originLinkToStopKeys",
          "originLinkDurations",
          "originLinkPathDistancesM",
          "originLinkStreetVerified",
          "originAccessReductionNs",
          "destinationMemberIndices",
          "destinationPathMemberIndices",
          "destinationDistancesM",
          "destinationAccessSeconds",
          "destinationCandidateKinds",
          "destinationLinkFromStopKeys",
          "destinationLinkToStopKeys",
          "destinationLinkDurations",
          "destinationLinkPathDistancesM",
          "destinationLinkStreetVerified",
          "destinationAccessReductionNs",
          "queryNs",
          "accessReductionNs",
          "snapNs",
          "originSearchNs",
          "destinationSearchNs",
          "originSettledNodes",
          "destinationSettledNodes",
          "originRelaxedEdges",
          "destinationRelaxedEdges",
          "originRawCandidates",
          "destinationRawCandidates",
          "originLinkedStations",
          "destinationLinkedStations",
          "originCchAccelerated",
          "destinationCchAccelerated"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "StreetPathInput": {
        "type": "object",
        "properties": {
          "originLon": {
            "type": "number",
            "description": "Origin longitude in degrees."
          },
          "originLat": {
            "type": "number",
            "description": "Origin latitude in degrees."
          },
          "destinationLon": {
            "type": "number",
            "description": "Destination longitude in degrees."
          },
          "destinationLat": {
            "type": "number",
            "description": "Destination latitude in degrees."
          },
          "maximumDistanceM": {
            "type": "number",
            "description": "Maximum street path distance in meters."
          },
          "maximumPoints": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Maximum number of returned path geometry points."
          }
        },
        "required": [
          "originLon",
          "originLat",
          "destinationLon",
          "destinationLat",
          "maximumDistanceM",
          "maximumPoints"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "StreetPathResult": {
        "type": "object",
        "properties": {
          "found": {
            "type": "boolean"
          },
          "distanceM": {
            "type": [
              "number",
              "null"
            ],
            "description": "Returned path distance in meters."
          },
          "originSnapDistanceM": {
            "type": [
              "number",
              "null"
            ]
          },
          "destinationSnapDistanceM": {
            "type": [
              "number",
              "null"
            ]
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Flat longitude/latitude pairs describing the returned path."
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "settledNodes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "chainSkippedNodes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "contractedArcRelaxations": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "cchAccelerated": {
            "type": "boolean"
          }
        },
        "required": [
          "found",
          "distanceM",
          "originSnapDistanceM",
          "destinationSnapDistanceM",
          "coordinates",
          "queryNs",
          "settledNodes",
          "relaxedEdges",
          "chainSkippedNodes",
          "contractedArcRelaxations",
          "cchAccelerated"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "StreetMatrixInput": {
        "type": "object",
        "properties": {
          "originCoordinates": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Flat longitude/latitude pairs in origin row order."
          },
          "destinationCoordinates": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Flat longitude/latitude pairs in destination column order."
          },
          "maximumDistanceM": {
            "type": "number",
            "description": "Maximum street path distance in meters."
          },
          "disableCache": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Disable endpoint cache reuse for this call."
          }
        },
        "required": [
          "originCoordinates",
          "destinationCoordinates",
          "maximumDistanceM"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "StreetMatrixResult": {
        "type": "object",
        "properties": {
          "reusedEndpointSnaps": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "distancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Flat origin-major matrix of directed street distances in meters; null marks an unreachable pair."
          },
          "readyPairs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "sourceCandidates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "destinationCandidates": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "cchAccelerated": {
            "type": "boolean"
          },
          "algorithm": {
            "type": "string"
          }
        },
        "required": [
          "reusedEndpointSnaps",
          "distancesM",
          "readyPairs",
          "sourceCandidates",
          "destinationCandidates",
          "queryNs",
          "cchAccelerated",
          "algorithm"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/lib.rs. Native semantic validation also applies."
      },
      "StreetSurfaceInput": {
        "type": "object",
        "properties": {
          "bounds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Geographic bounds in west, south, east, north order."
          },
          "width": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Number of raster columns."
          },
          "height": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Number of raster rows."
          },
          "seedCoordinates": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Flat longitude/latitude pairs for surface/connector seeds."
          },
          "seedDurationsMinutes": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Elapsed minutes already spent reaching each seed."
          },
          "maximumWalkM": {
            "type": "number",
            "description": "Maximum endpoint or terminal walking distance in meters."
          },
          "walkSpeedKph": {
            "type": "number",
            "description": "Walking speed in kilometers per hour."
          },
          "maximumDurationMinutes": {
            "type": "number",
            "description": "Maximum elapsed duration accepted by the surface/connector query."
          },
          "independentTerminalWalk": {
            "type": "boolean"
          },
          "includeNodes": {
            "type": "boolean",
            "description": "Return native reached-node evidence."
          },
          "nodeEvidenceLimit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Node evidence cap, clamped to 1..100000; zero therefore returns at most one node."
          },
          "includeEdges": {
            "type": "boolean",
            "description": "Return native directed-edge evidence."
          },
          "edgeEvidenceLimit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Edge evidence cap; zero means no caller truncation limit."
          },
          "expandBoundsToReachedEdges": {
            "type": "boolean",
            "description": "Also construct a raster with bounds derived from reached street evidence; these bounds need not contain the requested bounds."
          }
        },
        "required": [
          "bounds",
          "width",
          "height",
          "seedCoordinates",
          "seedDurationsMinutes",
          "maximumWalkM",
          "walkSpeedKph",
          "maximumDurationMinutes",
          "independentTerminalWalk",
          "includeNodes",
          "nodeEvidenceLimit",
          "includeEdges",
          "edgeEvidenceLimit",
          "expandBoundsToReachedEdges"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/street_analysis.rs. Native semantic validation also applies."
      },
      "StreetSurfaceResult": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Elapsed minutes on the requested raster, flattened by row from the northwest corner. Null marks an unreached cell."
          },
          "fullSurfaceValues": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Elapsed minutes on the recomputed raster, using fullSurfaceBounds and the requested dimensions. Null when no separate raster is returned."
          },
          "fullSurfaceBounds": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Recomputed raster bounds in west, south, east, north order; can be smaller or larger than requested. Null when no separate raster is returned."
          },
          "snappedSeeds": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "settledLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "retainedLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "reachedPixels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "nodeEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StreetSurfaceNode"
            }
          },
          "nodeEvidenceTruncated": {
            "type": "boolean",
            "description": "True when reached-node samples exceeded nodeEvidenceLimit after clamping."
          },
          "reachedEdgeCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "reachedEdgeLengthM": {
            "type": [
              "number",
              "null"
            ]
          },
          "edgeEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StreetSurfaceEdge"
            }
          },
          "edgeEvidenceTruncated": {
            "type": "boolean"
          },
          "edgeEvidenceNodes": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "edgeEvidenceEndpoints": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "edgeEvidenceIds": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "edgeEvidenceDurations": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Elapsed minutes to each retained directed edge to-endpoint, not the duration of that edge alone."
          },
          "edgeEvidenceWalkDistances": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "edgeEvidenceTransitArrivals": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Elapsed seed duration for each indexed edge; -1 marks seed index zero."
          }
        },
        "required": [
          "values",
          "fullSurfaceValues",
          "fullSurfaceBounds",
          "snappedSeeds",
          "settledLabels",
          "relaxedEdges",
          "retainedLabels",
          "reachedPixels",
          "queryNs",
          "nodeEvidence",
          "nodeEvidenceTruncated",
          "reachedEdgeCount",
          "reachedEdgeLengthM",
          "edgeEvidence",
          "edgeEvidenceTruncated",
          "edgeEvidenceNodes",
          "edgeEvidenceEndpoints",
          "edgeEvidenceIds",
          "edgeEvidenceDurations",
          "edgeEvidenceWalkDistances",
          "edgeEvidenceTransitArrivals"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/street_analysis.rs. Native semantic validation also applies."
      },
      "StreetSurfaceNode": {
        "type": "object",
        "properties": {
          "longitude": {
            "type": [
              "number",
              "null"
            ],
            "description": "WGS84 longitude in degrees."
          },
          "latitude": {
            "type": [
              "number",
              "null"
            ],
            "description": "WGS84 latitude in degrees."
          },
          "durationMinutes": {
            "type": [
              "number",
              "null"
            ]
          },
          "walkDistanceM": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "longitude",
          "latitude",
          "durationMinutes",
          "walkDistanceM"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/street_analysis.rs. Native semantic validation also applies."
      },
      "StreetSurfaceEdge": {
        "type": "object",
        "properties": {
          "fromLongitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "fromLatitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "toLongitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "toLatitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "durationMinutes": {
            "type": [
              "number",
              "null"
            ]
          },
          "walkDistanceM": {
            "type": [
              "number",
              "null"
            ]
          },
          "transitArrivalMinutes": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "fromLongitude",
          "fromLatitude",
          "toLongitude",
          "toLatitude",
          "durationMinutes",
          "walkDistanceM",
          "transitArrivalMinutes"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/street_analysis.rs. Native semantic validation also applies."
      },
      "TimedConnectorInput": {
        "type": "object",
        "properties": {
          "seedCoordinates": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Flat longitude/latitude pairs for surface/connector seeds."
          },
          "seedDurationsMinutes": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Elapsed minutes already spent reaching each seed."
          },
          "seedMaximumWalkM": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Per-seed remaining walking allowance in meters."
          },
          "seedIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Caller seed identities, parallel to seed coordinate pairs."
          },
          "targetCoordinates": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Flat longitude/latitude pairs in target order."
          },
          "defaultMaximumWalkM": {
            "type": "number",
            "description": "Default walking allowance in meters."
          },
          "walkSpeedKph": {
            "type": "number",
            "description": "Walking speed in kilometers per hour."
          },
          "maximumDurationMinutes": {
            "type": "number",
            "description": "Maximum elapsed duration accepted by the surface/connector query."
          },
          "includeTargetMatrix": {
            "type": "boolean",
            "description": "Include the seed-to-target connector matrix."
          }
        },
        "required": [
          "seedCoordinates",
          "seedDurationsMinutes",
          "seedMaximumWalkM",
          "seedIndices",
          "targetCoordinates",
          "defaultMaximumWalkM",
          "walkSpeedKph",
          "maximumDurationMinutes",
          "includeTargetMatrix"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/street_analysis.rs. Native semantic validation also applies."
      },
      "TimedConnectorResult": {
        "type": "object",
        "properties": {
          "durationsMinutes": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "walkDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "seedIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -2147483648,
              "maximum": 2147483647
            },
            "description": "Caller seed identities, parallel to seed coordinate pairs."
          },
          "matrixDurationsMinutes": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "matrixWalkDistancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "matrixReadyPairs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "searches": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "snappedSeeds": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "snappedTargets": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "reachedTargets": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "settledLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "retainedLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "aggregateCchAccelerated": {
            "type": "boolean"
          },
          "aggregateCchQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "matrixCchAccelerated": {
            "type": "boolean"
          },
          "matrixCchQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          }
        },
        "required": [
          "durationsMinutes",
          "walkDistancesM",
          "seedIndices",
          "matrixDurationsMinutes",
          "matrixWalkDistancesM",
          "matrixReadyPairs",
          "searches",
          "snappedSeeds",
          "snappedTargets",
          "reachedTargets",
          "settledLabels",
          "relaxedEdges",
          "retainedLabels",
          "aggregateCchAccelerated",
          "aggregateCchQueryNs",
          "matrixCchAccelerated",
          "matrixCchQueryNs",
          "queryNs"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/street_analysis.rs. Native semantic validation also applies."
      },
      "DriveQueryInput": {
        "type": "object",
        "properties": {
          "originNodes": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Drive-graph candidate node indices for origins."
          },
          "originSnapMeters": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Origin snap distances in meters, parallel to candidate nodes."
          },
          "targetNodes": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Drive-graph candidate node indices for destinations."
          },
          "targetSnapMeters": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Destination snap distances in meters, parallel to candidate nodes."
          },
          "maximumDistanceMeters": {
            "type": "number",
            "description": "Maximum drive path distance in meters."
          },
          "traffic": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DriveTrafficInput"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional directed drive-edge metric updates."
          }
        },
        "required": [
          "originNodes",
          "originSnapMeters",
          "targetNodes",
          "targetSnapMeters",
          "maximumDistanceMeters"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/exact_routing.rs. Native semantic validation also applies."
      },
      "DriveTrafficInput": {
        "type": "object",
        "properties": {
          "snapshotKey": {
            "type": "string",
            "description": "Caller metric identity; the standalone adapter binds caches to actual weights."
          },
          "edgeIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Directed edge indices in the active drive graph."
          },
          "edgeTimeUnits": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Weights in hundredths of seconds; 2147483647 closes an edge."
          }
        },
        "required": [
          "snapshotKey",
          "edgeIndices",
          "edgeTimeUnits"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/exact_routing.rs. Native semantic validation also applies."
      },
      "DriveQueryResult": {
        "type": "object",
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "distanceMeters": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Selected drive-path distance in meters."
          },
          "durationSeconds": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Selected drive-path duration in seconds."
          },
          "originSnapMeters": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Distance in meters from the selected origin point to the drive graph."
          },
          "targetSnapMeters": {
            "anyOf": [
              {
                "type": [
                  "number",
                  "null"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Distance in meters from the drive graph to the selected destination point."
          },
          "nodeIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Ordered node indices in the active drive graph for the selected path."
          },
          "settledLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "relaxedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "generatedLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "dominatedLabels": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "fastPathQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "distancePathQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "fallbackQueryNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "fallbackUsed": {
            "type": "boolean"
          },
          "cchAccelerated": {
            "type": "boolean"
          },
          "cchCandidateQueries": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "cchSource": {
            "type": "string"
          },
          "trafficApplied": {
            "type": "boolean"
          },
          "trafficSnapshotKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "trafficUpdatedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "trafficCustomizationNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "trafficMetricReused": {
            "type": "boolean"
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "algorithm": {
            "type": "string"
          }
        },
        "required": [
          "supported",
          "status",
          "reason",
          "distanceMeters",
          "durationSeconds",
          "originSnapMeters",
          "targetSnapMeters",
          "nodeIndices",
          "settledLabels",
          "relaxedEdges",
          "generatedLabels",
          "dominatedLabels",
          "fastPathQueryNs",
          "distancePathQueryNs",
          "fallbackQueryNs",
          "fallbackUsed",
          "cchAccelerated",
          "cchCandidateQueries",
          "cchSource",
          "trafficApplied",
          "trafficSnapshotKey",
          "trafficUpdatedEdges",
          "trafficCustomizationNs",
          "trafficMetricReused",
          "queryNs",
          "algorithm"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/exact_routing.rs. Native semantic validation also applies."
      },
      "DriveMatrixInput": {
        "type": "object",
        "properties": {
          "originOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed origin candidates; starts at zero."
          },
          "originNodes": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Drive-graph candidate node indices for origins."
          },
          "originSnapMeters": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Origin snap distances in meters, parallel to candidate nodes."
          },
          "targetOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping packed drive target candidates."
          },
          "targetNodes": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Drive-graph candidate node indices for destinations."
          },
          "targetSnapMeters": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Destination snap distances in meters, parallel to candidate nodes."
          },
          "maximumDistanceMeters": {
            "type": "number",
            "description": "Maximum drive path distance in meters."
          },
          "traffic": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DriveTrafficInput"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional directed drive-edge metric updates."
          }
        },
        "required": [
          "originOffsets",
          "originNodes",
          "originSnapMeters",
          "targetOffsets",
          "targetNodes",
          "targetSnapMeters",
          "maximumDistanceMeters"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/exact_routing.rs. Native semantic validation also applies."
      },
      "DriveMatrixResult": {
        "type": "object",
        "properties": {
          "distancesM": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Flat origin-major matrix of distances in meters; null marks an unreachable pair."
          },
          "durationsS": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Flat origin-major matrix of travel durations in seconds; null marks an unreachable pair."
          },
          "readyPairs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "cchCandidateQueries": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "pathQueries": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "queryNs": {
            "type": [
              "number",
              "null"
            ],
            "description": "Native query time in nanoseconds; excludes outer transport work."
          },
          "cchAccelerated": {
            "type": "boolean"
          },
          "trafficApplied": {
            "type": "boolean"
          },
          "trafficSnapshotKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "trafficUpdatedEdges": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "trafficCustomizationNs": {
            "type": [
              "number",
              "null"
            ]
          },
          "trafficMetricReused": {
            "type": "boolean"
          },
          "algorithm": {
            "type": "string"
          }
        },
        "required": [
          "distancesM",
          "durationsS",
          "readyPairs",
          "cchCandidateQueries",
          "pathQueries",
          "queryNs",
          "cchAccelerated",
          "trafficApplied",
          "trafficSnapshotKey",
          "trafficUpdatedEdges",
          "trafficCustomizationNs",
          "trafficMetricReused",
          "algorithm"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/exact_routing.rs. Native semantic validation also applies."
      },
      "RealtimeTimetableInput": {
        "type": "object",
        "properties": {
          "stopCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "departureSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "arrivalSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "fromStop": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "toStop": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "sequence": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "segmentRun": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "continuityBreak": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            }
          },
          "canBoard": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            }
          },
          "canAlight": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            }
          },
          "tripStart": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "canceled": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            },
            "description": "Per-trip cancellation flags in the supplied baseline timetable."
          },
          "replacements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RealtimeTripInput"
            },
            "description": "Explicit effective calls replacing identified baseline trips."
          }
        },
        "required": [
          "stopCount",
          "departureSeconds",
          "arrivalSeconds",
          "fromStop",
          "toStop",
          "sequence",
          "segmentRun",
          "continuityBreak",
          "canBoard",
          "canAlight",
          "tripStart",
          "canceled",
          "replacements"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable/realtime.rs. Native semantic validation also applies."
      },
      "RealtimeTripInput": {
        "type": "object",
        "properties": {
          "trip": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "stops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RealtimeCallInput"
            }
          }
        },
        "required": [
          "trip",
          "stops"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable/realtime.rs. Native semantic validation also applies."
      },
      "RealtimeCallInput": {
        "type": "object",
        "properties": {
          "stop": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "arrival": {
            "type": "number"
          },
          "departure": {
            "type": "number",
            "description": "Earliest departure clock in service-day seconds."
          },
          "sequence": {
            "type": "number"
          },
          "canBoard": {
            "type": "boolean"
          },
          "canAlight": {
            "type": "boolean"
          }
        },
        "required": [
          "stop",
          "arrival",
          "departure",
          "sequence",
          "canBoard",
          "canAlight"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable/realtime.rs. Native semantic validation also applies."
      },
      "RealtimeTimetableResult": {
        "type": "object",
        "properties": {
          "departureSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "arrivalSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "fromStop": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "toStop": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "sequence": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "segmentTrip": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "segmentRun": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "continuityBreak": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            }
          },
          "canBoard": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            }
          },
          "canAlight": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 255
            }
          },
          "tripStart": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "departureOffset": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "departureOrder": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          "runCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "activeSegmentCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "realtimeTripIndices": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          }
        },
        "required": [
          "departureSeconds",
          "arrivalSeconds",
          "fromStop",
          "toStop",
          "sequence",
          "segmentTrip",
          "segmentRun",
          "continuityBreak",
          "canBoard",
          "canAlight",
          "tripStart",
          "departureOffset",
          "departureOrder",
          "runCount",
          "activeSegmentCount",
          "realtimeTripIndices"
        ],
        "additionalProperties": true,
        "description": "Generated from native/vigo-routing-kernel/src/timetable/realtime.rs. Native semantic validation also applies."
      },
      "Coordinate": {
        "type": "array",
        "prefixItems": [
          {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          }
        ],
        "minItems": 2,
        "maxItems": 2,
        "items": false
      },
      "Point": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/Coordinate"
          },
          {
            "type": "object",
            "properties": {
              "stop": {
                "type": "object",
                "properties": {
                  "feed": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "id": {
                    "type": "string"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": false
              },
              "stopId": {
                "type": "string"
              },
              "coordinate": {
                "$ref": "#/components/schemas/Coordinate"
              },
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "source": {
                "type": "string"
              },
              "editStatus": {
                "type": "string"
              },
              "baselineStopId": {
                "type": "string"
              },
              "baselineStopIndex": {
                "type": "integer",
                "minimum": 0
              }
            },
            "required": [],
            "additionalProperties": false,
            "anyOf": [
              {
                "required": [
                  "stop"
                ]
              },
              {
                "required": [
                  "stopId"
                ]
              },
              {
                "required": [
                  "coordinate"
                ]
              }
            ]
          }
        ],
        "description": "Selected stop overrides coordinate unless source is map; map points require coordinate."
      },
      "Clock": {
        "oneOf": [
          {
            "type": "string",
            "pattern": "^\\d{1,2}:\\d{1,2}(:\\d{1,2})?$"
          },
          {
            "type": "number",
            "minimum": 0,
            "maximum": 4319
          }
        ],
        "description": "Service-day HH:MM[:SS], hours 0..71, minutes/seconds 0..59; or numeric minutes."
      },
      "RealtimeSnapshot": {
        "type": "object",
        "properties": {
          "incrementality": {
            "enum": [
              "FULL_DATASET",
              0
            ]
          },
          "timezone": {
            "type": "string"
          },
          "feedTimestamp": {
            "type": "integer",
            "minimum": 1
          },
          "tripUpdates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tripId": {
                  "type": "string"
                },
                "trip": {
                  "type": "object",
                  "properties": {
                    "tripId": {
                      "type": "string"
                    },
                    "startDate": {
                      "type": "string"
                    }
                  },
                  "required": [],
                  "additionalProperties": true
                },
                "startDate": {
                  "type": "string"
                },
                "sourceScope": {
                  "type": "string"
                },
                "routeId": {
                  "type": "string"
                },
                "directionId": {},
                "sourceFeedTimestamp": {
                  "type": "integer",
                  "minimum": 1
                },
                "timestamp": {
                  "type": "integer",
                  "minimum": 1
                },
                "delaySeconds": {
                  "type": "integer"
                },
                "scheduleRelationship": {
                  "enum": [
                    "SCHEDULED",
                    "CANCELED",
                    "DELETED",
                    0,
                    3,
                    7
                  ]
                },
                "stopTimeUpdates": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "stopSequence": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 4294967295
                      },
                      "stopId": {
                        "type": "string"
                      },
                      "scheduleRelationship": {
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "SCHEDULED",
                              "SKIPPED",
                              "NO_DATA"
                            ]
                          },
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2
                          }
                        ]
                      },
                      "arrival": {
                        "type": "object",
                        "properties": {
                          "time": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "delay": {
                            "type": "integer"
                          },
                          "uncertainty": {
                            "type": "number",
                            "minimum": 0
                          }
                        },
                        "required": [],
                        "additionalProperties": true
                      },
                      "departure": {
                        "type": "object",
                        "properties": {
                          "time": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "delay": {
                            "type": "integer"
                          },
                          "uncertainty": {
                            "type": "number",
                            "minimum": 0
                          }
                        },
                        "required": [],
                        "additionalProperties": true
                      }
                    },
                    "required": [],
                    "additionalProperties": true,
                    "anyOf": [
                      {
                        "required": [
                          "stopSequence"
                        ]
                      },
                      {
                        "required": [
                          "stopId"
                        ]
                      }
                    ]
                  }
                }
              },
              "required": [],
              "additionalProperties": true
            },
            "minItems": 0,
            "maxItems": 100000
          }
        },
        "required": [
          "tripUpdates"
        ],
        "additionalProperties": true,
        "description": "Timestamp freshness is checked at runtime. Invalid individual records retain scheduled service and report diagnostics."
      },
      "Traffic": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "snapshotKey": {
                "type": "string"
              },
              "streetSourceFingerprint": {
                "type": "string"
              },
              "edgeIndices": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0
                },
                "minItems": 0,
                "maxItems": 200000
              },
              "edgeTimeUnits": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 2147483647
                },
                "minItems": 0,
                "maxItems": 200000
              }
            },
            "required": [
              "snapshotKey",
              "streetSourceFingerprint",
              "edgeIndices",
              "edgeTimeUnits"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "observedAt": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "format": "date-time"
                  }
                ]
              },
              "fetchedAt": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "format": "date-time"
                  }
                ]
              },
              "timestamp": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "format": "date-time"
                  }
                ]
              },
              "expiresAt": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "format": "date-time"
                  }
                ]
              },
              "ttlSeconds": {
                "type": "number",
                "minimum": 1,
                "maximum": 1800,
                "default": 300
              },
              "streetSourceFingerprint": {
                "type": "string"
              },
              "observations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Coordinate"
                      },
                      "minItems": 2,
                      "maxItems": 512
                    },
                    "fromCoordinate": {
                      "$ref": "#/components/schemas/Coordinate"
                    },
                    "toCoordinate": {
                      "$ref": "#/components/schemas/Coordinate"
                    },
                    "edgeIndices": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "closed": {
                      "type": "boolean",
                      "default": false
                    },
                    "travelTimeSeconds": {
                      "type": "number",
                      "minimum": 0.01,
                      "maximum": 86400
                    },
                    "speedKph": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 200
                    },
                    "delayFactor": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    },
                    "factor": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    },
                    "multiplier": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    }
                  },
                  "required": [],
                  "additionalProperties": true,
                  "description": "Directed geometry or edge indices and exactly one active cost effect; indices require the enclosing street fingerprint."
                },
                "minItems": 1,
                "maxItems": 100000
              },
              "segments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Coordinate"
                      },
                      "minItems": 2,
                      "maxItems": 512
                    },
                    "fromCoordinate": {
                      "$ref": "#/components/schemas/Coordinate"
                    },
                    "toCoordinate": {
                      "$ref": "#/components/schemas/Coordinate"
                    },
                    "edgeIndices": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "closed": {
                      "type": "boolean",
                      "default": false
                    },
                    "travelTimeSeconds": {
                      "type": "number",
                      "minimum": 0.01,
                      "maximum": 86400
                    },
                    "speedKph": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 200
                    },
                    "delayFactor": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    },
                    "factor": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    },
                    "multiplier": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    }
                  },
                  "required": [],
                  "additionalProperties": true,
                  "description": "Directed geometry or edge indices and exactly one active cost effect; indices require the enclosing street fingerprint."
                },
                "minItems": 1,
                "maxItems": 100000
              },
              "edgeUpdates": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Coordinate"
                      },
                      "minItems": 2,
                      "maxItems": 512
                    },
                    "fromCoordinate": {
                      "$ref": "#/components/schemas/Coordinate"
                    },
                    "toCoordinate": {
                      "$ref": "#/components/schemas/Coordinate"
                    },
                    "edgeIndices": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "closed": {
                      "type": "boolean",
                      "default": false
                    },
                    "travelTimeSeconds": {
                      "type": "number",
                      "minimum": 0.01,
                      "maximum": 86400
                    },
                    "speedKph": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 200
                    },
                    "delayFactor": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    },
                    "factor": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    },
                    "multiplier": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 100
                    }
                  },
                  "required": [],
                  "additionalProperties": true,
                  "description": "Directed geometry or edge indices and exactly one active cost effect; indices require the enclosing street fingerprint."
                },
                "minItems": 1,
                "maxItems": 100000
              }
            },
            "required": [],
            "additionalProperties": true,
            "allOf": [
              {
                "anyOf": [
                  {
                    "required": [
                      "observedAt"
                    ]
                  },
                  {
                    "required": [
                      "fetchedAt"
                    ]
                  },
                  {
                    "required": [
                      "timestamp"
                    ]
                  }
                ]
              },
              {
                "anyOf": [
                  {
                    "required": [
                      "observations"
                    ]
                  },
                  {
                    "required": [
                      "segments"
                    ]
                  },
                  {
                    "required": [
                      "edgeUpdates"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      "RouteRequest": {
        "type": "object",
        "properties": {
          "diagnostics": {
            "type": "string",
            "enum": [
              "none",
              "summary",
              "profile",
              "trace"
            ],
            "default": "none"
          },
          "includeGeometry": {
            "type": "boolean",
            "default": false
          },
          "includeLimitations": {
            "type": "boolean",
            "default": false
          },
          "kind": {
            "type": "string"
          },
          "id": {},
          "serviceDate": {
            "type": "string",
            "format": "date"
          },
          "serviceDay": {
            "type": "string",
            "enum": [
              "weekday",
              "saturday",
              "sunday"
            ]
          },
          "time": {
            "$ref": "#/components/schemas/Clock"
          },
          "timeMinutes": {
            "type": "number",
            "minimum": 0,
            "maximum": 4319
          },
          "timePreference": {
            "type": "string",
            "enum": [
              "depart_at",
              "arrive_by",
              "depart",
              "arrive"
            ],
            "default": "depart_at"
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk",
              "drive"
            ],
            "default": "transit"
          },
          "maxWalkKm": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "default": 1.2
          },
          "maxStreetKm": {
            "type": "number",
            "minimum": 0.05,
            "maximum": 1000,
            "default": 50
          },
          "maxTransfers": {
            "type": "integer",
            "minimum": 0,
            "maximum": 31
          },
          "horizonMinutes": {
            "type": "number",
            "minimum": 1,
            "maximum": 2880,
            "default": 480
          },
          "allowStreetTransfers": {
            "type": "boolean",
            "default": true
          },
          "minimumTransferBufferMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 60,
            "default": 0
          },
          "disableCache": {
            "type": "boolean",
            "default": false
          },
          "requireTransitRide": {
            "type": "boolean",
            "default": true
          },
          "allowLongWalk": {
            "type": "boolean",
            "default": true
          },
          "walkSpeedKph": {
            "type": "number",
            "minimum": 1,
            "maximum": 8,
            "description": "Default comes from the City. Walk Route/Matrix and Reach only."
          },
          "requireCompleteServiceCoverage": {
            "type": "boolean",
            "default": false
          },
          "routingDataMode": {
            "type": "string",
            "enum": [
              "scheduled",
              "realtime"
            ]
          },
          "dataMode": {
            "type": "string",
            "enum": [
              "scheduled",
              "realtime"
            ]
          },
          "arrivalBufferMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 60,
            "default": 0,
            "description": "Caller-selected arrival reserve. Positive values require arrive-by Transit Route/Matrix without via points; reserve the final minutes of the original horizon. Not a calibrated probability."
          },
          "realtimeSnapshot": {
            "$ref": "#/components/schemas/RealtimeSnapshot"
          },
          "traffic": {
            "$ref": "#/components/schemas/Traffic"
          },
          "origin": {
            "$ref": "#/components/schemas/Point"
          },
          "destination": {
            "$ref": "#/components/schemas/Point"
          },
          "via": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "minItems": 0,
            "maxItems": 16
          },
          "waypoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "minItems": 0,
            "maxItems": 16
          },
          "windowMinutes": {
            "type": "number",
            "minimum": 0,
            "maximum": 240,
            "default": 0
          },
          "windowStepMinutes": {
            "type": "number",
            "minimum": 1,
            "maximum": 60,
            "default": 1
          }
        },
        "required": [
          "origin",
          "destination"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "time"
                ]
              },
              {
                "required": [
                  "timeMinutes"
                ]
              }
            ]
          },
          {
            "if": {
              "properties": {
                "mode": {
                  "const": "transit"
                }
              }
            },
            "then": {
              "required": [
                "serviceDate"
              ]
            }
          },
          {
            "not": {
              "required": [
                "routingDataMode",
                "dataMode"
              ]
            }
          },
          {
            "not": {
              "required": [
                "via",
                "waypoints"
              ]
            }
          }
        ],
        "description": "Additional mode constraints, source identities, freshness, and via/window combinations are validated by the runtime. Public journey geometry requires includeGeometry: true."
      },
      "MatrixRequest": {
        "type": "object",
        "properties": {
          "diagnostics": {
            "type": "string",
            "enum": [
              "none",
              "summary",
              "profile",
              "trace"
            ],
            "default": "none"
          },
          "includeGeometry": {
            "type": "boolean",
            "default": false
          },
          "includeLimitations": {
            "type": "boolean",
            "default": false
          },
          "kind": {
            "type": "string"
          },
          "id": {},
          "serviceDate": {
            "type": "string",
            "format": "date"
          },
          "serviceDay": {
            "type": "string",
            "enum": [
              "weekday",
              "saturday",
              "sunday"
            ]
          },
          "time": {
            "$ref": "#/components/schemas/Clock"
          },
          "timeMinutes": {
            "type": "number",
            "minimum": 0,
            "maximum": 4319
          },
          "timePreference": {
            "type": "string",
            "enum": [
              "depart_at",
              "arrive_by",
              "depart",
              "arrive"
            ],
            "default": "depart_at"
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk",
              "drive"
            ],
            "default": "transit"
          },
          "maxWalkKm": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "default": 1.2
          },
          "maxStreetKm": {
            "type": "number",
            "minimum": 0.05,
            "maximum": 1000,
            "default": 50
          },
          "maxTransfers": {
            "type": "integer",
            "minimum": 0,
            "maximum": 31
          },
          "horizonMinutes": {
            "type": "number",
            "minimum": 1,
            "maximum": 2880,
            "default": 480
          },
          "allowStreetTransfers": {
            "type": "boolean",
            "default": true
          },
          "minimumTransferBufferMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 60,
            "default": 0
          },
          "disableCache": {
            "type": "boolean",
            "default": false
          },
          "requireTransitRide": {
            "type": "boolean",
            "default": true
          },
          "allowLongWalk": {
            "type": "boolean",
            "default": true
          },
          "walkSpeedKph": {
            "type": "number",
            "minimum": 1,
            "maximum": 8,
            "description": "Default comes from the City. Walk Route/Matrix and Reach only."
          },
          "requireCompleteServiceCoverage": {
            "type": "boolean",
            "default": false
          },
          "routingDataMode": {
            "type": "string",
            "enum": [
              "scheduled",
              "realtime"
            ]
          },
          "dataMode": {
            "type": "string",
            "enum": [
              "scheduled",
              "realtime"
            ]
          },
          "arrivalBufferMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 60,
            "default": 0,
            "description": "Caller-selected arrival reserve. Positive values require arrive-by Transit Route/Matrix without via points; reserve the final minutes of the original horizon. Not a calibrated probability."
          },
          "traffic": {
            "$ref": "#/components/schemas/Traffic"
          },
          "origins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "minItems": 1,
            "maxItems": 65536
          },
          "destinations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "minItems": 1,
            "maxItems": 65536
          },
          "includeJourneys": {
            "type": "boolean",
            "default": false
          },
          "journeyFormat": {
            "type": "string",
            "enum": [
              "full",
              "compact"
            ],
            "default": "full",
            "description": "Requires transit includeJourneys. Compact retains the exact timed trip/stop/boarding witness, without display metadata or walking evidence; it cannot include geometry."
          }
        },
        "required": [
          "origins",
          "destinations"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "time"
                ]
              },
              {
                "required": [
                  "timeMinutes"
                ]
              }
            ]
          },
          {
            "if": {
              "properties": {
                "mode": {
                  "const": "transit"
                }
              }
            },
            "then": {
              "required": [
                "serviceDate"
              ]
            }
          },
          {
            "not": {
              "required": [
                "routingDataMode",
                "dataMode"
              ]
            }
          }
        ],
        "description": "At most 65536 pairs. Journeys require transit; geometry requires full journeys. No realtime transit."
      },
      "ReachOverlay": {
        "type": "object",
        "properties": {
          "overlayStopCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Number of overlay-local stops appended to the resident domain."
          },
          "overlayBaseStops": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -2147483648,
                  "maximum": 2147483647
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Resident identity for each overlay stop, or -1 for a new scenario stop. Realtime replacements inherit the original station's transfer rules."
          },
          "directionOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative boundaries grouping each planned direction/run stop list."
          },
          "directionStops": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Packed stop indices in the overlay-local domain."
          },
          "directionStopOffsetsSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Departure offsets from each planned run start."
          },
          "directionArrivalOffsetsSeconds": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional arrival offsets preserve dwell time in realtime replacements. Frequency scenarios without this field retain their existing offsets."
          },
          "serviceStartSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "First run departure clock for each planned direction."
          },
          "serviceEndSeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Last allowed run departure clock for each planned direction."
          },
          "serviceHeadwaySeconds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Positive spacing between generated run departures."
          },
          "supplementalTransferOffsets": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Cumulative transfer boundaries for the combined resident-plus-overlay stop domain."
          },
          "supplementalTransferTo": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Transfer target indices in the combined stop domain."
          },
          "supplementalTransferDuration": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            },
            "description": "Supplemental transfer durations in seconds."
          },
          "originCandidateIndices": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Caller candidate identities used in origin witness references."
          },
          "destinationCandidateIndices": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Caller candidate identities used in destination witness references."
          },
          "directionCanBoard": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "directionCanAlight": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 255
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "certifyJourney": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Certify secondary objectives for a single journey, without charging matrix/scenario callers for itinerary ranking."
          },
          "stops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "minItems": 0,
            "maxItems": 256
          }
        },
        "required": [
          "stops",
          "overlayStopCount",
          "directionOffsets",
          "directionStops",
          "directionStopOffsetsSeconds",
          "serviceStartSeconds",
          "serviceEndSeconds",
          "serviceHeadwaySeconds",
          "supplementalTransferOffsets",
          "supplementalTransferTo",
          "supplementalTransferDuration"
        ],
        "additionalProperties": true
      },
      "Scenario": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "cityRevision": {
            "type": "string"
          },
          "services": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "operation": {
                  "type": "string",
                  "enum": [
                    "add",
                    "augment",
                    "replace"
                  ],
                  "default": "add"
                },
                "stops": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Point"
                  },
                  "minItems": 2
                },
                "scheduleMode": {
                  "type": "string",
                  "enum": [
                    "frequency",
                    "preserve-trips"
                  ]
                },
                "sourceRouteId": {
                  "type": "string"
                },
                "scheduledTrips": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "tripId": {
                        "type": "string"
                      },
                      "departureSeconds": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1048575
                      },
                      "arrivalOffsetsSeconds": {
                        "type": "array",
                        "items": {
                          "type": "number",
                          "minimum": 0
                        }
                      },
                      "departureOffsetsSeconds": {
                        "type": "array",
                        "items": {
                          "type": "number",
                          "minimum": 0
                        }
                      },
                      "canBoard": {
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1
                        }
                      },
                      "canAlight": {
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1
                        }
                      }
                    },
                    "required": [
                      "departureSeconds",
                      "arrivalOffsetsSeconds",
                      "departureOffsetsSeconds"
                    ],
                    "additionalProperties": true
                  }
                },
                "bidirectional": {
                  "type": "boolean"
                },
                "startMinutes": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 4319,
                  "default": 300
                },
                "endMinutes": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 4319,
                  "default": 1500
                },
                "headwayMinutes": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 1440,
                  "default": 12
                },
                "timeModel": {
                  "type": "string",
                  "enum": [
                    "estimate-distance",
                    "preserve-scheduled",
                    "infer-road"
                  ],
                  "default": "estimate-distance"
                },
                "averageSpeedKph": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 300,
                  "default": 22
                },
                "dwellMinutes": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 60,
                  "default": 0.35
                },
                "addedStopDwellMinutes": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10,
                  "default": 0
                },
                "segmentRuntimeMinutes": {
                  "type": "array",
                  "items": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "segmentDistancesKm": {
                  "type": "array",
                  "items": {
                    "type": "number",
                    "minimum": 0
                  }
                }
              },
              "required": [
                "stops"
              ],
              "additionalProperties": false
            },
            "minItems": 0,
            "maxItems": 128
          },
          "excludedTripIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "excludedRouteIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "overlay": {
            "$ref": "#/components/schemas/ReachOverlay"
          }
        },
        "required": [],
        "additionalProperties": false,
        "description": "Request-scoped. Use services or overlay. At most 256 unique planned points and one million planned stop events."
      },
      "ReachRequest": {
        "type": "object",
        "properties": {
          "diagnostics": {
            "type": "string",
            "enum": [
              "none",
              "summary",
              "profile",
              "trace"
            ],
            "default": "none"
          },
          "includeGeometry": {
            "type": "boolean",
            "default": false
          },
          "includeLimitations": {
            "type": "boolean",
            "default": false
          },
          "kind": {
            "type": "string"
          },
          "id": {},
          "serviceDate": {
            "type": "string",
            "format": "date"
          },
          "serviceDay": {
            "type": "string",
            "enum": [
              "weekday",
              "saturday",
              "sunday"
            ]
          },
          "time": {
            "$ref": "#/components/schemas/Clock"
          },
          "timeMinutes": {
            "type": "number",
            "minimum": 0,
            "maximum": 4319
          },
          "timePreference": {
            "type": "string",
            "enum": [
              "depart_at",
              "depart"
            ],
            "default": "depart_at"
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk"
            ],
            "default": "transit"
          },
          "maxWalkKm": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "default": 1.2
          },
          "maxTransfers": {
            "type": "integer",
            "minimum": 0,
            "maximum": 31
          },
          "allowStreetTransfers": {
            "type": "boolean",
            "default": true
          },
          "minimumTransferBufferMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 60,
            "default": 0
          },
          "disableCache": {
            "type": "boolean",
            "default": false
          },
          "walkSpeedKph": {
            "type": "number",
            "minimum": 1,
            "maximum": 8,
            "description": "Default comes from the City. Walk Route/Matrix and Reach only."
          },
          "requireCompleteServiceCoverage": {
            "type": "boolean",
            "default": false
          },
          "routingDataMode": {
            "type": "string",
            "enum": [
              "scheduled",
              "realtime"
            ]
          },
          "dataMode": {
            "type": "string",
            "enum": [
              "scheduled",
              "realtime"
            ]
          },
          "origin": {
            "$ref": "#/components/schemas/Point"
          },
          "cutoffsMinutes": {
            "type": "array",
            "items": {
              "type": "number",
              "minimum": 1,
              "maximum": 240
            },
            "minItems": 1,
            "maxItems": 16,
            "default": [
              15,
              30,
              45,
              60
            ]
          },
          "rasterSize": {
            "type": "integer",
            "minimum": 16,
            "maximum": 1024,
            "default": 96
          },
          "extentRadiusKm": {
            "type": "number",
            "minimum": 1,
            "maximum": 40,
            "default": 8
          },
          "bounds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "maxItems": 4
          },
          "includeStreetEdges": {
            "type": "boolean",
            "default": false
          },
          "includeNodes": {
            "type": "boolean",
            "default": false
          },
          "scenario": {
            "$ref": "#/components/schemas/Scenario"
          }
        },
        "required": [
          "origin"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "time"
                ]
              },
              {
                "required": [
                  "timeMinutes"
                ]
              }
            ]
          },
          {
            "if": {
              "properties": {
                "mode": {
                  "const": "transit"
                }
              }
            },
            "then": {
              "required": [
                "serviceDate"
              ]
            }
          },
          {
            "not": {
              "required": [
                "routingDataMode",
                "dataMode"
              ]
            }
          }
        ]
      },
      "CompareRequest": {
        "type": "object",
        "properties": {
          "before": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/RouteResult"
              },
              {
                "$ref": "#/components/schemas/MatrixResult"
              },
              {
                "$ref": "#/components/schemas/ReachResult"
              }
            ]
          },
          "after": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/RouteResult"
              },
              {
                "$ref": "#/components/schemas/MatrixResult"
              },
              {
                "$ref": "#/components/schemas/ReachResult"
              }
            ]
          }
        },
        "required": [
          "before",
          "after"
        ],
        "additionalProperties": true
      },
      "NativeRequest": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.identifiers"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {}
            },
            "required": [
              "operation",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.route"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.arrive_by"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableArriveByQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.matrix"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableMatrixQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.many"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableManyQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.arrive_by_many"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableArriveByManyQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.pareto"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableParetoQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "timetable.overlay"
              },
              "input": {
                "$ref": "#/components/schemas/TimetableOverlayManyQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input",
              "serviceDate"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "access.endpoint"
              },
              "input": {
                "$ref": "#/components/schemas/EndpointRoleInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "access.endpoints"
              },
              "input": {
                "$ref": "#/components/schemas/EndpointRouteInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "street.path"
              },
              "input": {
                "$ref": "#/components/schemas/StreetPathInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "street.matrix"
              },
              "input": {
                "$ref": "#/components/schemas/StreetMatrixInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "street.surface"
              },
              "input": {
                "$ref": "#/components/schemas/StreetSurfaceInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "street.connectors"
              },
              "input": {
                "$ref": "#/components/schemas/TimedConnectorInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "drive.route"
              },
              "input": {
                "$ref": "#/components/schemas/DriveQueryInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "drive.matrix"
              },
              "input": {
                "$ref": "#/components/schemas/DriveMatrixInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "const": "realtime.compile"
              },
              "input": {
                "$ref": "#/components/schemas/RealtimeTimetableInput"
              },
              "serviceDate": {
                "type": "string",
                "format": "date"
              },
              "kind": {
                "type": "string"
              },
              "id": {},
              "allowStreetTransfers": {
                "type": "boolean",
                "default": true
              },
              "minimumTransferBufferMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 60,
                "default": 0
              },
              "requireCompleteServiceCoverage": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "operation",
              "input"
            ],
            "additionalProperties": true
          }
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "additionalProperties": true
          },
          "id": {}
        },
        "required": [
          "error"
        ],
        "additionalProperties": true
      },
      "QueryMetadata": {
        "type": "object",
        "properties": {
          "schemaVersion": {
            "type": "string",
            "description": "JSON interface version; not the executable version."
          },
          "runtime": {
            "const": "rust"
          },
          "cityRevision": {
            "type": "string",
            "description": "Revision of the City loaded by this process."
          },
          "timing": {
            "type": "object",
            "properties": {
              "totalMs": {
                "type": "number",
                "minimum": 0,
                "description": "Milliseconds inside dispatch; excludes initial City loading, final serialization, HTTP queue/network time, and client parsing."
              }
            },
            "required": [
              "totalMs"
            ],
            "additionalProperties": false
          },
          "id": {
            "description": "Echoed by Stream and dispatched HTTP queries, not by one-shot CLI."
          }
        },
        "required": [],
        "additionalProperties": true
      },
      "JourneyEndpoint": {
        "type": "object",
        "properties": {
          "coordinate": {
            "$ref": "#/components/schemas/Coordinate"
          },
          "stopId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "coordinate"
        ],
        "additionalProperties": true
      },
      "RouteDisplay": {
        "type": "object",
        "properties": {
          "shortName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "longName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "shortName",
          "longName",
          "type",
          "color"
        ],
        "additionalProperties": true
      },
      "RouteLeg": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "walk",
              "ride",
              "drive"
            ]
          },
          "departureMinutes": {
            "type": "number",
            "description": "Service-day clock in minutes."
          },
          "arrivalMinutes": {
            "type": "number",
            "description": "Service-day clock in minutes."
          },
          "durationMinutes": {
            "type": "number",
            "minimum": 0,
            "description": "Elapsed minutes between the leg clocks."
          },
          "departure": {
            "type": "number",
            "description": "Native service-day clock in seconds, when present."
          },
          "arrival": {
            "type": "number",
            "description": "Native service-day clock in seconds, when present."
          },
          "from": {
            "$ref": "#/components/schemas/JourneyEndpoint"
          },
          "to": {
            "$ref": "#/components/schemas/JourneyEndpoint"
          },
          "fromStopId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "toStopId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "fromStop": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "toStop": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "trip": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ]
          },
          "boardSequence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "alightSequence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "tripId": {
            "type": "string"
          },
          "routeId": {
            "type": "string"
          },
          "route": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RouteDisplay"
              },
              {
                "type": "null"
              }
            ]
          },
          "stopIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "stopCount": {
            "type": "integer",
            "minimum": 0,
            "description": "Stop-to-stop segments, not stopIds length."
          },
          "coordinates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Coordinate"
            }
          },
          "distanceMeters": {
            "type": "number",
            "minimum": 0
          },
          "geometrySource": {
            "type": "string",
            "enum": [
              "gtfs_shape",
              "stop_sequence",
              "osm",
              "station_selection",
              "unverified_transfer"
            ]
          },
          "streetPathVerified": {
            "type": "boolean",
            "description": "Present on materialized transit walking legs; absent on rides and direct street legs."
          }
        },
        "required": [
          "kind",
          "departureMinutes",
          "arrivalMinutes",
          "durationMinutes"
        ],
        "additionalProperties": true,
        "description": "Transit leg or direct street leg. Presence depends on mode and geometry request; waiting appears as gaps between legs."
      },
      "Journey": {
        "type": "object",
        "properties": {
          "departureMinutes": {
            "type": "number",
            "description": "Service-day clock in minutes."
          },
          "arrivalMinutes": {
            "type": "number",
            "description": "Service-day clock in minutes."
          },
          "durationMinutes": {
            "type": "number",
            "minimum": 0,
            "description": "Elapsed minutes between the leg clocks."
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk",
              "drive"
            ]
          },
          "departure": {
            "type": "number"
          },
          "arrival": {
            "type": "number"
          },
          "walkingSeconds": {
            "type": "number",
            "minimum": 0
          },
          "rideSeconds": {
            "type": "number",
            "minimum": 0
          },
          "waitingSeconds": {
            "type": "number",
            "minimum": 0
          },
          "walkMinutes": {
            "type": "number",
            "minimum": 0
          },
          "rideMinutes": {
            "type": "number",
            "minimum": 0
          },
          "waitMinutes": {
            "type": "number",
            "minimum": 0
          },
          "distanceMeters": {
            "type": "number",
            "minimum": 0
          },
          "boardings": {
            "type": "integer",
            "minimum": 0
          },
          "transfers": {
            "type": "integer",
            "minimum": 0
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteLeg"
            }
          }
        },
        "required": [
          "departureMinutes",
          "arrivalMinutes",
          "durationMinutes"
        ],
        "additionalProperties": true,
        "description": "Materialized transit journey or compact direct walk in a transit matrix. No outer status or dispatch metadata; compact walks omit legs."
      },
      "RouteResult": {
        "type": "object",
        "properties": {
          "schema": {
            "const": "vigo.route.v1"
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "not_found"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk",
              "drive"
            ]
          },
          "query": {
            "type": "object"
          },
          "meta": {
            "type": "object",
            "properties": {
              "engineVersion": {
                "type": "string"
              },
              "cityRevision": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "requestId": {},
              "queryFingerprint": {
                "type": "string"
              },
              "computeUs": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "computeScope": {
                "type": "string"
              }
            },
            "required": [
              "engineVersion",
              "cityRevision",
              "requestId",
              "queryFingerprint",
              "computeUs",
              "computeScope"
            ],
            "additionalProperties": true
          },
          "diagnostics": {
            "type": "object"
          },
          "profile": {
            "type": "object"
          },
          "trace": {
            "type": "object"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "datasetLimitations": {},
          "id": {},
          "journey": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicJourney"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "type": "object"
          },
          "alternatives": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/PublicJourney"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        },
        "required": [
          "schema",
          "status",
          "query",
          "meta",
          "journey"
        ],
        "additionalProperties": true
      },
      "MatrixResult": {
        "type": "object",
        "properties": {
          "schema": {
            "const": "vigo.matrix.v1"
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "not_found"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk",
              "drive"
            ]
          },
          "query": {
            "type": "object"
          },
          "meta": {
            "type": "object",
            "properties": {
              "engineVersion": {
                "type": "string"
              },
              "cityRevision": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "requestId": {},
              "queryFingerprint": {
                "type": "string"
              },
              "computeUs": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "computeScope": {
                "type": "string"
              }
            },
            "required": [
              "engineVersion",
              "cityRevision",
              "requestId",
              "queryFingerprint",
              "computeUs",
              "computeScope"
            ],
            "additionalProperties": true
          },
          "diagnostics": {
            "type": "object"
          },
          "profile": {
            "type": "object"
          },
          "trace": {
            "type": "object"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "datasetLimitations": {},
          "id": {},
          "durationsSeconds": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              }
            }
          },
          "journeys": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PublicJourney"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "schema",
          "status",
          "query",
          "meta",
          "durationsSeconds"
        ],
        "additionalProperties": true
      },
      "ReachStop": {
        "type": "object",
        "properties": {
          "stopId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "coordinate": {
            "$ref": "#/components/schemas/Coordinate"
          },
          "durationMinutes": {
            "type": "number",
            "minimum": 0
          }
        },
        "required": [
          "stopId",
          "name",
          "coordinate",
          "durationMinutes"
        ],
        "additionalProperties": true
      },
      "StreetEdgeBundle": {
        "type": "object",
        "properties": {
          "schemaVersion": {
            "const": "vigo.standalone.street-edges.v1"
          },
          "encoding": {
            "const": "indexed-json"
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "nodeCount": {
            "type": "integer",
            "minimum": 0
          },
          "nodes": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Flat longitude/latitude pairs, length 2 * nodeCount."
          },
          "endpoints": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0
            },
            "description": "From/to local node indices, length 2 * count."
          },
          "edgeIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0
            }
          },
          "durationMinutes": {
            "type": "array",
            "items": {
              "type": "number",
              "minimum": 0
            },
            "description": "Elapsed time to each directed edge to-endpoint; not edge traversal time."
          },
          "walkDistanceM": {
            "type": "array",
            "items": {
              "type": "number",
              "minimum": 0
            },
            "description": "Accumulated walking distance from the retained seed through the edge."
          },
          "transitArrivalMinutes": {
            "type": "array",
            "items": {
              "type": "number",
              "minimum": -1
            },
            "description": "Elapsed minutes at the transit seed; -1 means direct-origin seed."
          }
        },
        "required": [
          "schemaVersion",
          "encoding",
          "count",
          "nodeCount",
          "nodes",
          "endpoints",
          "edgeIds",
          "durationMinutes",
          "walkDistanceM",
          "transitArrivalMinutes"
        ],
        "additionalProperties": true,
        "description": "All measurement arrays and edgeIds have count entries. Local node indices are bundle-specific."
      },
      "ReachSurface": {
        "type": "object",
        "properties": {
          "width": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1024
          },
          "height": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1024
          },
          "bounds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "maxItems": 4
          },
          "values": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            },
            "description": "Elapsed minutes, northwest-first row-major. Null means no finite retained value; not a route to the cell center."
          },
          "fullBounds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "maxItems": 4
          },
          "fullValues": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "edges": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StreetEdgeBundle"
              },
              {
                "type": "null"
              }
            ]
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StreetSurfaceNode"
            },
            "description": "Separate object records, not edges.nodes. The current high-level wrapper returns at most one node when requested."
          }
        },
        "required": [
          "width",
          "height",
          "bounds",
          "values"
        ],
        "additionalProperties": true,
        "description": "Full values use fullBounds and the same dimensions. Recomputed bounds may be smaller or larger than the requested view."
      },
      "ReachAreas": {
        "type": "object",
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "const": "Feature"
                },
                "properties": {
                  "type": "object",
                  "properties": {
                    "cutoffMinutes": {
                      "type": "number",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "cutoffMinutes"
                  ],
                  "additionalProperties": true
                },
                "geometry": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "MultiPolygon"
                    },
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Coordinate"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "type",
                    "coordinates"
                  ],
                  "additionalProperties": true
                }
              },
              "required": [
                "type",
                "properties",
                "geometry"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "type",
          "features"
        ],
        "additionalProperties": true
      },
      "ReachContours": {
        "type": "object",
        "properties": {
          "type": {
            "const": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "const": "Feature"
                },
                "properties": {
                  "type": "object",
                  "properties": {
                    "cutoffMinutes": {
                      "type": "number",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "cutoffMinutes"
                  ],
                  "additionalProperties": true
                },
                "geometry": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "MultiLineString"
                    },
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Coordinate"
                        }
                      }
                    }
                  },
                  "required": [
                    "type",
                    "coordinates"
                  ],
                  "additionalProperties": true
                }
              },
              "required": [
                "type",
                "properties",
                "geometry"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "type",
          "features"
        ],
        "additionalProperties": true
      },
      "ReachResult": {
        "type": "object",
        "properties": {
          "schema": {
            "const": "vigo.reach.v1"
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "not_found"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "transit",
              "walk",
              "drive"
            ]
          },
          "query": {
            "type": "object"
          },
          "meta": {
            "type": "object",
            "properties": {
              "engineVersion": {
                "type": "string"
              },
              "cityRevision": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "requestId": {},
              "queryFingerprint": {
                "type": "string"
              },
              "computeUs": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "computeScope": {
                "type": "string"
              }
            },
            "required": [
              "engineVersion",
              "cityRevision",
              "requestId",
              "queryFingerprint",
              "computeUs",
              "computeScope"
            ],
            "additionalProperties": true
          },
          "diagnostics": {
            "type": "object"
          },
          "profile": {
            "type": "object"
          },
          "trace": {
            "type": "object"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "datasetLimitations": {},
          "id": {},
          "surface": {
            "type": "object",
            "properties": {
              "width": {
                "type": "integer",
                "minimum": 0
              },
              "height": {
                "type": "integer",
                "minimum": 0
              },
              "bounds": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 4,
                "maxItems": 4
              },
              "valuesSeconds": {
                "type": "array",
                "items": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "minimum": 0
                }
              }
            },
            "required": [
              "width",
              "height",
              "bounds",
              "valuesSeconds"
            ],
            "additionalProperties": true
          },
          "fullSurface": {
            "type": "object",
            "properties": {
              "width": {
                "type": "integer",
                "minimum": 0
              },
              "height": {
                "type": "integer",
                "minimum": 0
              },
              "bounds": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 4,
                "maxItems": 4
              },
              "valuesSeconds": {
                "type": "array",
                "items": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "minimum": 0
                }
              }
            },
            "required": [
              "width",
              "height",
              "bounds",
              "valuesSeconds"
            ],
            "additionalProperties": true
          },
          "cutoffsSeconds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0
            }
          },
          "areas": {
            "type": "object"
          },
          "contours": {
            "type": "object"
          },
          "fullAreas": {
            "type": "object"
          },
          "fullContours": {
            "type": "object"
          }
        },
        "required": [
          "schema",
          "status",
          "query",
          "meta",
          "surface",
          "cutoffsSeconds"
        ],
        "additionalProperties": true
      },
      "CompareResult": {
        "type": "object",
        "properties": {
          "schema": {
            "const": "vigo.compare.v1"
          },
          "status": {
            "const": "ok"
          },
          "durationChangeSeconds": {
            "type": [
              "integer",
              "null"
            ]
          },
          "meanChangeSeconds": {
            "type": [
              "number",
              "null"
            ]
          },
          "counts": {
            "type": "object"
          }
        },
        "required": [
          "schema",
          "status"
        ],
        "additionalProperties": true
      },
      "NativeResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QueryMetadata"
          },
          {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.route"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.arrive_by"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableArriveByQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.matrix"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableMatrixQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.many"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableManyQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.arrive_by_many"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableArriveByManyQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.pareto"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableParetoQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.overlay"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimetableOverlayManyQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "access.endpoint"
                  },
                  "result": {
                    "$ref": "#/components/schemas/EndpointRoleResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "access.endpoints"
                  },
                  "result": {
                    "$ref": "#/components/schemas/EndpointRouteResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "street.path"
                  },
                  "result": {
                    "$ref": "#/components/schemas/StreetPathResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "street.matrix"
                  },
                  "result": {
                    "$ref": "#/components/schemas/StreetMatrixResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "street.surface"
                  },
                  "result": {
                    "$ref": "#/components/schemas/StreetSurfaceResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "street.connectors"
                  },
                  "result": {
                    "$ref": "#/components/schemas/TimedConnectorResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "drive.route"
                  },
                  "result": {
                    "$ref": "#/components/schemas/DriveQueryResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "drive.matrix"
                  },
                  "result": {
                    "$ref": "#/components/schemas/DriveMatrixResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "realtime.compile"
                  },
                  "result": {
                    "$ref": "#/components/schemas/RealtimeTimetableResult"
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "const": "timetable.identifiers"
                  },
                  "result": {
                    "type": "object",
                    "properties": {
                      "stopIds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "tripIds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "routeIds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "accessMemberStopIds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [],
                    "additionalProperties": true
                  }
                },
                "required": [
                  "operation",
                  "result"
                ],
                "additionalProperties": true
              }
            ]
          }
        ]
      },
      "PublicIdentifier": {
        "type": "object",
        "properties": {
          "feed": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "feed",
          "id"
        ],
        "additionalProperties": false
      },
      "PublicEndpoint": {
        "type": "object",
        "properties": {
          "stop": {
            "$ref": "#/components/schemas/PublicIdentifier"
          },
          "name": {
            "type": "string"
          },
          "coordinate": {
            "$ref": "#/components/schemas/Coordinate"
          }
        },
        "required": [],
        "additionalProperties": true
      },
      "PublicLeg": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "walk",
              "transit",
              "drive"
            ]
          },
          "from": {
            "$ref": "#/components/schemas/PublicEndpoint"
          },
          "to": {
            "$ref": "#/components/schemas/PublicEndpoint"
          },
          "departureTime": {
            "type": "string"
          },
          "arrivalTime": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "integer",
            "minimum": 0
          },
          "distanceMeters": {
            "type": "integer",
            "minimum": 0
          },
          "quality": {
            "type": "object"
          },
          "geometry": {
            "type": "object",
            "properties": {
              "type": {
                "const": "LineString"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Coordinate"
                }
              }
            },
            "required": [
              "type",
              "coordinates"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "type",
          "from",
          "to",
          "departureTime",
          "arrivalTime",
          "durationSeconds",
          "quality"
        ],
        "additionalProperties": true
      },
      "PublicJourney": {
        "type": "object",
        "properties": {
          "departureTime": {
            "type": "string"
          },
          "arrivalTime": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "integer",
            "minimum": 0
          },
          "walkingSeconds": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "waitingSeconds": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "ridingSeconds": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "drivingSeconds": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "boardings": {
            "type": "integer",
            "minimum": 0
          },
          "transfers": {
            "type": "integer",
            "minimum": 0
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicLeg"
            }
          }
        },
        "required": [
          "departureTime",
          "arrivalTime",
          "durationSeconds",
          "walkingSeconds",
          "waitingSeconds",
          "ridingSeconds",
          "boardings",
          "transfers",
          "legs"
        ],
        "additionalProperties": true
      }
    }
  }
}
