Compare commits

...

5 Commits

Author SHA1 Message Date
727641f49f Update Darwin Scheudle schema
All checks were successful
Generate and Release Protos / release (push) Successful in 40s
2026-03-31 21:27:56 +01:00
b17efa3e5d Add 'darwin-schedule' schema
All checks were successful
Generate and Release Protos / release (push) Successful in 42s
2026-03-31 20:41:44 +01:00
56aae55f16 Update enum values for MessageEnvelope to allow kb-stations
All checks were successful
Generate and Release Protos / release (push) Successful in 38s
2026-03-29 19:32:02 +01:00
91abe29b62 Adjust KB_Stations data type schema
All checks were successful
Generate and Release Protos / release (push) Successful in 39s
2026-03-29 19:08:15 +01:00
c22f3c7230 Adjust required fields
All checks were successful
Generate and Release Protos / release (push) Successful in 39s
2026-03-28 22:36:42 +00:00
3 changed files with 226 additions and 31 deletions

View File

@@ -0,0 +1,209 @@
{
"$id": "https://schema.owlboard.info/data-ingress/darwin/schedule.schema.json",
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "DarwinScheduleData",
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Name of the service submitting the update"
},
"service_id": {
"type": "string",
"description": "ID of the service sending the message - usually a hostname"
},
"data_type": {
"type": "string",
"const": "raw",
"description": "The type of data contained in this message object"
},
"sent_timestamp": {
"type": "integer",
"description": "Unix timestamp representing the time the message was sent"
},
"data_kind": {
"type": "string",
"const": "darwin-schedule",
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"rid",
"uid",
"ssd",
"tid",
"toc",
"isp",
"isc",
"l"
],
"properties": {
"rid": {
"type": "string",
"description": "Service RID",
"maxLength": 16
},
"uid": {
"type": "string",
"description": "Service UID",
"maxLength": 10
},
"ssd": {
"type": "string",
"format": "date",
"description": "Date on which the service commences"
},
"tid": {
"name": "train_id",
"type": "string",
"minLength": 4,
"maxLength": 4,
"description": "The signalling headcode of the service"
},
"toc": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "The two character code for the operating TOC"
},
"sts": {
"type": "string",
"maxLength": 1,
"name": "status",
"description": "The 'status' of the service"
},
"qt": {
"name": "qtrain",
"description": "qtrain?",
"type": "boolean",
"default": false
},
"d": {
"name": "deleted",
"description": "Whether the schedule is deleted",
"type": "boolean",
"default": "false"
},
"isp": {
"name": "is_passenger",
"type": "boolean",
"description": "Whether the service is a passenger service"
},
"isc": {
"name": "is_charter",
"type": "boolean",
"description": "Whether the service is a charter service"
},
"sid": {
"name": "rsid",
"type": ["string", "null"],
"maxLength": 10
},
"q": {
"name": "qtrain",
"description": "True if the service is scheduled but not activated (if not activated, presumed not running)",
"type": "boolean",
"default": "false"
},
"cr": {
"name": "cancel_reason",
"type": ["integer", "null"],
"description": "The reason code for the services cancellation"
},
"cl": {
"name": "cancel_location",
"type": "string",
"description": "The location at which the service was cancelled"
},
"l": {
"type": "array",
"minItems": 2,
"items": {
"type": "object",
"required": ["tpl", "lr", "s"],
"properties": {
"tpl": {
"type": "string",
"description": "The locations TIPLOC",
"maxLength": 7,
"minLength": 4
},
"lr": {
"name": "loc_role",
"description": "The role of the location (Orig, Call, Pass, Dest)",
"enum": ["ORIG", "CALL", "PASS", "DEST"]
},
"s": {
"name": "seq",
"description": "The sequence in the service at which this location occours",
"type": "integer",
"minimum": 1,
"maximum": 32767
},
"pta": {
"description": "Public timetable arrival",
"type": "string",
"format": "date-time"
},
"ptd": {
"description": "Public timetable departure",
"type": "string",
"format": "date-time"
},
"wta": {
"description": "Working timetable arrival",
"type": "string",
"format": "date-time"
},
"wtd": {
"description": "Working timetable arrival",
"type": "string",
"format": "date-time"
},
"wtp": {
"description": "Working timetable pass",
"type": "string",
"format": "date-time"
},
"c": {
"name": "can",
"description": "Whether the service is cancelled at this location",
"default": false,
"type": "boolean"
},
"a": {
"name": "activities",
"type": "string",
"maxLength": 12
},
"fid": {
"description": "Unique formation indentifier (Maps to formation feed)",
"type": "string"
},
"al": {
"name": "avg_loading",
"description": "Average loading at this location",
"type": "integer"
}
}
}
}
}
}
}
},
"required": [
"service_name",
"service_id",
"data_type",
"data_kind",
"sent_timestamp",
"payload"
],
"additionalProperties": false
}

View File

@@ -32,8 +32,13 @@
"type": "object",
"required": [
"c",
"mc",
"l",
"o"
"o",
"p",
"a",
"r",
"d"
],
"properties": {
"c": {
@@ -52,40 +57,20 @@
"description": "The minimum connection time at this station"
},
"a": {
"type": "object",
"type": "string",
"name": "Address",
"description": "The address of the station",
"properties": {
"l1": {
"type": "string",
"name": "Line 1"
"description": "The address of the station"
},
"l2": {
"p": {
"type": "string",
"name": "Line 2"
},
"l3": {
"type": "string",
"name": "Line 3"
},
"l4": {
"type": "string",
"name": "Line 4"
},
"l5": {
"type": "string",
"name": "Line 5"
},
"pc": {
"type": "string",
"name": "Postcode"
}
}
"name": "Postcode",
"description": "The public postcode of the station"
},
"l": {
"type": "object",
"name": "Location",
"description": "LatLon of the station",
"required": ["lt", "ln"],
"properties": {
"lt": {
"type": "number",
@@ -127,7 +112,8 @@
"service_id",
"data_type",
"data_kind",
"sent_timestamp"
"sent_timestamp",
"payload"
],
"additionalProperties": false
}

View File

@@ -23,7 +23,7 @@
},
"data_kind": {
"type": "string",
"enum": ["pis", "timetable", "knowledgebase", "PushPort16Schedule", "darwin_ts", "darwin_ref"],
"enum": ["pis", "timetable", "kb-stations", "PushPort16Schedule", "darwin_ts", "darwin_ref"],
"description": "The data type contained in the message. Currently supported PIS: PIS Data, Timetable: CIF or VSTP Data, Knowledgebase: Station Data"
},
"payload": {}