576 lines
16 KiB
JSON
576 lines
16 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"required": [
|
|
"routeStart",
|
|
"routeEnd",
|
|
"routeId",
|
|
"updated",
|
|
"signallerStart",
|
|
"signallerEnd",
|
|
"elecStart",
|
|
"elecEnd",
|
|
"routeDetail"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"routeStart": {
|
|
"type": "string",
|
|
"description": "The route start point"
|
|
},
|
|
"routeEnd": {
|
|
"type": "string",
|
|
"description": "The route end point"
|
|
},
|
|
"routeId": {
|
|
"type": "string",
|
|
"description": "The routes ID Code",
|
|
"pattern": "^[0-9]{4}$"
|
|
},
|
|
"updated": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Date the route was last updated"
|
|
},
|
|
"checked": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Date the route was last checked for accuracy"
|
|
},
|
|
"signallerStart": {
|
|
"type": "string",
|
|
"description": "The signaller at the start of the route"
|
|
},
|
|
"signallerEnd": {
|
|
"type": "string",
|
|
"description": "The signalller at the end of the route"
|
|
},
|
|
"elecStart": {
|
|
"$ref": "#/definitions/elecInfo",
|
|
"description": "Electrification details at the route start"
|
|
},
|
|
"elecEnd": {
|
|
"$ref": "#/definitions/elecInfo",
|
|
"description": "Electrification info at the end of the route"
|
|
},
|
|
"routeDetail": {
|
|
"type": "array",
|
|
"additionalItems": false,
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/bridge"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/crossing"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/crossover"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/electrificationChange"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/junction"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/loop"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/routeContinuation"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/siteof"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/station"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/tunnel"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/signallerChange"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"elecInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"elec": {
|
|
"type": "string",
|
|
"enum": [
|
|
"25kvac",
|
|
"750vdc",
|
|
"650vdc",
|
|
"1500vdc",
|
|
"none"
|
|
]
|
|
},
|
|
"eco": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"elec"
|
|
]
|
|
},
|
|
"bridge": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"bridge",
|
|
"minorBridge"
|
|
]
|
|
},
|
|
"roadName": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "string",
|
|
"enum": [
|
|
"over",
|
|
"under"
|
|
]
|
|
},
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"road",
|
|
"aroad",
|
|
"motorway",
|
|
"foot",
|
|
"waterway",
|
|
"stream",
|
|
"rail",
|
|
"minorRoad",
|
|
"pipeline"
|
|
]
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"position",
|
|
"category",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"crossing": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "crossing"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"CCTV",
|
|
"AHB",
|
|
"uwc",
|
|
"foot",
|
|
"omsl",
|
|
"r/g",
|
|
"msl",
|
|
"mcb",
|
|
"mg",
|
|
"mcg",
|
|
"aocl"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"kind",
|
|
"name",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"crossover": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "crossovers"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"name",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"electrificationChange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "electrificationChange"
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
},
|
|
"from": {
|
|
"type": "object",
|
|
"properties": {
|
|
"elec": {
|
|
"type": "string",
|
|
"enum": [
|
|
"25kvac",
|
|
"750vdc",
|
|
"650vdc",
|
|
"1500vdc",
|
|
"none"
|
|
]
|
|
},
|
|
"eco": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"elec"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"to": {
|
|
"type": "object",
|
|
"properties": {
|
|
"elec": {
|
|
"type": "string",
|
|
"enum": [
|
|
"25kvac",
|
|
"750vdc",
|
|
"650vdc",
|
|
"1500vdc",
|
|
"none"
|
|
]
|
|
},
|
|
"eco": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"elec"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"junction": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "junction"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"diverges": {
|
|
"type": "string",
|
|
"enum": [
|
|
"left",
|
|
"right",
|
|
"both"
|
|
]
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"up",
|
|
"down",
|
|
"both"
|
|
]
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
},
|
|
"elecBranch": {
|
|
"type": "string",
|
|
"enum": [
|
|
"25kvac",
|
|
"750vdc",
|
|
"650vdc",
|
|
"1500vdc",
|
|
"none"
|
|
]
|
|
},
|
|
"goto": {
|
|
"type": "string"
|
|
},
|
|
"entryPoint": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"diverges",
|
|
"direction",
|
|
"miles",
|
|
"chains",
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"loop": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "loop"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "string",
|
|
"enum": [
|
|
"left",
|
|
"right",
|
|
"both"
|
|
]
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
},
|
|
"elecLoop": {
|
|
"type": "string",
|
|
"enum": [
|
|
"25kvac",
|
|
"750vdc",
|
|
"650vdc",
|
|
"1500vdc",
|
|
"none"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"name",
|
|
"position",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"routeContinuation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "continues"
|
|
},
|
|
"routeName": {
|
|
"type": "string",
|
|
"description": "Name to display"
|
|
},
|
|
"routeId": {
|
|
"type": "string",
|
|
"description": "Id of route"
|
|
},
|
|
"entryPoint": {
|
|
"type": "string",
|
|
"description": "Entrypoint of other route (lowercase, replacing whitespace with -, junction always referred to as jn"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"routeName",
|
|
"routeId",
|
|
"entryPoint"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"siteof": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "siteof"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"name",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"station": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "station"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"name",
|
|
"miles",
|
|
"chains"
|
|
]
|
|
},
|
|
"tunnel": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "tunnel"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"tunnelType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"start",
|
|
"end",
|
|
"mid",
|
|
"whole"
|
|
]
|
|
},
|
|
"length": {
|
|
"type": "string",
|
|
"pattern": ""
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"name",
|
|
"tunnelType",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"signallerChange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "signallerChange"
|
|
},
|
|
"from": {
|
|
"type": "string"
|
|
},
|
|
"to": {
|
|
"type": "string"
|
|
},
|
|
"miles": {
|
|
"type": "number"
|
|
},
|
|
"chains": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"from",
|
|
"to",
|
|
"miles",
|
|
"chains"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
} |