Add schema for TS message
All checks were successful
Generate and Release Protos / release (push) Successful in 49s

This commit is contained in:
2026-04-22 20:14:05 +01:00
parent 5eb6f623be
commit 2552204da2

View File

@@ -0,0 +1,190 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/TS.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinTSData",
"type": "object",
"required": [
"rid",
"ssd",
"locs",
"rf"
],
"additionalProperties": false,
"properties": {
"rid": {
"type": "string",
"name": "RID",
"description": "The RID of the service that the data applies to"
},
"uid": {
"type": "string",
"name": "UID",
"description": "The UID of the timetable entry for this service"
},
"ssd": {
"type": "string",
"format": "date",
"name": "Service Start Date",
"description": "The date on which the service commences"
},
"rf": {
"type": "boolean",
"name": "isReverseFormation",
"description": "Whether the service is running in reverse formation"
},
"lr": {
"type": "object",
"name": "Late Reason",
"description": "Late Reason Object",
"additionalProperties": false,
"required": [
"c"
],
"properties": {
"c": {
"type": "integer",
"name": "Reason code",
"description": "The reason code for the delay"
},
"t": {
"type": "string",
"name": "TIPLOC",
"description": "The TIPLOC where the delay occurred"
},
"n": {
"type": "boolean",
"name": "Near",
"description": "Whether the delay occurred NEAR the TIPLOC, otherwise at the TIPLOC"
}
}
},
"locs" : {
"type": "array",
"items": {"$ref": "#/definitions/location"}
}
},
"definitions": {
"location": {
"type": "object",
"required": ["t"],
"properties": {
"t": {
"type": "string",
"name": "TIPLOC",
"description": "The TIPLOC of the location"
},
"wta": {
"type": "string",
"name": "Working Time of Arrival",
"description": "The scheduled arrival time from the working timetable"
},
"wtd": {
"type": "string",
"name": "Working Time of Departure",
"description": "The scheduled departure time from the working timetable"
},
"pta": {
"type": "string",
"name": "Public Time of Arrival",
"description": "The scheduled arrival time from the public timetable"
},
"ptd": {
"type": "string",
"name": "Public time of departure",
"description": "The scheduled departure time from the public timetable"
},
"wtp": {
"type": "string",
"name": "Working pass time",
"description": "The scheduled pass time from the working timetable"
},
"d": {
"name": "Departure data",
"$ref": "#/definitions/forecastTime"
},
"a": {
"name": "Arrival data",
"$ref": "#/definitions/forecastTime"
},
"p": {
"name": "Pass data",
"$ref": "#/definitions/forecastTime"
},
"plt": {
"name": "Platform data",
"$ref": "#/definitions/platformStatus"
}
}
},
"forecastTime": {
"type": "object",
"name": "Forecast/Actual Time",
"properties": {
"et": {
"type": "string",
"name": "Estimated Time",
"description": "The estimated time of this event"
},
"at": {
"type": "string",
"name": "Actual Time",
"description": "The actual time of this event"
},
"wet": {
"type": "string",
"name": "Working Estimated Time",
"description": "The estimated 'working' time"
},
"atRem": {
"type": "boolean",
"name": "AT Removal",
"description": "If true, previous AT given was not valid, delete it"
},
"del": {
"type": "boolean",
"name": "Delayed",
"description": "If this train is delayed (Display delayed if no ET/AT)"
},
"src": {
"type": "string",
"name": "Data source",
"description": "The source of this data (Darwin/Trust/CIS etc)"
}
}
},
"platformStatus": {
"type": "object",
"name": "PlatformData",
"required": [
"sup"
],
"properties": {
"sup": {
"type": "boolean",
"name": "Suppressed",
"description": "Whether the platform is suppressed (hidden to public)"
},
"n": {
"type": "string",
"name": "Platform Number",
"description": "The platform at which this event will occur"
},
"src": {
"type": "string",
"name": "Data source",
"description": "The name of the source of the platform data"
},
"c": {
"type": "boolean",
"name": "Platform Confirmed",
"description": "Whether the platform has been confirmed by local CIS"
},
"cisSup": {
"type": "boolean",
"name": "CIS suppressed",
"description": "Whether the local CIS has suppressed the platform (not needed to determine whether to suppress or not)"
}
}
}
}
}