{ "$id": "https://raw.githubusercontent.com/public-transport/transport-apis/v1/schema.json#", "$schema": "http://json-schema.org/draft-07/schema#", "description": "public transport API description", "type": "object", "required": [ "name", "type", "supportedLanguages", "coverage", "options" ], "properties": { "name": { "type": "string" }, "type": { "type": "object", "propertyNames": { "enum": [ "efa", "hafasMgate", "hafasQuery", "navitia", "otpGraphQl", "otpRest", "trias", "motis" ] }, "additionalProperties": { "type": "boolean" } }, "supportedLanguages": { "type": "array", "items": { "type": "string", "pattern": "^[a-z][a-z]$", "description": "ISO-639-1 language code" } }, "coverage": { "type": "object", "minProperties": 1, "additionalProperties": false, "properties": { "realtimeCoverage": { "$ref": "#/definitions/coverage" }, "regularCoverage": { "$ref": "#/definitions/coverage" }, "anyCoverage": { "$ref": "#/definitions/coverage" } } }, "attribution": { "type": "object", "anyOf": [ { "$ref": "#/definitions/attribution_opendata_specific" }, { "$ref": "#/definitions/attribution_opendata_mixed" }, { "$ref": "#/definitions/attribution_proprietary" } ] }, "options": { "type": "object" } }, "definitions": { "coverage": { "type": "object", "minProperties": 1, "additionalProperties": false, "properties": { "area": { "oneOf": [ { "$ref": "#/definitions/coverage_geojson_polygon" }, { "$ref": "#/definitions/coverage_geojson_multipolygon" } ] }, "region": { "$ref": "#/definitions/coverage_region" } } }, "coverage_geojson_polygon": { "type": "object", "required": [ "type", "coordinates" ], "properties": { "type": { "type": "string", "enum": [ "Polygon" ] }, "coordinates": { "type": "array", "items": { "type": "array", "minItems": 4, "items": { "type": "array", "minItems": 2, "items": { "type": "number" } } } }, "bbox": { "type": "array", "minItems": 4, "items": { "type": "number" } } } }, "coverage_geojson_multipolygon": { "type": "object", "required": [ "type", "coordinates" ], "properties": { "type": { "type": "string", "enum": [ "MultiPolygon" ] }, "coordinates": { "type": "array", "items": { "type": "array", "items": { "type": "array", "minItems": 4, "items": { "type": "array", "minItems": 2, "items": { "type": "number" } } } } }, "bbox": { "type": "array", "minItems": 4, "items": { "type": "number" } } } }, "coverage_region": { "type": "array", "items": { "type": "string", "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,5})?$", "description": "ISO-3166-1/2 country/region code" }, "minItems": 1 }, "attribution_opendata_mixed": { "type": "object", "required": [ "mixedLicenses", "name" ], "properties": { "name": { "type": "string" }, "homepage": { "type": "string" }, "mixedLicenses": { "type": "boolean" } } }, "attribution_opendata_specific": { "type": "object", "required": [ "license", "name" ], "properties": { "license": { "type": "string", "description": "Open Definition license ID or SPDX license id" }, "name": { "type": "string" }, "homepage": { "type": "string" }, "mixedLicenses": { "type": "boolean" } } }, "attribution_proprietary": { "type": "object", "required": [ "isProprietary" ], "properties": { "isProprietary": { "type": "boolean" } } } } }