{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/geoapify/json-schema/geoapify-batch-completed-response-schema.json",
  "title": "BatchCompletedResponse",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/geoapify-batch-api-openapi.yml#/components/schemas/BatchCompletedResponse",
  "type": "object",
  "required": [
    "api",
    "id",
    "results"
  ],
  "properties": {
    "api": {
      "type": "string",
      "enum": [
        "/v1/isoline",
        "/v1/routing",
        "/v1/places",
        "/v1/geometry",
        "/v1/geocode/search",
        "/v1/geocode/reverse",
        "/v1/mapmatching",
        "/v2/places",
        "/v2/place-info",
        "/v2/place-details",
        "/v1/ipinfo",
        "/v1/routeplanner",
        "/v1/routematrix",
        "/v1/boundaries/part-of",
        "/v1/boundaries/consists-of",
        "/v1/boundaries/near-by",
        "/v1/boundaries/parent-of"
      ]
    },
    "params": {
      "type": "object",
      "additionalProperties": true,
      "description": "Request-level parameters applied to the batch."
    },
    "body": {
      "type": "object",
      "additionalProperties": true,
      "description": "Request-level body applied to the batch."
    },
    "id": {
      "type": "string",
      "pattern": "^[a-f0-9]{32}$"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BatchResultItem"
      }
    }
  },
  "$defs": {
    "Avoid": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "tolls",
            "ferries",
            "highways",
            "locations",
            "polygons",
            "green_zones",
            "country_codes",
            "transfers"
          ]
        },
        "importance": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "values": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/LocationData"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/LocationData"
                }
              }
            }
          ]
        }
      }
    },
    "BatchItemError": {
      "type": "object",
      "required": [
        "statusCode",
        "error",
        "message"
      ],
      "properties": {
        "statusCode": {
          "type": "integer"
        },
        "error": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "BatchResultItem": {
      "type": "object",
      "required": [
        "result"
      ],
      "properties": {
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "description": "Optional caller-supplied input identifier."
        },
        "params": {
          "type": "object",
          "additionalProperties": true,
          "description": "Parameters used for this input."
        },
        "body": {
          "type": "object",
          "additionalProperties": true,
          "description": "Request body used for this input."
        },
        "result": {
          "anyOf": [
            {
              "$ref": "#/$defs/GeocodingTextGeocodingFeatureCollection"
            },
            {
              "$ref": "#/$defs/GeocodingReverseGeocodingFeatureCollection"
            },
            {
              "$ref": "#/$defs/GeocodingGeocodingJsonResponse"
            },
            {
              "type": "string",
              "description": "A text result, such as an XML response requested from geocoding or routing."
            },
            {
              "$ref": "#/$defs/PlacesFeatureCollection"
            },
            {
              "$ref": "#/$defs/IsolineFeatureCollection"
            },
            {
              "$ref": "#/$defs/RoutingFeatureCollection"
            },
            {
              "$ref": "#/$defs/RoutingJsonResponse"
            },
            {
              "$ref": "#/$defs/MapMatchingFeatureCollection"
            },
            {
              "$ref": "#/$defs/RoutePlannerResponse"
            },
            {
              "$ref": "#/$defs/RouteMatrixResponse"
            },
            {
              "$ref": "#/$defs/IpIpGeolocationResponse"
            },
            {
              "$ref": "#/$defs/PlaceInfoFeatureCollection"
            },
            {
              "$ref": "#/$defs/PlaceDetailsPlaceDetailsFeatureCollection"
            },
            {
              "$ref": "#/$defs/BoundariesBoundaryFeatureCollection"
            },
            {
              "$ref": "#/$defs/GeometryFeatureCollection"
            },
            {
              "$ref": "#/$defs/BatchItemError"
            }
          ]
        }
      }
    },
    "BoundariesBooleanMap": {
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "BoundariesBoundaryFeature": {
      "type": "object",
      "required": [
        "type",
        "properties",
        "geometry"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/BoundariesBoundaryProperties"
        },
        "geometry": {
          "$ref": "#/$defs/BoundariesGeoJsonGeometry"
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 4,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "BoundariesBoundaryFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BoundariesBoundaryFeature"
          }
        }
      }
    },
    "BoundariesBoundaryProperties": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "continent": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_COG": {
          "type": "string"
        },
        "department_COG": {
          "type": "string"
        },
        "state_district": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "arrondissement": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "county_code": {
          "type": "string"
        },
        "county_district": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "city_district": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "postal_code": {
          "type": "string"
        },
        "openGeoDB:postal_codes": {
          "type": "string"
        },
        "district": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "municipality": {
          "type": "string"
        },
        "commune": {
          "type": "string"
        },
        "subdistrict": {
          "type": "string"
        },
        "city_block": {
          "type": "string"
        },
        "neighbourhood": {
          "type": "string"
        },
        "quarter": {
          "type": "string"
        },
        "section": {
          "type": "string"
        },
        "sector": {
          "type": "string"
        },
        "subdivision": {
          "type": "string"
        },
        "croft": {
          "type": "string"
        },
        "allotments": {
          "type": "string"
        },
        "residental": {
          "type": "string"
        },
        "farm": {
          "type": "string"
        },
        "farmyard": {
          "type": "string"
        },
        "industrial": {
          "type": "string"
        },
        "retail": {
          "type": "string"
        },
        "borough": {
          "type": "string"
        },
        "town": {
          "type": "string"
        },
        "township": {
          "type": "string"
        },
        "village": {
          "type": "string"
        },
        "hamlet": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "isolated_dwelling": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "road": {
          "type": "string"
        },
        "footway": {
          "type": "string"
        },
        "pedestrian": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "house_number": {
          "type": "string"
        },
        "house_name": {
          "type": "string"
        },
        "old_name": {
          "type": "string"
        },
        "other": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "address_line1": {
          "type": "string"
        },
        "address_line2": {
          "type": "string"
        },
        "unlocode": {
          "type": "string"
        },
        "iso3166_2": {
          "type": "string"
        },
        "iso3166_2_sublevel": {
          "type": "string"
        },
        "iso3166_sublevel": {
          "type": "string"
        },
        "plus_code": {
          "type": "string"
        },
        "plus_code_short": {
          "type": "string"
        },
        "postcodes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "other_names": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "parent_as_place_id": {
          "type": "boolean"
        },
        "timezone": {
          "$ref": "#/$defs/BoundariesTimezoneOutput"
        },
        "population": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "#/$defs/BoundariesWikiPopulation"
            }
          ]
        },
        "distance": {
          "type": "number"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "datasource": {
          "$ref": "#/$defs/BoundariesPlacesDatasource"
        },
        "mappedTo": {
          "type": "object",
          "properties": {
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            }
          }
        },
        "place_id": {
          "type": "string",
          "minLength": 3,
          "maxLength": 2048
        },
        "website": {
          "type": "string"
        },
        "opening_hours": {
          "type": "string"
        },
        "opening_hours_covid19": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "branch": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "craft": {
          "type": "string"
        },
        "ref": {
          "type": "string"
        },
        "int_ref": {
          "type": "string"
        },
        "ele": {
          "type": "string"
        },
        "color": {
          "type": "string"
        },
        "water_source": {
          "type": "string"
        },
        "website_other": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "website_international": {
          "$ref": "#/$defs/BoundariesStringMap"
        },
        "description_international": {
          "$ref": "#/$defs/BoundariesStringMap"
        },
        "name_international": {
          "$ref": "#/$defs/BoundariesStringMap"
        },
        "cuisine_international": {
          "$ref": "#/$defs/BoundariesStringMap"
        },
        "ref_other": {
          "$ref": "#/$defs/BoundariesStringMap"
        },
        "disused": {
          "type": "boolean"
        },
        "commercial": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/BoundariesPlaceDetailGroup"
            }
          ]
        },
        "payment_options": {
          "$ref": "#/$defs/BoundariesBooleanMap"
        },
        "recycling_options": {
          "$ref": "#/$defs/BoundariesBooleanMap"
        },
        "fuel_options": {
          "$ref": "#/$defs/BoundariesBooleanMap"
        },
        "targeted_for": {
          "$ref": "#/$defs/BoundariesBooleanMap"
        },
        "socket_options": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/BoundariesPlaceDetailGroup"
          }
        },
        "brand_details": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "operator_details": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "network_details": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "owner_details": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "name_other": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "contact": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "facilities": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "wiki_and_media": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "historic": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "heritage": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "artwork": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "accommodation": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "catering": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "parking": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "airport": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "power": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "way": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "building": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "place_of_worship": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "fire_hydrant": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "defibrilator": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "restrictions": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        },
        "production": {
          "$ref": "#/$defs/BoundariesPlaceDetailGroup"
        }
      }
    },
    "BoundariesGeoJsonGeometry": {
      "oneOf": [
        {
          "$ref": "#/$defs/BoundariesPointGeometry"
        },
        {
          "$ref": "#/$defs/BoundariesLineStringGeometry"
        },
        {
          "$ref": "#/$defs/BoundariesPolygonGeometry"
        },
        {
          "$ref": "#/$defs/BoundariesMultiPointGeometry"
        },
        {
          "$ref": "#/$defs/BoundariesMultiLineStringGeometry"
        },
        {
          "$ref": "#/$defs/BoundariesMultiPolygonGeometry"
        },
        {
          "$ref": "#/$defs/BoundariesGeometryCollection"
        }
      ]
    },
    "BoundariesGeometryCollection": {
      "type": "object",
      "required": [
        "type",
        "geometries"
      ],
      "properties": {
        "type": {
          "const": "GeometryCollection"
        },
        "geometries": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BoundariesGeoJsonGeometry"
          }
        }
      }
    },
    "BoundariesLineStringGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "LineString"
        },
        "coordinates": {
          "type": "array",
          "minItems": 2,
          "items": {
            "$ref": "#/$defs/BoundariesPosition"
          }
        }
      }
    },
    "BoundariesMultiLineStringGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiLineString"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/$defs/BoundariesPosition"
            }
          }
        }
      }
    },
    "BoundariesMultiPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiPoint"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BoundariesPosition"
          }
        }
      }
    },
    "BoundariesMultiPolygonGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiPolygon"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 4,
              "items": {
                "$ref": "#/$defs/BoundariesPosition"
              }
            }
          }
        }
      }
    },
    "BoundariesPlaceDetailGroup": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/BoundariesPlaceDetailValue"
      }
    },
    "BoundariesPlaceDetailValue": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BoundariesPlaceDetailValue"
          }
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/BoundariesPlaceDetailValue"
          }
        }
      ]
    },
    "BoundariesPlacesDatasource": {
      "type": "object",
      "required": [
        "raw"
      ],
      "properties": {
        "sourcename": {
          "type": "string"
        },
        "attribution": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "raw": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "BoundariesPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Point"
        },
        "coordinates": {
          "$ref": "#/$defs/BoundariesPosition"
        }
      }
    },
    "BoundariesPolygonGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Polygon"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 4,
            "items": {
              "$ref": "#/$defs/BoundariesPosition"
            }
          }
        }
      }
    },
    "BoundariesPosition": {
      "type": "array",
      "minItems": 2,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        {
          "type": "number"
        }
      ],
      "items": {
        "not": {}
      }
    },
    "BoundariesStringMap": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "BoundariesTimezoneOutput": {
      "type": "object",
      "required": [
        "name",
        "offset_STD",
        "offset_DST",
        "offset_STD_seconds",
        "offset_DST_seconds"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "name_alt": {
          "type": "string"
        },
        "country_codes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "offset_STD": {
          "type": "string"
        },
        "offset_DST": {
          "type": "string"
        },
        "offset_STD_seconds": {
          "type": "number"
        },
        "offset_DST_seconds": {
          "type": "number"
        },
        "abbreviation_STD": {
          "type": "string"
        },
        "abbreviation_DST": {
          "type": "string"
        }
      }
    },
    "BoundariesWikiPopulation": {
      "type": "object",
      "required": [
        "actual",
        "by_years"
      ],
      "properties": {
        "actual": {
          "type": "string"
        },
        "by_years": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "GeocodingFeature": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "properties",
        "geometry"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/GeocodingGeocodingProperties"
        },
        "geometry": {
          "oneOf": [
            {
              "$ref": "#/$defs/GeocodingPointGeometry"
            },
            {
              "$ref": "#/$defs/GeocodingGenericGeometry"
            },
            {
              "$ref": "#/$defs/GeocodingGeometryCollection"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "GeocodingFeatureCollection": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GeocodingFeature"
          }
        }
      }
    },
    "GeocodingGenericGeometry": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "LineString",
            "Polygon",
            "MultiPoint",
            "MultiLineString",
            "MultiPolygon"
          ]
        },
        "coordinates": {
          "type": "array",
          "items": {}
        }
      }
    },
    "GeocodingGeocodingJsonResponse": {
      "type": "object",
      "required": [
        "results"
      ],
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GeocodingGeocodingProperties"
          }
        },
        "query": {
          "anyOf": [
            {
              "$ref": "#/$defs/GeocodingTextGeocoderQuery"
            },
            {
              "$ref": "#/$defs/GeocodingReverseGeocoderQuery"
            }
          ]
        }
      }
    },
    "GeocodingGeocodingProperties": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "continent": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_COG": {
          "type": "string"
        },
        "department_COG": {
          "type": "string"
        },
        "state_district": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "arrondissement": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "county_code": {
          "type": "string"
        },
        "county_district": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "city_district": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "postal_code": {
          "type": "string"
        },
        "openGeoDB:postal_codes": {
          "type": "string"
        },
        "district": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "municipality": {
          "type": "string"
        },
        "commune": {
          "type": "string"
        },
        "subdistrict": {
          "type": "string"
        },
        "city_block": {
          "type": "string"
        },
        "neighbourhood": {
          "type": "string"
        },
        "quarter": {
          "type": "string"
        },
        "section": {
          "type": "string"
        },
        "sector": {
          "type": "string"
        },
        "subdivision": {
          "type": "string"
        },
        "croft": {
          "type": "string"
        },
        "allotments": {
          "type": "string"
        },
        "residental": {
          "type": "string"
        },
        "farm": {
          "type": "string"
        },
        "farmyard": {
          "type": "string"
        },
        "industrial": {
          "type": "string"
        },
        "commercial": {
          "type": "string"
        },
        "retail": {
          "type": "string"
        },
        "borough": {
          "type": "string"
        },
        "town": {
          "type": "string"
        },
        "township": {
          "type": "string"
        },
        "village": {
          "type": "string"
        },
        "hamlet": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "isolated_dwelling": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "road": {
          "type": "string"
        },
        "footway": {
          "type": "string"
        },
        "pedestrian": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "house_number": {
          "type": "string"
        },
        "house_name": {
          "type": "string"
        },
        "old_name": {
          "type": "string"
        },
        "other": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "address_line1": {
          "type": "string"
        },
        "address_line2": {
          "type": "string"
        },
        "unlocode": {
          "type": "string"
        },
        "iso3166_2": {
          "type": "string"
        },
        "iso3166_2_sublevel": {
          "type": "string"
        },
        "iso3166_sublevel": {
          "type": "string"
        },
        "plus_code": {
          "type": "string"
        },
        "plus_code_short": {
          "type": "string"
        },
        "postcodes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "other_names": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "population": {
          "type": "number"
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "parent_as_place_id": {
          "type": "boolean"
        },
        "timezone": {
          "$ref": "#/$defs/GeocodingTimezoneOutput"
        },
        "NUTS_3": {
          "type": "string"
        },
        "result_type": {
          "type": "string",
          "enum": [
            "unknown",
            "amenity_name",
            "amenity",
            "building",
            "street",
            "postcode",
            "suburb",
            "district",
            "city",
            "county",
            "state",
            "country"
          ]
        },
        "distance": {
          "type": "number"
        },
        "datasource": {
          "$ref": "#/$defs/GeocodingPublicDatasource"
        },
        "rank": {
          "$ref": "#/$defs/GeocodingGeocodingRank"
        },
        "category": {
          "type": "string"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "place_id": {
          "type": "string",
          "minLength": 3,
          "maxLength": 2048
        },
        "bbox": {
          "type": "object",
          "required": [
            "lon1",
            "lat1",
            "lon2",
            "lat2"
          ],
          "properties": {
            "lon1": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "lat1": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lon2": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "lat2": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            }
          }
        }
      }
    },
    "GeocodingGeocodingRank": {
      "type": "object",
      "properties": {
        "confidence": {
          "type": "number"
        },
        "confidence_city_level": {
          "type": "number"
        },
        "confidence_street_level": {
          "type": "number"
        },
        "confidence_building_level": {
          "type": "number"
        },
        "match_type": {
          "type": "string",
          "enum": [
            "full_match",
            "inner_part",
            "match_by_building",
            "match_by_street",
            "match_by_postcode",
            "match_by_city_or_disrict",
            "match_by_country_or_state"
          ]
        },
        "importance": {
          "type": "number"
        },
        "popularity": {
          "type": "number"
        }
      }
    },
    "GeocodingGeometryCollection": {
      "type": "object",
      "required": [
        "type",
        "geometries"
      ],
      "properties": {
        "type": {
          "const": "GeometryCollection"
        },
        "geometries": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/GeocodingPointGeometry"
              },
              {
                "$ref": "#/$defs/GeocodingGenericGeometry"
              },
              {
                "$ref": "#/$defs/GeocodingGeometryCollection"
              }
            ]
          }
        }
      }
    },
    "GeocodingParsedAddress": {
      "type": "object",
      "properties": {
        "po_box": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        },
        "house": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "district": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "expected_type": {
          "type": "string",
          "enum": [
            "unknown",
            "amenity_name",
            "amenity",
            "building",
            "street",
            "postcode",
            "suburb",
            "district",
            "city",
            "county",
            "state",
            "country"
          ]
        }
      }
    },
    "GeocodingPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Point"
        },
        "coordinates": {
          "$ref": "#/$defs/GeocodingPosition"
        }
      }
    },
    "GeocodingPosition": {
      "type": "array",
      "minItems": 2,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        {
          "type": "number"
        }
      ],
      "items": {
        "not": {}
      }
    },
    "GeocodingPublicDatasource": {
      "type": "object",
      "properties": {
        "sourcename": {
          "type": "string"
        },
        "attribution": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "GeocodingReverseGeocoderQuery": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "plus_code": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "country": {
          "type": "string"
        }
      }
    },
    "GeocodingReverseGeocodingFeatureCollection": {
      "allOf": [
        {
          "$ref": "#/$defs/GeocodingFeatureCollection"
        },
        {
          "type": "object",
          "required": [
            "query"
          ],
          "properties": {
            "query": {
              "$ref": "#/$defs/GeocodingReverseGeocoderQuery"
            }
          }
        }
      ]
    },
    "GeocodingTextGeocoderQuery": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "plus_code": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "parsed": {
          "$ref": "#/$defs/GeocodingParsedAddress"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "keys",
              "label"
            ],
            "properties": {
              "keys": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "label": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "GeocodingTextGeocodingFeatureCollection": {
      "allOf": [
        {
          "$ref": "#/$defs/GeocodingFeatureCollection"
        },
        {
          "type": "object",
          "properties": {
            "query": {
              "$ref": "#/$defs/GeocodingTextGeocoderQuery"
            }
          }
        }
      ]
    },
    "GeocodingTimezoneOutput": {
      "type": "object",
      "required": [
        "name",
        "offset_STD",
        "offset_DST",
        "offset_STD_seconds",
        "offset_DST_seconds"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "name_alt": {
          "type": "string"
        },
        "country_codes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "offset_STD": {
          "type": "string"
        },
        "offset_DST": {
          "type": "string"
        },
        "offset_STD_seconds": {
          "type": "number"
        },
        "offset_DST_seconds": {
          "type": "number"
        },
        "abbreviation_STD": {
          "type": "string"
        },
        "abbreviation_DST": {
          "type": "string"
        }
      }
    },
    "GeometryFeature": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "properties",
        "geometry"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/GeometryGeometryProperties"
        },
        "geometry": {
          "oneOf": [
            {
              "$ref": "#/$defs/GeometryPointGeometry"
            },
            {
              "$ref": "#/$defs/GeometryGenericGeometry"
            },
            {
              "$ref": "#/$defs/GeometryGeometryCollection"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "GeometryFeatureCollection": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/GeometryFeature"
          }
        }
      }
    },
    "GeometryGenericGeometry": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "LineString",
            "Polygon",
            "MultiPoint",
            "MultiLineString",
            "MultiPolygon"
          ]
        },
        "coordinates": {
          "type": "array",
          "items": {}
        }
      }
    },
    "GeometryGeometryCollection": {
      "type": "object",
      "required": [
        "type",
        "geometries"
      ],
      "properties": {
        "type": {
          "const": "GeometryCollection"
        },
        "geometries": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/GeometryPointGeometry"
              },
              {
                "$ref": "#/$defs/GeometryGenericGeometry"
              },
              {
                "$ref": "#/$defs/GeometryGeometryCollection"
              }
            ]
          }
        }
      }
    },
    "GeometryGeometryProperties": {
      "type": "object",
      "additionalProperties": true
    },
    "GeometryPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Point"
        },
        "coordinates": {
          "$ref": "#/$defs/GeometryPosition"
        }
      }
    },
    "GeometryPosition": {
      "type": "array",
      "minItems": 2,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        {
          "type": "number"
        }
      ],
      "items": {
        "not": {}
      }
    },
    "InputRouteWaypoint": {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "address": {
          "type": "string"
        }
      }
    },
    "IpIpGeolocationContinent": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "names": {
          "$ref": "#/$defs/IpLocalizedNames"
        },
        "geoname_id": {
          "type": "integer"
        }
      }
    },
    "IpIpGeolocationCountry": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "name": {
          "type": "string"
        },
        "iso_code": {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "names": {
          "$ref": "#/$defs/IpLocalizedNames"
        },
        "geoname_id": {
          "type": "integer"
        },
        "name_native": {
          "type": "string"
        },
        "phone_code": {
          "type": "string"
        },
        "capital": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "flag": {
          "type": "string"
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/IpIpGeolocationLanguage"
          }
        }
      }
    },
    "IpIpGeolocationLanguage": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "iso_code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "name_native": {
          "type": "string"
        }
      }
    },
    "IpIpGeolocationLocation": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "latitude",
        "longitude"
      ],
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      }
    },
    "IpIpGeolocationNamedEntity": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "name": {
          "type": "string"
        },
        "names": {
          "$ref": "#/$defs/IpLocalizedNames"
        }
      }
    },
    "IpIpGeolocationPostal": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "code": {
          "type": "string"
        }
      }
    },
    "IpIpGeolocationResponse": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "ip": {
          "type": "string",
          "anyOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ]
        },
        "city": {
          "$ref": "#/$defs/IpIpGeolocationNamedEntity"
        },
        "state": {
          "$ref": "#/$defs/IpIpGeolocationNamedEntity"
        },
        "country": {
          "$ref": "#/$defs/IpIpGeolocationCountry"
        },
        "continent": {
          "$ref": "#/$defs/IpIpGeolocationContinent"
        },
        "location": {
          "$ref": "#/$defs/IpIpGeolocationLocation"
        },
        "subdivisions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/IpIpGeolocationNamedEntity"
          }
        },
        "postal": {
          "$ref": "#/$defs/IpIpGeolocationPostal"
        }
      }
    },
    "IpLocalizedNames": {
      "type": "object",
      "description": "Names keyed by language code.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "IsolineCollectionProperties": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "IsolineDetails": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/JsonValue"
      },
      "properties": {
        "population": {
          "type": "object",
          "required": [],
          "properties": {
            "attribution": {
              "type": "string"
            },
            "value": {
              "type": "number"
            }
          }
        }
      }
    },
    "IsolineFeature": {
      "type": "object",
      "required": [
        "type",
        "geometry",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "geometry": {
          "$ref": "#/$defs/IsolineGeometry"
        },
        "properties": {
          "$ref": "#/$defs/IsolineFeatureProperties"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "IsolineFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/IsolineFeature"
          }
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        },
        "properties": {
          "$ref": "#/$defs/IsolineCollectionProperties"
        }
      }
    },
    "IsolineFeatureProperties": {
      "type": "object",
      "required": [
        "id",
        "lat",
        "lon",
        "mode",
        "type",
        "range"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "type": {
          "type": "string",
          "enum": [
            "time",
            "distance"
          ]
        },
        "range": {
          "type": "number"
        },
        "details": {
          "$ref": "#/$defs/IsolineDetails"
        },
        "route_type": {
          "type": "string",
          "enum": [
            "balanced",
            "short",
            "less_maneuvers"
          ]
        },
        "max_speed": {
          "type": "number"
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        }
      }
    },
    "IsolineGeometry": {
      "oneOf": [
        {
          "$ref": "#/$defs/PolygonGeometry"
        },
        {
          "$ref": "#/$defs/MultiPolygonGeometry"
        }
      ]
    },
    "JsonObject": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/JsonValue"
      }
    },
    "JsonValue": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/JsonValue"
          }
        },
        {
          "$ref": "#/$defs/JsonObject"
        }
      ]
    },
    "LocationData": {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "address": {
          "type": "string"
        }
      }
    },
    "LongitudeLatitude": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        }
      ],
      "items": {
        "not": {}
      }
    },
    "MapMatchingFeature": {
      "type": "object",
      "required": [
        "type",
        "geometry",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "geometry": {
          "$ref": "#/$defs/MultiLineStringGeometry"
        },
        "properties": {
          "$ref": "#/$defs/MapMatchingFeatureProperties"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "MapMatchingFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/MapMatchingFeature"
          }
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        },
        "properties": {
          "oneOf": [
            {
              "$ref": "#/$defs/JsonObject"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "MapMatchingFeatureProperties": {
      "type": "object",
      "required": [
        "distance",
        "time",
        "legs",
        "mode",
        "waypoints"
      ],
      "properties": {
        "distance": {
          "type": "number"
        },
        "time": {
          "type": "number"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/MapMatchingLeg"
          }
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "waypoints": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/MapMatchingWaypoint"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      }
    },
    "MapMatchingLeg": {
      "type": "object",
      "required": [
        "time",
        "distance",
        "steps"
      ],
      "properties": {
        "time": {
          "type": "number"
        },
        "distance": {
          "type": "number"
        },
        "steps": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/MapMatchingStep"
          }
        }
      }
    },
    "MapMatchingStep": {
      "type": "object",
      "required": [
        "from_index",
        "to_index",
        "time",
        "distance",
        "osm_way_id"
      ],
      "properties": {
        "from_index": {
          "type": "integer"
        },
        "to_index": {
          "type": "integer"
        },
        "time": {
          "type": "number"
        },
        "distance": {
          "type": "number"
        },
        "instruction": {
          "$ref": "#/$defs/RouteInstruction"
        },
        "toll": {
          "type": "boolean"
        },
        "ferry": {
          "type": "boolean"
        },
        "bridge": {
          "type": "boolean"
        },
        "tunnel": {
          "type": "boolean"
        },
        "elevation": {
          "type": "number"
        },
        "elevation_gain": {
          "type": "number"
        },
        "max_elevation": {
          "type": "number"
        },
        "min_elevation": {
          "type": "number"
        },
        "admin_area": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "speed": {
          "type": "number"
        },
        "speed_limit": {
          "type": "number"
        },
        "truck_limit": {
          "type": "number"
        },
        "surface": {
          "type": "string"
        },
        "lane_count": {
          "type": "number"
        },
        "road_class": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "roundabout": {
          "type": "boolean"
        },
        "rightside": {
          "type": "boolean"
        },
        "traversability": {
          "type": "string"
        },
        "from_stop_id": {
          "type": "string"
        },
        "from_stop_name": {
          "type": "string"
        },
        "to_stop_id": {
          "type": "string"
        },
        "to_stop_name": {
          "type": "string"
        },
        "osm_way_id": {
          "type": "number"
        },
        "address": {
          "$ref": "#/$defs/MapMatchingStepAddress"
        },
        "osmtags": {
          "$ref": "#/$defs/JsonObject"
        },
        "overlaps": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/MapMatchingStepOverlap"
          }
        },
        "begin_bearing": {
          "type": "number"
        },
        "end_bearing": {
          "type": "number"
        }
      }
    },
    "MapMatchingStepAddress": {
      "type": "object",
      "required": [],
      "properties": {
        "street": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        }
      }
    },
    "MapMatchingStepOverlap": {
      "type": "object",
      "required": [
        "osm_way_id",
        "osmtags",
        "intersection_points"
      ],
      "properties": {
        "osm_way_id": {
          "type": "number"
        },
        "osmtags": {
          "$ref": "#/$defs/JsonObject"
        },
        "intersection_points": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/LongitudeLatitude"
          }
        }
      }
    },
    "MapMatchingWaypoint": {
      "type": "object",
      "required": [
        "original_index",
        "location",
        "original_location",
        "match_type"
      ],
      "properties": {
        "original_index": {
          "type": "integer"
        },
        "location": {
          "oneOf": [
            {
              "$ref": "#/$defs/LongitudeLatitude"
            },
            {
              "type": "null"
            }
          ]
        },
        "original_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "match_type": {
          "type": "string",
          "enum": [
            "matched",
            "unmatched",
            "interpolated",
            "merged"
          ]
        },
        "match_distance": {
          "type": [
            "number",
            "null"
          ]
        },
        "leg_index": {
          "type": "integer"
        },
        "step_index": {
          "type": "integer"
        }
      }
    },
    "MultiLineStringGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiLineString"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/$defs/LongitudeLatitude"
            }
          }
        }
      }
    },
    "MultiPolygonGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiPolygon"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 4,
              "items": {
                "$ref": "#/$defs/LongitudeLatitude"
              }
            }
          }
        }
      }
    },
    "PlaceDetailsBooleanMap": {
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "PlaceDetailsGeoJsonGeometry": {
      "oneOf": [
        {
          "$ref": "#/$defs/PlaceDetailsPointGeometry"
        },
        {
          "$ref": "#/$defs/PlaceDetailsLineStringGeometry"
        },
        {
          "$ref": "#/$defs/PlaceDetailsPolygonGeometry"
        },
        {
          "$ref": "#/$defs/PlaceDetailsMultiPointGeometry"
        },
        {
          "$ref": "#/$defs/PlaceDetailsMultiLineStringGeometry"
        },
        {
          "$ref": "#/$defs/PlaceDetailsMultiPolygonGeometry"
        },
        {
          "$ref": "#/$defs/PlaceDetailsGeometryCollection"
        }
      ]
    },
    "PlaceDetailsGeometryCollection": {
      "type": "object",
      "required": [
        "type",
        "geometries"
      ],
      "properties": {
        "type": {
          "const": "GeometryCollection"
        },
        "geometries": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlaceDetailsGeoJsonGeometry"
          }
        }
      }
    },
    "PlaceDetailsLineStringGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "LineString"
        },
        "coordinates": {
          "type": "array",
          "minItems": 2,
          "items": {
            "$ref": "#/$defs/PlaceDetailsPosition"
          }
        }
      }
    },
    "PlaceDetailsMultiLineStringGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiLineString"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "items": {
              "$ref": "#/$defs/PlaceDetailsPosition"
            }
          }
        }
      }
    },
    "PlaceDetailsMultiPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiPoint"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlaceDetailsPosition"
          }
        }
      }
    },
    "PlaceDetailsMultiPolygonGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "MultiPolygon"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "array",
              "minItems": 4,
              "items": {
                "$ref": "#/$defs/PlaceDetailsPosition"
              }
            }
          }
        }
      }
    },
    "PlaceDetailsPlaceDetailGroup": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/PlaceDetailsPlaceDetailValue"
      }
    },
    "PlaceDetailsPlaceDetailValue": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlaceDetailsPlaceDetailValue"
          }
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PlaceDetailsPlaceDetailValue"
          }
        }
      ]
    },
    "PlaceDetailsPlaceDetailsFeature": {
      "type": "object",
      "required": [
        "type",
        "properties",
        "geometry"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailsProperties"
        },
        "geometry": {
          "$ref": "#/$defs/PlaceDetailsGeoJsonGeometry"
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 4,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "PlaceDetailsPlaceDetailsFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlaceDetailsPlaceDetailsFeature"
          }
        }
      }
    },
    "PlaceDetailsPlaceDetailsFeatureId": {
      "type": "string",
      "description": "Primary Place Details feature group accepted by the `features` parameter.",
      "enum": [
        "details",
        "building",
        "radius_100",
        "radius_500",
        "radius_1000",
        "walk_5",
        "walk_10",
        "walk_15",
        "walk_30",
        "drive_5",
        "drive_10",
        "drive_15"
      ]
    },
    "PlaceDetailsPlaceDetailsProperties": {
      "type": "object",
      "description": "Common properties and known place-detail fields returned by the Place Details API. Additional category-specific properties may appear when available.",
      "additionalProperties": true,
      "properties": {
        "name": {
          "type": "string"
        },
        "continent": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_COG": {
          "type": "string"
        },
        "department_COG": {
          "type": "string"
        },
        "state_district": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "arrondissement": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "county_code": {
          "type": "string"
        },
        "county_district": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "city_district": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "postal_code": {
          "type": "string"
        },
        "openGeoDB:postal_codes": {
          "type": "string"
        },
        "district": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "municipality": {
          "type": "string"
        },
        "commune": {
          "type": "string"
        },
        "subdistrict": {
          "type": "string"
        },
        "city_block": {
          "type": "string"
        },
        "neighbourhood": {
          "type": "string"
        },
        "quarter": {
          "type": "string"
        },
        "section": {
          "type": "string"
        },
        "sector": {
          "type": "string"
        },
        "subdivision": {
          "type": "string"
        },
        "croft": {
          "type": "string"
        },
        "allotments": {
          "type": "string"
        },
        "residental": {
          "type": "string"
        },
        "farm": {
          "type": "string"
        },
        "farmyard": {
          "type": "string"
        },
        "industrial": {
          "type": "string"
        },
        "retail": {
          "type": "string"
        },
        "borough": {
          "type": "string"
        },
        "town": {
          "type": "string"
        },
        "township": {
          "type": "string"
        },
        "village": {
          "type": "string"
        },
        "hamlet": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "isolated_dwelling": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "road": {
          "type": "string"
        },
        "footway": {
          "type": "string"
        },
        "pedestrian": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "house_number": {
          "type": "string"
        },
        "house_name": {
          "type": "string"
        },
        "old_name": {
          "type": "string"
        },
        "other": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "address_line1": {
          "type": "string"
        },
        "address_line2": {
          "type": "string"
        },
        "unlocode": {
          "type": "string"
        },
        "iso3166_2": {
          "type": "string"
        },
        "iso3166_2_sublevel": {
          "type": "string"
        },
        "iso3166_sublevel": {
          "type": "string"
        },
        "plus_code": {
          "type": "string"
        },
        "plus_code_short": {
          "type": "string"
        },
        "postcodes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "other_names": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "parent_as_place_id": {
          "type": "boolean"
        },
        "timezone": {
          "$ref": "#/$defs/PlaceDetailsTimezoneOutput"
        },
        "population": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "#/$defs/PlaceDetailsWikiPopulation"
            }
          ]
        },
        "distance": {
          "type": "number"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "datasource": {
          "$ref": "#/$defs/PlaceDetailsPublicDatasource"
        },
        "mappedTo": {
          "type": "object",
          "properties": {
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            }
          }
        },
        "place_id": {
          "type": "string",
          "minLength": 3,
          "maxLength": 2048
        },
        "website": {
          "type": "string"
        },
        "opening_hours": {
          "type": "string"
        },
        "opening_hours_covid19": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "branch": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "craft": {
          "type": "string"
        },
        "ref": {
          "type": "string"
        },
        "int_ref": {
          "type": "string"
        },
        "ele": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "description": "Elevation when available."
        },
        "color": {
          "type": "string"
        },
        "water_source": {
          "type": "string"
        },
        "website_other": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "website_international": {
          "$ref": "#/$defs/PlaceDetailsStringMap"
        },
        "description_international": {
          "$ref": "#/$defs/PlaceDetailsStringMap"
        },
        "name_international": {
          "$ref": "#/$defs/PlaceDetailsStringMap"
        },
        "cuisine_international": {
          "$ref": "#/$defs/PlaceDetailsStringMap"
        },
        "ref_other": {
          "$ref": "#/$defs/PlaceDetailsStringMap"
        },
        "disused": {
          "type": "boolean"
        },
        "commercial": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
            }
          ]
        },
        "payment_options": {
          "$ref": "#/$defs/PlaceDetailsBooleanMap"
        },
        "recycling_options": {
          "$ref": "#/$defs/PlaceDetailsBooleanMap"
        },
        "fuel_options": {
          "$ref": "#/$defs/PlaceDetailsBooleanMap"
        },
        "targeted_for": {
          "$ref": "#/$defs/PlaceDetailsBooleanMap"
        },
        "socket_options": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
          }
        },
        "brand_details": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "operator_details": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "network_details": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "owner_details": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "name_other": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "contact": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "facilities": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "wiki_and_media": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "historic": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "heritage": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "artwork": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "accommodation": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "catering": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "parking": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "airport": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "power": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "way": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "building": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "place_of_worship": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "fire_hydrant": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "defibrilator": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "restrictions": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "production": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailGroup"
        },
        "feature_type": {
          "$ref": "#/$defs/PlaceDetailsPlaceDetailsFeatureId"
        },
        "area": {
          "type": "number"
        },
        "type": {
          "type": "string"
        },
        "range": {
          "type": "number"
        },
        "access_details": {
          "type": "object",
          "additionalProperties": true
        },
        "wikidata": {
          "type": "string"
        }
      }
    },
    "PlaceDetailsPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Point"
        },
        "coordinates": {
          "$ref": "#/$defs/PlaceDetailsPosition"
        }
      }
    },
    "PlaceDetailsPolygonGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Polygon"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 4,
            "items": {
              "$ref": "#/$defs/PlaceDetailsPosition"
            }
          }
        }
      }
    },
    "PlaceDetailsPosition": {
      "type": "array",
      "minItems": 2,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude."
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude."
        },
        {
          "type": "number",
          "description": "Optional altitude."
        }
      ],
      "items": {
        "not": {}
      }
    },
    "PlaceDetailsPublicDatasource": {
      "type": "object",
      "properties": {
        "sourcename": {
          "type": "string"
        },
        "attribution": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "PlaceDetailsStringMap": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "PlaceDetailsTimezoneOutput": {
      "type": "object",
      "required": [
        "name",
        "offset_STD",
        "offset_DST",
        "offset_STD_seconds",
        "offset_DST_seconds"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "name_alt": {
          "type": "string"
        },
        "country_codes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "offset_STD": {
          "type": "string"
        },
        "offset_DST": {
          "type": "string"
        },
        "offset_STD_seconds": {
          "type": "number"
        },
        "offset_DST_seconds": {
          "type": "number"
        },
        "abbreviation_STD": {
          "type": "string"
        },
        "abbreviation_DST": {
          "type": "string"
        }
      }
    },
    "PlaceDetailsWikiPopulation": {
      "type": "object",
      "required": [
        "actual",
        "by_years"
      ],
      "properties": {
        "actual": {
          "type": "string"
        },
        "by_years": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "PlaceInfoBooleanMap": {
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "PlaceInfoFeature": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "properties",
        "geometry"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/PlaceInfoPlaceInfoProperties"
        },
        "geometry": {
          "oneOf": [
            {
              "$ref": "#/$defs/PlaceInfoPointGeometry"
            },
            {
              "$ref": "#/$defs/PlaceInfoGenericGeometry"
            },
            {
              "$ref": "#/$defs/PlaceInfoGeometryCollection"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "PlaceInfoFeatureCollection": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlaceInfoFeature"
          }
        }
      }
    },
    "PlaceInfoGenericGeometry": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "LineString",
            "Polygon",
            "MultiPoint",
            "MultiLineString",
            "MultiPolygon"
          ]
        },
        "coordinates": {
          "type": "array",
          "items": {}
        }
      }
    },
    "PlaceInfoGeometryCollection": {
      "type": "object",
      "required": [
        "type",
        "geometries"
      ],
      "properties": {
        "type": {
          "const": "GeometryCollection"
        },
        "geometries": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/PlaceInfoPointGeometry"
              },
              {
                "$ref": "#/$defs/PlaceInfoGenericGeometry"
              },
              {
                "$ref": "#/$defs/PlaceInfoGeometryCollection"
              }
            ]
          }
        }
      }
    },
    "PlaceInfoPlaceDetailGroup": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/PlaceInfoPlaceDetailValue"
      }
    },
    "PlaceInfoPlaceDetailValue": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlaceInfoPlaceDetailValue"
          }
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PlaceInfoPlaceDetailValue"
          }
        }
      ]
    },
    "PlaceInfoPlaceInfoProperties": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "continent": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_COG": {
          "type": "string"
        },
        "department_COG": {
          "type": "string"
        },
        "state_district": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "arrondissement": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "county_code": {
          "type": "string"
        },
        "county_district": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "city_district": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "postal_code": {
          "type": "string"
        },
        "openGeoDB:postal_codes": {
          "type": "string"
        },
        "district": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "municipality": {
          "type": "string"
        },
        "commune": {
          "type": "string"
        },
        "subdistrict": {
          "type": "string"
        },
        "city_block": {
          "type": "string"
        },
        "neighbourhood": {
          "type": "string"
        },
        "quarter": {
          "type": "string"
        },
        "section": {
          "type": "string"
        },
        "sector": {
          "type": "string"
        },
        "subdivision": {
          "type": "string"
        },
        "croft": {
          "type": "string"
        },
        "allotments": {
          "type": "string"
        },
        "residental": {
          "type": "string"
        },
        "farm": {
          "type": "string"
        },
        "farmyard": {
          "type": "string"
        },
        "industrial": {
          "type": "string"
        },
        "retail": {
          "type": "string"
        },
        "borough": {
          "type": "string"
        },
        "town": {
          "type": "string"
        },
        "township": {
          "type": "string"
        },
        "village": {
          "type": "string"
        },
        "hamlet": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "isolated_dwelling": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "road": {
          "type": "string"
        },
        "footway": {
          "type": "string"
        },
        "pedestrian": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "house_number": {
          "type": "string"
        },
        "house_name": {
          "type": "string"
        },
        "old_name": {
          "type": "string"
        },
        "other": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "address_line1": {
          "type": "string"
        },
        "address_line2": {
          "type": "string"
        },
        "unlocode": {
          "type": "string"
        },
        "iso3166_2": {
          "type": "string"
        },
        "iso3166_2_sublevel": {
          "type": "string"
        },
        "iso3166_sublevel": {
          "type": "string"
        },
        "plus_code": {
          "type": "string"
        },
        "plus_code_short": {
          "type": "string"
        },
        "postcodes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "other_names": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "parent_as_place_id": {
          "type": "boolean"
        },
        "timezone": {
          "$ref": "#/$defs/PlaceInfoTimezoneOutput"
        },
        "population": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "#/$defs/PlaceInfoWikiPopulation"
            }
          ]
        },
        "distance": {
          "type": "number"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "datasource": {
          "$ref": "#/$defs/PlaceInfoPlacesDatasource"
        },
        "mappedTo": {
          "type": "object",
          "properties": {
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            }
          }
        },
        "place_id": {
          "type": "string",
          "minLength": 3,
          "maxLength": 2048
        },
        "website": {
          "type": "string"
        },
        "opening_hours": {
          "type": "string"
        },
        "opening_hours_covid19": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "branch": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "craft": {
          "type": "string"
        },
        "ref": {
          "type": "string"
        },
        "int_ref": {
          "type": "string"
        },
        "ele": {
          "type": "string"
        },
        "color": {
          "type": "string"
        },
        "water_source": {
          "type": "string"
        },
        "website_other": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "website_international": {
          "$ref": "#/$defs/PlaceInfoStringMap"
        },
        "description_international": {
          "$ref": "#/$defs/PlaceInfoStringMap"
        },
        "name_international": {
          "$ref": "#/$defs/PlaceInfoStringMap"
        },
        "cuisine_international": {
          "$ref": "#/$defs/PlaceInfoStringMap"
        },
        "ref_other": {
          "$ref": "#/$defs/PlaceInfoStringMap"
        },
        "disused": {
          "type": "boolean"
        },
        "commercial": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
            }
          ]
        },
        "payment_options": {
          "$ref": "#/$defs/PlaceInfoBooleanMap"
        },
        "recycling_options": {
          "$ref": "#/$defs/PlaceInfoBooleanMap"
        },
        "fuel_options": {
          "$ref": "#/$defs/PlaceInfoBooleanMap"
        },
        "targeted_for": {
          "$ref": "#/$defs/PlaceInfoBooleanMap"
        },
        "socket_options": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
          }
        },
        "brand_details": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "operator_details": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "network_details": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "owner_details": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "name_other": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "contact": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "facilities": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "wiki_and_media": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "historic": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "heritage": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "artwork": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "accommodation": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "catering": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "parking": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "airport": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "power": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "way": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "building": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "place_of_worship": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "fire_hydrant": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "defibrilator": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "restrictions": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        },
        "production": {
          "$ref": "#/$defs/PlaceInfoPlaceDetailGroup"
        }
      }
    },
    "PlaceInfoPlacesDatasource": {
      "type": "object",
      "required": [
        "raw"
      ],
      "properties": {
        "sourcename": {
          "type": "string"
        },
        "attribution": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "raw": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "PlaceInfoPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Point"
        },
        "coordinates": {
          "$ref": "#/$defs/PlaceInfoPosition"
        }
      }
    },
    "PlaceInfoPosition": {
      "type": "array",
      "minItems": 2,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        {
          "type": "number"
        }
      ],
      "items": {
        "not": {}
      }
    },
    "PlaceInfoStringMap": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "PlaceInfoTimezoneOutput": {
      "type": "object",
      "required": [
        "name",
        "offset_STD",
        "offset_DST",
        "offset_STD_seconds",
        "offset_DST_seconds"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "name_alt": {
          "type": "string"
        },
        "country_codes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "offset_STD": {
          "type": "string"
        },
        "offset_DST": {
          "type": "string"
        },
        "offset_STD_seconds": {
          "type": "number"
        },
        "offset_DST_seconds": {
          "type": "number"
        },
        "abbreviation_STD": {
          "type": "string"
        },
        "abbreviation_DST": {
          "type": "string"
        }
      }
    },
    "PlaceInfoWikiPopulation": {
      "type": "object",
      "required": [
        "actual",
        "by_years"
      ],
      "properties": {
        "actual": {
          "type": "string"
        },
        "by_years": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "PlacesBooleanMap": {
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "PlacesFeature": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "properties",
        "geometry"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/PlacesPlaceProperties"
        },
        "geometry": {
          "oneOf": [
            {
              "$ref": "#/$defs/PlacesPointGeometry"
            },
            {
              "$ref": "#/$defs/PlacesGenericGeometry"
            },
            {
              "$ref": "#/$defs/PlacesGeometryCollection"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "PlacesFeatureCollection": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "features"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlacesFeature"
          }
        }
      }
    },
    "PlacesGenericGeometry": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "LineString",
            "Polygon",
            "MultiPoint",
            "MultiLineString",
            "MultiPolygon"
          ]
        },
        "coordinates": {
          "type": "array",
          "items": {}
        }
      }
    },
    "PlacesGeometryCollection": {
      "type": "object",
      "required": [
        "type",
        "geometries"
      ],
      "properties": {
        "type": {
          "const": "GeometryCollection"
        },
        "geometries": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/PlacesPointGeometry"
              },
              {
                "$ref": "#/$defs/PlacesGenericGeometry"
              },
              {
                "$ref": "#/$defs/PlacesGeometryCollection"
              }
            ]
          }
        }
      }
    },
    "PlacesPlaceDetailGroup": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/PlacesPlaceDetailValue"
      }
    },
    "PlacesPlaceDetailValue": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PlacesPlaceDetailValue"
          }
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PlacesPlaceDetailValue"
          }
        }
      ]
    },
    "PlacesPlaceProperties": {
      "type": "object",
      "description": "Common properties and known place-detail fields returned by the Places API. Additional category-specific properties may appear when available.",
      "additionalProperties": true,
      "properties": {
        "name": {
          "type": "string"
        },
        "continent": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_COG": {
          "type": "string"
        },
        "department_COG": {
          "type": "string"
        },
        "state_district": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "arrondissement": {
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "county_code": {
          "type": "string"
        },
        "county_district": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "city_district": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "postal_code": {
          "type": "string"
        },
        "openGeoDB:postal_codes": {
          "type": "string"
        },
        "district": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "municipality": {
          "type": "string"
        },
        "commune": {
          "type": "string"
        },
        "subdistrict": {
          "type": "string"
        },
        "city_block": {
          "type": "string"
        },
        "neighbourhood": {
          "type": "string"
        },
        "quarter": {
          "type": "string"
        },
        "section": {
          "type": "string"
        },
        "sector": {
          "type": "string"
        },
        "subdivision": {
          "type": "string"
        },
        "croft": {
          "type": "string"
        },
        "allotments": {
          "type": "string"
        },
        "residental": {
          "type": "string"
        },
        "farm": {
          "type": "string"
        },
        "farmyard": {
          "type": "string"
        },
        "industrial": {
          "type": "string"
        },
        "retail": {
          "type": "string"
        },
        "borough": {
          "type": "string"
        },
        "town": {
          "type": "string"
        },
        "township": {
          "type": "string"
        },
        "village": {
          "type": "string"
        },
        "hamlet": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "isolated_dwelling": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "road": {
          "type": "string"
        },
        "footway": {
          "type": "string"
        },
        "pedestrian": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "housenumber": {
          "type": "string"
        },
        "house_number": {
          "type": "string"
        },
        "house_name": {
          "type": "string"
        },
        "old_name": {
          "type": "string"
        },
        "other": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "address_line1": {
          "type": "string"
        },
        "address_line2": {
          "type": "string"
        },
        "unlocode": {
          "type": "string"
        },
        "iso3166_2": {
          "type": "string"
        },
        "iso3166_2_sublevel": {
          "type": "string"
        },
        "iso3166_sublevel": {
          "type": "string"
        },
        "plus_code": {
          "type": "string"
        },
        "plus_code_short": {
          "type": "string"
        },
        "postcodes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "other_names": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "parent_as_place_id": {
          "type": "boolean"
        },
        "timezone": {
          "$ref": "#/$defs/PlacesTimezoneOutput"
        },
        "population": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "#/$defs/PlacesWikiPopulation"
            }
          ]
        },
        "distance": {
          "type": "number"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "datasource": {
          "$ref": "#/$defs/PlacesPlacesDatasource"
        },
        "mappedTo": {
          "type": "object",
          "properties": {
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            }
          }
        },
        "place_id": {
          "type": "string",
          "minLength": 3,
          "maxLength": 2048
        },
        "website": {
          "type": "string"
        },
        "opening_hours": {
          "type": "string"
        },
        "opening_hours_covid19": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "branch": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "craft": {
          "type": "string"
        },
        "ref": {
          "type": "string"
        },
        "int_ref": {
          "type": "string"
        },
        "ele": {
          "type": "string"
        },
        "color": {
          "type": "string"
        },
        "water_source": {
          "type": "string"
        },
        "website_other": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "website_international": {
          "$ref": "#/$defs/PlacesStringMap"
        },
        "description_international": {
          "$ref": "#/$defs/PlacesStringMap"
        },
        "name_international": {
          "$ref": "#/$defs/PlacesStringMap"
        },
        "cuisine_international": {
          "$ref": "#/$defs/PlacesStringMap"
        },
        "ref_other": {
          "$ref": "#/$defs/PlacesStringMap"
        },
        "disused": {
          "type": "boolean"
        },
        "commercial": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/PlacesPlaceDetailGroup"
            }
          ]
        },
        "payment_options": {
          "$ref": "#/$defs/PlacesBooleanMap"
        },
        "recycling_options": {
          "$ref": "#/$defs/PlacesBooleanMap"
        },
        "fuel_options": {
          "$ref": "#/$defs/PlacesBooleanMap"
        },
        "targeted_for": {
          "$ref": "#/$defs/PlacesBooleanMap"
        },
        "socket_options": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/PlacesPlaceDetailGroup"
          }
        },
        "brand_details": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "operator_details": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "network_details": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "owner_details": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "name_other": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "contact": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "facilities": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "wiki_and_media": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "historic": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "heritage": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "artwork": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "accommodation": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "catering": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "parking": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "airport": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "power": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "way": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "building": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "place_of_worship": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "fire_hydrant": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "defibrilator": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "restrictions": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        },
        "production": {
          "$ref": "#/$defs/PlacesPlaceDetailGroup"
        }
      }
    },
    "PlacesPlacesDatasource": {
      "type": "object",
      "required": [
        "raw"
      ],
      "properties": {
        "sourcename": {
          "type": "string"
        },
        "attribution": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "raw": {
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "PlacesPointGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Point"
        },
        "coordinates": {
          "$ref": "#/$defs/PlacesPosition"
        }
      }
    },
    "PlacesPosition": {
      "type": "array",
      "minItems": 2,
      "maxItems": 3,
      "prefixItems": [
        {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        {
          "type": "number"
        }
      ],
      "items": {
        "not": {}
      }
    },
    "PlacesStringMap": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "PlacesTimezoneOutput": {
      "type": "object",
      "required": [
        "name",
        "offset_STD",
        "offset_DST",
        "offset_STD_seconds",
        "offset_DST_seconds"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "name_alt": {
          "type": "string"
        },
        "country_codes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "offset_STD": {
          "type": "string"
        },
        "offset_DST": {
          "type": "string"
        },
        "offset_STD_seconds": {
          "type": "number"
        },
        "offset_DST_seconds": {
          "type": "number"
        },
        "abbreviation_STD": {
          "type": "string"
        },
        "abbreviation_DST": {
          "type": "string"
        }
      }
    },
    "PlacesWikiPopulation": {
      "type": "object",
      "required": [
        "actual",
        "by_years"
      ],
      "properties": {
        "actual": {
          "type": "string"
        },
        "by_years": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "PolygonGeometry": {
      "type": "object",
      "required": [
        "type",
        "coordinates"
      ],
      "properties": {
        "type": {
          "const": "Polygon"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 4,
            "items": {
              "$ref": "#/$defs/LongitudeLatitude"
            }
          }
        }
      }
    },
    "RouteAdminArea": {
      "type": "object",
      "required": [
        "country_code"
      ],
      "properties": {
        "country_code": {
          "type": "string"
        },
        "country_text": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_text": {
          "type": "string"
        }
      }
    },
    "RouteAdminAreaCrossing": {
      "type": "object",
      "required": [
        "from_admin_index",
        "to_admin_index",
        "begin_shape_index",
        "end_shape_index"
      ],
      "properties": {
        "from_admin_index": {
          "type": "integer"
        },
        "to_admin_index": {
          "type": "integer"
        },
        "begin_shape_index": {
          "type": "integer"
        },
        "end_shape_index": {
          "type": "integer"
        }
      }
    },
    "RouteInstruction": {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "transition_instruction": {
          "type": "string"
        },
        "pre_transition_instruction": {
          "type": "string"
        },
        "post_transition_instruction": {
          "type": "string"
        },
        "contains_next_instruction": {
          "type": "boolean"
        },
        "streets": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exit_number": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exit_road_name": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exit_towards": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "roundabout_exit": {
          "type": "number"
        }
      }
    },
    "RouteLeg": {
      "type": "object",
      "required": [
        "time",
        "distance",
        "steps"
      ],
      "properties": {
        "time": {
          "type": "number"
        },
        "distance": {
          "type": "number"
        },
        "steps": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteStep"
          }
        },
        "country_code": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "elevation": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "elevation_range": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": {
              "not": {}
            }
          }
        },
        "agency_name": {
          "type": "string"
        },
        "agency_id": {
          "type": "string"
        },
        "agency_url": {
          "type": "string"
        },
        "route_id": {
          "type": "string"
        },
        "route_short_name": {
          "type": "string"
        },
        "route_long_name": {
          "type": "string"
        },
        "trip_id": {
          "type": "string"
        }
      }
    },
    "RouteMatrixCell": {
      "type": "object",
      "required": [
        "distance",
        "time",
        "source_index",
        "target_index"
      ],
      "properties": {
        "distance": {
          "type": [
            "number",
            "null"
          ]
        },
        "time": {
          "type": [
            "number",
            "null"
          ]
        },
        "source_index": {
          "type": "integer"
        },
        "target_index": {
          "type": "integer"
        }
      }
    },
    "RouteMatrixLocation": {
      "type": "object",
      "required": [
        "original_location"
      ],
      "properties": {
        "original_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        }
      }
    },
    "RouteMatrixResponse": {
      "type": "object",
      "required": [
        "sources",
        "targets",
        "sources_to_targets",
        "units",
        "distance_units",
        "mode"
      ],
      "properties": {
        "sources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteMatrixLocation"
          }
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteMatrixLocation"
          }
        },
        "sources_to_targets": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/RouteMatrixCell"
            }
          }
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "distance_units": {
          "type": "string",
          "enum": [
            "meters",
            "miles"
          ]
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "type": {
          "type": "string",
          "enum": [
            "balanced",
            "short",
            "less_maneuvers"
          ]
        },
        "max_speed": {
          "type": "number"
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        }
      }
    },
    "RoutePlannerAction": {
      "type": "object",
      "required": [
        "index",
        "type",
        "start_time",
        "duration"
      ],
      "properties": {
        "index": {
          "type": "integer"
        },
        "type": {
          "type": "string",
          "enum": [
            "start",
            "end",
            "job",
            "pickup",
            "delivery",
            "break"
          ]
        },
        "start_time": {
          "type": "number"
        },
        "duration": {
          "type": "number"
        },
        "location_index": {
          "type": "integer"
        },
        "location_id": {
          "type": "string"
        },
        "shipment_id": {
          "type": "string"
        },
        "shipment_index": {
          "type": "integer"
        },
        "job_id": {
          "type": "string"
        },
        "job_index": {
          "type": "integer"
        },
        "waypoint_index": {
          "type": "integer"
        }
      }
    },
    "RoutePlannerCollectionProperties": {
      "type": "object",
      "required": [
        "mode",
        "params"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "params": {
          "$ref": "#/$defs/RoutePlannerParams"
        },
        "issues": {
          "$ref": "#/$defs/RoutePlannerIssues"
        }
      }
    },
    "RoutePlannerDataError": {
      "type": "object",
      "required": [
        "error",
        "message"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "RoutePlannerFeature": {
      "type": "object",
      "required": [
        "type",
        "geometry",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "geometry": {
          "$ref": "#/$defs/MultiLineStringGeometry"
        },
        "properties": {
          "$ref": "#/$defs/RoutePlannerFeatureProperties"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "RoutePlannerFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerFeature"
          }
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        },
        "properties": {
          "$ref": "#/$defs/RoutePlannerCollectionProperties"
        }
      }
    },
    "RoutePlannerFeatureProperties": {
      "type": "object",
      "required": [
        "agent_index",
        "time",
        "start_time",
        "end_time",
        "distance",
        "legs",
        "mode",
        "actions",
        "waypoints"
      ],
      "properties": {
        "agent_index": {
          "type": "integer"
        },
        "agent_id": {
          "type": "string"
        },
        "time": {
          "type": "number"
        },
        "start_time": {
          "type": "number"
        },
        "end_time": {
          "type": "number"
        },
        "distance": {
          "type": "number"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerLeg"
          }
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerAction"
          }
        },
        "waypoints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerWaypoint"
          }
        }
      }
    },
    "RoutePlannerIssues": {
      "type": "object",
      "required": [],
      "properties": {
        "unassigned_shipments": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "unassigned_agents": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "unassigned_jobs": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      }
    },
    "RoutePlannerLeg": {
      "type": "object",
      "required": [
        "time",
        "distance",
        "from_waypoint_index",
        "to_waypoint_index",
        "steps"
      ],
      "properties": {
        "time": {
          "type": [
            "number",
            "null"
          ]
        },
        "distance": {
          "type": [
            "number",
            "null"
          ]
        },
        "from_waypoint_index": {
          "type": "integer"
        },
        "to_waypoint_index": {
          "type": "integer"
        },
        "steps": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerStep"
          }
        }
      }
    },
    "RoutePlannerParamAgent": {
      "type": "object",
      "required": [],
      "properties": {
        "id": {
          "type": "string"
        },
        "start_location_index": {
          "type": "integer"
        },
        "start_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "end_location_index": {
          "type": "integer"
        },
        "end_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "delivery_capacity": {
          "type": "number"
        },
        "pickup_capacity": {
          "type": "number"
        },
        "capabilities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "time_windows": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": {
              "not": {}
            }
          }
        },
        "breaks": {
          "$ref": "#/$defs/JsonValue"
        }
      }
    },
    "RoutePlannerParamJob": {
      "type": "object",
      "required": [],
      "properties": {
        "id": {
          "type": "string"
        },
        "location_index": {
          "type": "integer"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "priority": {
          "type": "number"
        },
        "duration": {
          "type": "number"
        },
        "time_windows": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": {
              "not": {}
            }
          }
        },
        "delivery_amount": {
          "type": "number"
        },
        "pickup_amount": {
          "type": "number"
        },
        "requirements": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RoutePlannerParamLocation": {
      "type": "object",
      "required": [
        "id",
        "location"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        }
      }
    },
    "RoutePlannerParamShipment": {
      "type": "object",
      "required": [
        "id",
        "pickup",
        "delivery",
        "priority",
        "amount",
        "requirements"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "pickup": {
          "$ref": "#/$defs/RoutePlannerParamStop"
        },
        "delivery": {
          "$ref": "#/$defs/RoutePlannerParamStop"
        },
        "priority": {
          "type": "number"
        },
        "amount": {
          "type": "number"
        },
        "requirements": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RoutePlannerParamStop": {
      "type": "object",
      "required": [
        "location_index",
        "location",
        "duration",
        "time_windows"
      ],
      "properties": {
        "location_index": {
          "type": "integer"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "duration": {
          "type": "number"
        },
        "time_windows": {
          "type": "array",
          "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "items": {
              "not": {}
            }
          }
        }
      }
    },
    "RoutePlannerParams": {
      "type": "object",
      "required": [
        "locations",
        "agents",
        "mode"
      ],
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamLocation"
          }
        },
        "agents": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamAgent"
          }
        },
        "jobs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamJob"
          }
        },
        "shipments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerParamShipment"
          }
        },
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "type": {
          "type": "string",
          "enum": [
            "balanced",
            "short",
            "less_maneuvers"
          ]
        },
        "max_speed": {
          "type": "number"
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        }
      }
    },
    "RoutePlannerResponse": {
      "oneOf": [
        {
          "$ref": "#/$defs/RoutePlannerFeatureCollection"
        },
        {
          "$ref": "#/$defs/RoutePlannerDataError"
        }
      ]
    },
    "RoutePlannerStep": {
      "type": "object",
      "required": [
        "from_index",
        "to_index",
        "time",
        "distance"
      ],
      "properties": {
        "from_index": {
          "type": "integer"
        },
        "to_index": {
          "type": "integer"
        },
        "time": {
          "type": [
            "number",
            "null"
          ]
        },
        "distance": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "RoutePlannerWaypoint": {
      "type": "object",
      "required": [
        "original_location",
        "location",
        "start_time",
        "duration",
        "actions"
      ],
      "properties": {
        "next_leg_index": {
          "type": "integer"
        },
        "prev_leg_index": {
          "type": "integer"
        },
        "original_location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        },
        "start_time": {
          "type": "number"
        },
        "duration": {
          "type": "number"
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutePlannerAction"
          }
        },
        "original_location_index": {
          "type": "integer"
        },
        "original_location_id": {
          "type": "string"
        }
      }
    },
    "RouteStep": {
      "type": "object",
      "required": [
        "from_index",
        "to_index",
        "time",
        "distance"
      ],
      "properties": {
        "from_index": {
          "type": "integer"
        },
        "to_index": {
          "type": "integer"
        },
        "time": {
          "type": "number"
        },
        "distance": {
          "type": "number"
        },
        "instruction": {
          "$ref": "#/$defs/RouteInstruction"
        },
        "toll": {
          "type": "boolean"
        },
        "ferry": {
          "type": "boolean"
        },
        "bridge": {
          "type": "boolean"
        },
        "tunnel": {
          "type": "boolean"
        },
        "elevation": {
          "type": "number"
        },
        "elevation_gain": {
          "type": "number"
        },
        "max_elevation": {
          "type": "number"
        },
        "min_elevation": {
          "type": "number"
        },
        "admin_area": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "speed": {
          "type": "number"
        },
        "speed_limit": {
          "type": "number"
        },
        "truck_limit": {
          "type": "number"
        },
        "surface": {
          "type": "string"
        },
        "lane_count": {
          "type": "number"
        },
        "road_class": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "roundabout": {
          "type": "boolean"
        },
        "rightside": {
          "type": "boolean"
        },
        "traversability": {
          "type": "string"
        },
        "from_stop_id": {
          "type": "string"
        },
        "from_stop_name": {
          "type": "string"
        },
        "to_stop_id": {
          "type": "string"
        },
        "to_stop_name": {
          "type": "string"
        }
      }
    },
    "RouteWaypoint": {
      "oneOf": [
        {
          "$ref": "#/$defs/SnappedRouteWaypoint"
        },
        {
          "$ref": "#/$defs/InputRouteWaypoint"
        }
      ]
    },
    "RoutingFeature": {
      "type": "object",
      "required": [
        "type",
        "geometry",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "Feature"
        },
        "geometry": {
          "$ref": "#/$defs/MultiLineStringGeometry"
        },
        "properties": {
          "$ref": "#/$defs/RoutingFeatureProperties"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "RoutingFeatureCollection": {
      "type": "object",
      "required": [
        "type",
        "features",
        "properties"
      ],
      "properties": {
        "type": {
          "const": "FeatureCollection"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutingFeature"
          }
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        },
        "properties": {
          "$ref": "#/$defs/RoutingResponseOptions"
        }
      }
    },
    "RoutingFeatureProperties": {
      "type": "object",
      "required": [
        "mode",
        "units",
        "waypoints",
        "distance",
        "time",
        "legs"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "waypoints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteWaypoint"
          }
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "instruction_details",
              "route_details",
              "elevation",
              "admin_areas"
            ]
          }
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        },
        "intermediate_waypoint_mode": {
          "type": "string",
          "enum": [
            "stopover",
            "through_stop",
            "pass_through"
          ]
        },
        "distance": {
          "type": "number"
        },
        "time": {
          "type": "number"
        },
        "distance_units": {
          "type": "string",
          "enum": [
            "meters",
            "miles"
          ]
        },
        "max_speed": {
          "type": "number"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteLeg"
          }
        },
        "country_code": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "admin_areas": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteAdminArea"
          }
        },
        "admin_area_crossings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteAdminAreaCrossing"
          }
        },
        "toll": {
          "type": "boolean"
        },
        "ferry": {
          "type": "boolean"
        }
      }
    },
    "RoutingJsonPoint": {
      "type": "object",
      "required": [
        "lon",
        "lat"
      ],
      "properties": {
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        }
      }
    },
    "RoutingJsonResponse": {
      "type": "object",
      "required": [
        "results",
        "properties"
      ],
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoutingJsonResult"
          }
        },
        "properties": {
          "$ref": "#/$defs/RoutingResponseOptions"
        },
        "bbox": {
          "type": "array",
          "minItems": 4,
          "maxItems": 6,
          "items": {
            "type": "number"
          }
        }
      }
    },
    "RoutingJsonResult": {
      "type": "object",
      "required": [
        "mode",
        "units",
        "waypoints",
        "distance",
        "time",
        "legs",
        "geometry"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "waypoints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteWaypoint"
          }
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "instruction_details",
              "route_details",
              "elevation",
              "admin_areas"
            ]
          }
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        },
        "intermediate_waypoint_mode": {
          "type": "string",
          "enum": [
            "stopover",
            "through_stop",
            "pass_through"
          ]
        },
        "distance": {
          "type": "number"
        },
        "time": {
          "type": "number"
        },
        "distance_units": {
          "type": "string",
          "enum": [
            "meters",
            "miles"
          ]
        },
        "max_speed": {
          "type": "number"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteLeg"
          }
        },
        "country_code": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "admin_areas": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteAdminArea"
          }
        },
        "admin_area_crossings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteAdminAreaCrossing"
          }
        },
        "toll": {
          "type": "boolean"
        },
        "ferry": {
          "type": "boolean"
        },
        "geometry": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/RoutingJsonPoint"
            }
          }
        }
      }
    },
    "RoutingResponseOptions": {
      "type": "object",
      "required": [
        "mode",
        "units",
        "waypoints"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "walk",
            "hike",
            "scooter",
            "motorcycle",
            "drive",
            "light_truck",
            "bicycle",
            "mountain_bike",
            "road_bike",
            "bus",
            "medium_truck",
            "truck",
            "truck_dangerous_goods",
            "heavy_truck",
            "long_truck",
            "transit",
            "approximated_transit"
          ]
        },
        "units": {
          "type": "string",
          "enum": [
            "metric",
            "imperial"
          ]
        },
        "waypoints": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RouteWaypoint"
          }
        },
        "avoid": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Avoid"
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "instruction_details",
              "route_details",
              "elevation",
              "admin_areas"
            ]
          }
        },
        "traffic": {
          "type": "string",
          "enum": [
            "free_flow",
            "approximated"
          ]
        },
        "intermediate_waypoint_mode": {
          "type": "string",
          "enum": [
            "stopover",
            "through_stop",
            "pass_through"
          ]
        }
      }
    },
    "SnappedRouteWaypoint": {
      "type": "object",
      "required": [
        "location"
      ],
      "properties": {
        "original_index": {
          "type": "integer"
        },
        "location": {
          "$ref": "#/$defs/LongitudeLatitude"
        }
      }
    }
  }
}