{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://otranspo.ca/schemas/public-api/v1/station-board","type":"object","properties":{"schema":{"const":"https://otranspo.ca/schemas/public-api/v1/station-board"},"schemaVersion":{"const":"1.0.0"},"resourceType":{"const":"station_board"},"status":{"const":"available"},"evidenceState":{"const":"current_mutable_not_historical"},"generatedAt":{"type":"string","format":"date-time"},"method":{"type":"object","properties":{"id":{"const":"station-board-current-v1"},"scheduleScope":{"const":"current_service_day_next_four_hours"},"predictionRule":{"const":"healthy_operator_trip_update_only"},"ordering":{"const":"predicted_time_else_scheduled_time"},"documentation":{"const":"/en/methodology"}},"required":["id","scheduleScope","predictionRule","ordering","documentation"],"additionalProperties":true},"filters":{"type":"object","properties":{"departureLimit":{"type":"integer","minimum":1,"maximum":100},"returnedDepartures":{"type":"integer","minimum":0,"maximum":100}},"required":["departureLimit","returnedDepartures"],"additionalProperties":true},"sources":{"type":"object","properties":{"staticSchedule":{"type":"object","properties":{"kind":{"const":"originating_operator_static_gtfs"},"operatorIds":{"type":"array","items":{"type":"string","enum":["oc_transpo","sto"]}},"operatorSources":{"type":"array","items":{"type":"object","properties":{"operatorId":{"type":"string","enum":["oc_transpo","sto"]},"officialUrl":{"type":"string","format":"uri"},"termsUrl":{"type":"string","format":"uri"},"checksum":{"type":"null"},"checksumState":{"const":"not_exposed_by_station_board"},"importedAt":{"type":"null"},"importedAtState":{"const":"not_exposed_by_station_board"}},"required":["operatorId","officialUrl","termsUrl","checksum","checksumState","importedAt","importedAtState"],"additionalProperties":true}},"checksum":{"type":"null"},"checksumState":{"const":"not_exposed_by_station_board"},"importedAt":{"type":"null"},"importedAtState":{"const":"not_exposed_by_station_board"}},"required":["kind","operatorIds","operatorSources","checksum","checksumState","importedAt","importedAtState"],"additionalProperties":true},"realtime":{"type":"object","properties":{"kind":{"const":"originating_operator_gtfs_realtime"},"operatorIds":{"type":"array","items":{"type":"string","enum":["oc_transpo","sto"]}},"status":{"type":"string","enum":["healthy","stale","down","unavailable"]},"observedAt":{"type":"null"},"observedAtState":{"const":"not_exposed_by_station_board"}},"required":["kind","operatorIds","status","observedAt","observedAtState"],"additionalProperties":true}},"required":["staticSchedule","realtime"],"additionalProperties":true},"licence":{"type":"object","properties":{"identifier":{"type":"null"},"status":{"const":"not_recorded_by_upstream_gtfs_import"},"terms":{"const":"originating_operator_terms_apply"},"attributionRequired":{"const":true}},"required":["identifier","status","terms","attributionRequired"],"additionalProperties":true},"boardingMetadataEdition":{"const":"gtfs-static-boarding-v1"},"boardingAccessibility":{"type":"object","properties":{"edition":{"const":"gtfs-static-boarding-v1"},"source":{"const":"imported_gtfs_stops"},"sourceState":{"type":"string","enum":["available","partial","unavailable"]},"summary":{"type":"string","enum":["accessible","unavailable","unknown","mixed"]},"stationPublishedCode":{"anyOf":[{"type":"integer","enum":[0,1,2]},{"type":"null"}]},"stationRecordSourceState":{"type":"string","enum":["available","unavailable"]},"platforms":{"type":"array","items":{"type":"object","properties":{"stopId":{"type":"string","minLength":1},"publishedCode":{"anyOf":[{"type":"integer","enum":[0,1,2]},{"type":"null"}]},"effectiveCode":{"anyOf":[{"type":"integer","enum":[1,2]},{"type":"null"}]},"state":{"type":"string","enum":["accessible","unavailable","unknown"]},"origin":{"type":"string","enum":["platform","parent_station","unknown","source_unavailable"]}},"required":["stopId","publishedCode","effectiveCode","state","origin"],"additionalProperties":true}},"observedAt":{"type":"null"},"observedAtState":{"const":"not_exposed_by_station_identity"},"metadataFreshness":{"const":"unverified"},"generationId":{"type":"null"},"generationIdState":{"const":"not_exposed_by_station_identity"},"currentOperatingCondition":{"const":"unverified"}},"required":["edition","source","sourceState","summary","stationPublishedCode","stationRecordSourceState","platforms","observedAt","observedAtState","metadataFreshness","generationId","generationIdState","currentOperatingCondition"],"additionalProperties":true},"fieldAvailability":{"type":"object","properties":{"accessibility":{"type":"object","properties":{"status":{"const":"unavailable"},"reason":{"type":"string","enum":["not_published_by_agency","complete_accessible_route_not_verified"]}},"required":["status","reason"],"additionalProperties":true},"boardingMetadata":{"type":"object","properties":{"status":{"type":"string","enum":["available","partial","unavailable"]},"summary":{"type":"string","enum":["accessible","unavailable","unknown","mixed"]}},"required":["status","summary"],"additionalProperties":true},"railRealtime":{"type":"object","properties":{"status":{"type":"string","enum":["unavailable","not_applicable"]},"reason":{"anyOf":[{"const":"not_published_by_agency"},{"type":"null"}]}},"required":["status","reason"],"additionalProperties":true}},"required":["accessibility","railRealtime"],"additionalProperties":true},"station":{"type":"object","properties":{"id":{"type":"string"},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"operatorIds":{"type":"array","items":{"type":"string","enum":["oc_transpo","sto"]}},"platformCount":{"type":"integer","minimum":0},"platforms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","code","name","label"],"additionalProperties":true}}},"required":["id","code","name","operatorIds","platformCount","platforms"],"additionalProperties":true},"lines":{"type":"array","items":{"type":"object","properties":{"routeRecordId":{"type":"string"},"publicRouteId":{"type":"string"},"operatorId":{"type":"string","enum":["oc_transpo","sto"]},"operatorName":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"type":"number"},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"rail":{"type":"boolean"},"platformStopIds":{"type":"array","items":{"type":"string"}},"realtimeState":{"type":"string","enum":["published_for_mode","not_published_for_mode"]}},"required":["routeRecordId","publicRouteId","operatorId","operatorName","name","type","color","rail","platformStopIds","realtimeState"],"additionalProperties":true}},"departures":{"type":"array","items":{"type":"object","properties":{"tripId":{"type":"string"},"publicRouteId":{"type":"string"},"operatorId":{"type":"string","enum":["oc_transpo","sto"]},"operatorName":{"type":"string"},"routeName":{"anyOf":[{"type":"string"},{"type":"null"}]},"routeType":{"anyOf":[{"type":"number"},{"type":"null"}]},"routeColor":{"anyOf":[{"type":"string"},{"type":"null"}]},"headsign":{"anyOf":[{"type":"string"},{"type":"null"}]},"platformStopId":{"type":"string"},"platformLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"platformName":{"anyOf":[{"type":"string"},{"type":"null"}]},"scheduledAt":{"type":"string","format":"date-time"},"predictedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"delaySeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"cancelled":{"type":"boolean"},"timeSource":{"type":"string","enum":["observed","scheduled"]},"unavailablePredictionReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"rail":{"type":"boolean"}},"required":["tripId","publicRouteId","operatorId","operatorName","routeName","routeType","routeColor","headsign","platformStopId","platformLabel","platformName","scheduledAt","predictedAt","delaySeconds","cancelled","timeSource","unavailablePredictionReason","rail"],"additionalProperties":true}},"meta":{"type":"object","properties":{"schema":{"const":"https://otranspo.ca/schemas/response-meta/v1"},"schemaVersion":{"const":1},"surface":{"type":"string"},"requestId":{"type":"null"},"requestIdState":{"const":"header_only_for_cacheable_compatibility"},"generatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"freshnessSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"sourceState":{"type":"string","enum":["current","stale","unavailable","not_applicable","not_recorded"]},"qualityState":{"type":"string","enum":["complete","partial","unavailable","conflicted","quarantined"]},"evidenceIds":{"type":"array","items":{"type":"string"}},"missingSources":{"type":"array","items":{"type":"string"}},"reasonCodes":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"integer","minimum":1},"kind":{"type":"string"},"operatorId":{"anyOf":[{"type":"string"},{"type":"null"}]},"owner":{"type":"string"},"publicUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"publicUrlState":{"type":"string","enum":["recorded","not_recorded"]},"licence":{"type":"string"},"licenceState":{"type":"string","enum":["recorded","not_recorded"]},"cadence":{"type":"string"},"cadenceState":{"type":"string","enum":["recorded","not_recorded"]},"snapshotId":{"anyOf":[{"type":"string"},{"type":"null"}]},"checkedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"observedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"freshnessSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"freshnessState":{"type":"string","enum":["current","stale","unavailable","not_applicable","not_recorded"]},"qualityState":{"type":"string","enum":["complete","partial","unavailable","conflicted","quarantined"]},"reasonCodes":{"type":"array","items":{"type":"string"}}},"required":["id","version","kind","operatorId","owner","publicUrl","publicUrlState","licence","licenceState","cadence","cadenceState","snapshotId","checkedAt","observedAt","freshnessSeconds","freshnessState","qualityState","reasonCodes"],"additionalProperties":true}}},"required":["schema","schemaVersion","surface","requestId","requestIdState","generatedAt","freshnessSeconds","sourceState","qualityState","evidenceIds","missingSources","reasonCodes","sources"],"additionalProperties":true},"limitations":{"type":"array","items":{"type":"string"}}},"required":["schema","schemaVersion","resourceType","status","evidenceState","generatedAt","method","filters","sources","licence","fieldAvailability","station","lines","departures","meta"],"additionalProperties":true,"dependentRequired":{"boardingMetadataEdition":["boardingAccessibility"],"boardingAccessibility":["boardingMetadataEdition"]},"allOf":[{"if":{"required":["boardingMetadataEdition"]},"then":{"properties":{"fieldAvailability":{"required":["boardingMetadata"],"properties":{"accessibility":{"properties":{"reason":{"const":"complete_accessible_route_not_verified"}}}}}}}},{"if":{"required":["fieldAvailability"],"properties":{"fieldAvailability":{"required":["boardingMetadata"]}}},"then":{"required":["boardingMetadataEdition","boardingAccessibility"]}}],"title":"station-board response schema","x-api-version":"1.0.0"}