Skip to content

Schema Documentation

Find this documentation confusing?

Me too. That’s why we spent a bunch more time documenting the data models, which read much more nicely - or you can check out the examples.

/

projectcard.json

Type: Object

Additional Information:

title: Project Card Schema

Definitions:

Definition Type Description Restrictions
change_roadway_deletion changes/roadway_deletion.json -
change_roadway_addition changes/roadway_addition.json -
change_roadway_property_change changes/roadway_property_change.json -
transit_property_change changes/transit_property_change.json -
transit_routing_change changes/transit_routing_change.json -
transit_route_addition changes/transit_route_addition.json -
transit_service_deletion changes/transit_service_deletion.json -
pycode string -
change object - One Of:
  • {“required”: [“roadway_deletion”]}
  • {“required”: [“roadway_addition”]}
  • {“required”: [“roadway_property_change”]}
  • {“required”: [“transit_property_change”]}
  • {“required”: [“transit_routing_change”]}
  • {“required”: [“transit_route_addition”]}
  • {“required”: [“transit_service_deletion”]}
  • {“required”: [“pycode”]}

Properties:

Property Type Description Restrictions
$schema string Reference to the project card schema which this file uses. If not specified, will be assumed to be the most recent release.
project string A project name which uniquely identifies this project
dependencies defs/dependencies.json -
tags defs/tags.json -
roadway_deletion #/$defs/change_roadway_deletion -
roadway_addition #/$defs/change_roadway_addition -
roadway_property_change #/$defs/change_roadway_property_change -
roadway_managed_lanes #/$defs/change_roadway_property_change -
transit_property_change #/$defs/transit_property_change -
transit_routing_change #/$defs/transit_routing_change -
transit_route_addition #/$defs/transit_route_addition -
transit_service_deletion #/$defs/transit_service_deletion -
pycode #/$defs/pycode -
changes array of Any items. -
self_obj_type string For calculated project cards, must refer to the object to perform the calculation on. Enumeration: RoadwayNetwork,TransitNetwork
notes string -

Required:

  • “project”
One Of:
  • {“required”: [“roadway_deletion”]}
  • {“required”: [“roadway_addition”]}
  • {“required”: [“roadway_property_change”]}
  • {“required”: [“roadway_managed_lanes”]}
  • {“required”: [“transit_property_change”]}
  • {“required”: [“transit_routing_change”]}
  • {“required”: [“transit_route_addition”]}
  • {“required”: [“transit_service_deletion”]}
  • {“required”: [“pycode”]}
  • {“required”: [“changes”]}

Project Card Schema Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "object",
    "$defs": {
        "change_roadway_deletion": {
            "$ref": "changes/roadway_deletion.json"
        },
        "change_roadway_addition": {
            "$ref": "changes/roadway_addition.json"
        },
        "change_roadway_property_change": {
            "$ref": "changes/roadway_property_change.json"
        },
        "transit_property_change": {
            "$ref": "changes/transit_property_change.json"
        },
        "transit_routing_change": {
            "$ref": "changes/transit_routing_change.json"
        },
        "transit_route_addition": {
            "$ref": "changes/transit_route_addition.json"
        },
        "transit_service_deletion": {
            "$ref": "changes/transit_service_deletion.json"
        },
        "pycode": {
            "type": "string"
        },
        "change": {
            "type": "object",
            "properties": {
                "roadway_deletion": {
                    "$ref": "#/$defs/change_roadway_deletion"
                },
                "roadway_addition": {
                    "$ref": "#/$defs/change_roadway_addition"
                },
                "roadway_property_change": {
                    "$ref": "#/$defs/change_roadway_property_change"
                },
                "transit_property_change": {
                    "$ref": "#/$defs/transit_property_change"
                },
                "transit_routing_change": {
                    "$ref": "#/$defs/transit_routing_change"
                },
                "transit_route_addition": {
                    "$ref": "#/$defs/transit_route_addition"
                },
                "transit_service_deletion": {
                    "$ref": "#/$defs/transit_service_deletion"
                },
                "pycode": {
                    "$ref": "#/$defs/pycode"
                }
            },
            "oneOf": [
                {
                    "required": [
                        "roadway_deletion"
                    ]
                },
                {
                    "required": [
                        "roadway_addition"
                    ]
                },
                {
                    "required": [
                        "roadway_property_change"
                    ]
                },
                {
                    "required": [
                        "transit_property_change"
                    ]
                },
                {
                    "required": [
                        "transit_routing_change"
                    ]
                },
                {
                    "required": [
                        "transit_route_addition"
                    ]
                },
                {
                    "required": [
                        "transit_service_deletion"
                    ]
                },
                {
                    "required": [
                        "pycode"
                    ]
                }
            ]
        }
    },
    "title": "Project Card Schema",
    "required": [
        "project"
    ],
    "oneOf": [
        {
            "required": [
                "roadway_deletion"
            ]
        },
        {
            "required": [
                "roadway_addition"
            ]
        },
        {
            "required": [
                "roadway_property_change"
            ]
        },
        {
            "required": [
                "roadway_managed_lanes"
            ]
        },
        {
            "required": [
                "transit_property_change"
            ]
        },
        {
            "required": [
                "transit_routing_change"
            ]
        },
        {
            "required": [
                "transit_route_addition"
            ]
        },
        {
            "required": [
                "transit_service_deletion"
            ]
        },
        {
            "required": [
                "pycode"
            ]
        },
        {
            "required": [
                "changes"
            ]
        }
    ],
    "properties": {
        "$schema": {
            "type": "string",
            "description": "Reference to the project card schema which this file uses. If not specified, will be assumed to be the most recent release."
        },
        "project": {
            "type": "string",
            "description": "A project name which uniquely identifies this project"
        },
        "dependencies": {
            "$ref": "defs/dependencies.json"
        },
        "tags": {
            "$ref": "defs/tags.json"
        },
        "roadway_deletion": {
            "$ref": "#/$defs/change_roadway_deletion"
        },
        "roadway_addition": {
            "$ref": "#/$defs/change_roadway_addition"
        },
        "roadway_property_change": {
            "$ref": "#/$defs/change_roadway_property_change"
        },
        "roadway_managed_lanes": {
            "$ref": "#/$defs/change_roadway_property_change"
        },
        "transit_property_change": {
            "$ref": "#/$defs/transit_property_change"
        },
        "transit_routing_change": {
            "$ref": "#/$defs/transit_routing_change"
        },
        "transit_route_addition": {
            "$ref": "#/$defs/transit_route_addition"
        },
        "transit_service_deletion": {
            "$ref": "#/$defs/transit_service_deletion"
        },
        "pycode": {
            "$ref": "#/$defs/pycode"
        },
        "changes": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/change"
            }
        },
        "self_obj_type": {
            "type": "string",
            "enum": [
                "RoadwayNetwork",
                "TransitNetwork"
            ],
            "description": "For calculated project cards, must refer to the object to perform the calculation on. "
        },
        "notes": {
            "type": "string"
        }
    }
}

changes.roadway_deletion.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
links ../roadway/selection/select_links.json -
nodes ../roadway/selection/select_nodes.json -
clean_shapes boolean If true, unused shapes for these links will be removed. Defaults to false.
clean_nodes boolean If true, unused nodes for these links will be removed. Defaults to false.

Any Of:

  • {“required”: [“links”]}
  • {“required”: [“nodes”]}

roadway_deletion Example 1
{
    "links": {
        "model_link_id": [
            1,
            2,
            3
        ]
    }
}
roadway_deletion Example 2
{
    "links": {
        "ref": [
            "I-5"
        ],
        "lanes": 2
    }
}
roadway_deletion Example 3
{
    "nodes": {
        "model_node_id": [
            1,
            2,
            3
        ]
    }
}
roadway_deletion Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "anyOf": [
        {
            "required": [
                "links"
            ]
        },
        {
            "required": [
                "nodes"
            ]
        }
    ],
    "examples": [
        {
            "links": {
                "model_link_id": [
                    1,
                    2,
                    3
                ]
            }
        },
        {
            "links": {
                "ref": [
                    "I-5"
                ],
                "lanes": 2
            }
        },
        {
            "nodes": {
                "model_node_id": [
                    1,
                    2,
                    3
                ]
            }
        }
    ],
    "additionalProperties": false,
    "properties": {
        "links": {
            "$ref": "../roadway/selection/select_links.json"
        },
        "nodes": {
            "$ref": "../roadway/selection/select_nodes.json"
        },
        "clean_shapes": {
            "type": "boolean",
            "description": "If true, unused shapes for these links will be removed. Defaults to false.",
            "default": false
        },
        "clean_nodes": {
            "type": "boolean",
            "description": "If true, unused nodes for these links will be removed. Defaults to false.",
            "default": false
        }
    }
}

changes.transit_route_addition.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
routes array of Any items. -

Required:

  • “routes”

transit_route_addition Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "routes"
    ],
    "additionalProperties": false,
    "properties": {
        "routes": {
            "type": "array",
            "items": {
                "$ref": "../transit/transit_route.json"
            }
        }
    }
}

changes.transit_service_deletion.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
service ../transit/selection/select_trips.json -
clean_shapes boolean If true, unused shapes for these trips will be removed. Defaults to false.
clean_routes boolean If true, unused routes for these trips will be removed. Defaults to false.

Required:

  • “service”
  • “clean_shapes”
  • “clean_routes”

transit_service_deletion Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "service",
        "clean_shapes",
        "clean_routes"
    ],
    "additionalProperties": false,
    "properties": {
        "service": {
            "$ref": "../transit/selection/select_trips.json"
        },
        "clean_shapes": {
            "type": "boolean",
            "description": "If true, unused shapes for these trips will be removed. Defaults to false.",
            "default": false
        },
        "clean_routes": {
            "type": "boolean",
            "description": "If true, unused routes for these trips will be removed. Defaults to false.",
            "default": false
        }
    }
}

changes.roadway_addition.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
links array of Any items. -
nodes array of Any items. -

Any Of:

  • {“required”: [“links”]}
  • {“required”: [“nodes”]}

roadway_addition Example 1
{
    "links": [
        {
            "A": 1,
            "B": 2,
            "model_link_id": 123,
            "name": "Elm Street",
            "roadway": "residential",
            "lanes": 2,
            "price": 0.75,
            "walk_access": 1,
            "bike_access": 1,
            "bike_facility": 1,
            "drive_access": 1,
            "bus_only": 0,
            "rail_only": 0
        }
    ],
    "nodes": [
        {
            "model_node_id": 1,
            "X": -122.419,
            "Y": 37.7
        },
        {
            "model_node_id": 2,
            "X": -122.419,
            "Y": 37.8
        }
    ]
}
roadway_addition Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "anyOf": [
        {
            "required": [
                "links"
            ]
        },
        {
            "required": [
                "nodes"
            ]
        }
    ],
    "examples": [
        {
            "links": [
                {
                    "A": 1,
                    "B": 2,
                    "model_link_id": 123,
                    "name": "Elm Street",
                    "roadway": "residential",
                    "lanes": 2,
                    "price": 0.75,
                    "walk_access": 1,
                    "bike_access": 1,
                    "bike_facility": 1,
                    "drive_access": 1,
                    "bus_only": 0,
                    "rail_only": 0
                }
            ],
            "nodes": [
                {
                    "model_node_id": 1,
                    "X": -122.419,
                    "Y": 37.7
                },
                {
                    "model_node_id": 2,
                    "X": -122.419,
                    "Y": 37.8
                }
            ]
        }
    ],
    "additionalProperties": false,
    "properties": {
        "links": {
            "type": "array",
            "items": {
                "$ref": "../roadway/roadway_link.json"
            }
        },
        "nodes": {
            "type": "array",
            "items": {
                "$ref": "../roadway/roadway_node.json"
            }
        }
    }
}

changes.transit_routing_change.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
service ../transit/selection/select_trips.json -
routing object - Required:
- "set"

Required:

  • “service”
  • “routing”

transit_routing_change Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "service",
        "routing"
    ],
    "additionalProperties": false,
    "properties": {
        "service": {
            "$ref": "../transit/selection/select_trips.json"
        },
        "routing": {
            "type": "object",
            "required": [
                "set"
            ],
            "additionalProperties": false,
            "properties": {
                "existing": {
                    "type": "array"
                },
                "set": {
                    "type": "array"
                }
            }
        }
    }
}

changes.transit_property_change.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
service ../transit/selection/select_trips.json -
property_changes object -

Required:

  • “service”
  • “property_changes”

transit_property_change Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "service",
        "property_changes"
    ],
    "additionalProperties": false,
    "properties": {
        "service": {
            "$ref": "../transit/selection/select_trips.json"
        },
        "property_changes": {
            "type": "object",
            "minItems": 1,
            "patternProperties": {
                ".*": {
                    "$ref": "defs/property_set.json"
                }
            }
        }
    }
}

changes.roadway_property_change.json

Type: Object

Additional Information:

additionalProperties: False

Properties:

Property Type Description Restrictions
facility ../roadway/selection/select_segment.json -
property_changes object - Any Of:
- {"patternProperties": {".*": {"$ref": "defs/property_set.json"}}}
- {"price": {"$ref": "defs/scoped_property_set.json"}}
- {"lanes": {"$ref": "defs/scoped_property_set.json"}}
- {"ML_price": {"$ref": "defs/scoped_property_set.json"}}
- {"ML_lanes": {"$ref": "defs/scoped_property_set.json"}}

Required:

  • “facility”
  • “property_changes”

roadway_property_change Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "facility",
        "property_changes"
    ],
    "additionalProperties": false,
    "properties": {
        "facility": {
            "$ref": "../roadway/selection/select_segment.json"
        },
        "property_changes": {
            "type": "object",
            "minItems": 1,
            "anyOf": [
                {
                    "patternProperties": {
                        ".*": {
                            "$ref": "defs/property_set.json"
                        }
                    }
                },
                {
                    "price": {
                        "$ref": "defs/scoped_property_set.json"
                    }
                },
                {
                    "lanes": {
                        "$ref": "defs/scoped_property_set.json"
                    }
                },
                {
                    "ML_price": {
                        "$ref": "defs/scoped_property_set.json"
                    }
                },
                {
                    "ML_lanes": {
                        "$ref": "defs/scoped_property_set.json"
                    }
                }
            ]
        }
    }
}
changes.defs.scoped_property_set.json

Type: Object

Definitions:

Definition Type Description Restrictions
set_num number -
change_num number -
existing_value_conflict string Only used if ‘existing’ provided in project card and existing doesn’t match the existing network value. error will raise an error, warn will warn the user, and skip will skip the change for that property (note it will still apply any remaining property changes). Defaults to warn. Enumeration: error,warn,skip
overwrite_scoped string If ‘all’, all scoped items will be overwritten. If ‘conflicting’, only conflicting scoped items will be overwritten. If ‘error’, no scoped items will be overwritten and error will be raised if there are conflicts. Enumeration: all,conflicting,error
scoped_property_set_item object - One Of:
  • {“required”: [“timespan”, “set”]}
  • {“required”: [“timespan”, “change”]}
  • {“required”: [“category”, “change”]}
  • {“required”: [“category”, “set”]}

Properties:

Property Type Description Restrictions
existing ['number', 'string'] -
set #/$defs/set_num -
change #/$defs/change_num -
scoped array of Any items. -
overwrite_scoped #/$defs/overwrite_scoped -
existing_value_conflict #/$defs/existing_value_conflict -

One Of:

  • {“required”: [“set”, “scoped”], “not”: {“required”: [“change”]}}
  • {“required”: [“change”, “group”], “not”: {“required”: [“set”]}}

scoped_property_set Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "$defs": {
        "set_num": {
            "type": "number",
            "minimum": 0
        },
        "change_num": {
            "type": "number"
        },
        "existing_value_conflict": {
            "type": "string",
            "enum": [
                "error",
                "warn",
                "skip"
            ],
            "default": "warn",
            "description": "Only used if 'existing' provided in project card and `existing` doesn't match the existing network value. `error` will raise an error, `warn` will warn the user, and `skip` will skip the change for that property (note it will still apply any remaining property changes). Defaults to `warn`."
        },
        "overwrite_scoped": {
            "type": "string",
            "enum": [
                "all",
                "conflicting",
                "error"
            ],
            "default": "error",
            "description": "If 'all', all scoped items will be overwritten. If 'conflicting', only conflicting scoped items will be overwritten. If 'error', no scoped items will be overwritten and error will be raised if there are conflicts."
        },
        "scoped_property_set_item": {
            "type": "object",
            "examples": [
                {
                    "timespan": [
                        "7:00",
                        "9:00"
                    ],
                    "set": 0.5
                }
            ],
            "oneOf": [
                {
                    "required": [
                        "timespan",
                        "set"
                    ]
                },
                {
                    "required": [
                        "timespan",
                        "change"
                    ]
                },
                {
                    "required": [
                        "category",
                        "change"
                    ]
                },
                {
                    "required": [
                        "category",
                        "set"
                    ]
                }
            ],
            "properties": {
                "set": {
                    "$ref": "#/$defs/set_num"
                },
                "change": {
                    "$ref": "#/$defs/change_num"
                },
                "category": {
                    "type": "array"
                },
                "timespan": {
                    "$ref": "../../defs/timespan.json"
                },
                "overwrite_scoped": {
                    "$ref": "#/$defs/overwrite_scoped"
                },
                "existing_value_conflict": {
                    "$ref": "#/$defs/existing_value_conflict"
                }
            }
        }
    },
    "oneOf": [
        {
            "required": [
                "set",
                "scoped"
            ],
            "not": {
                "required": [
                    "change"
                ]
            }
        },
        {
            "required": [
                "change",
                "group"
            ],
            "not": {
                "required": [
                    "set"
                ]
            }
        }
    ],
    "properties": {
        "existing": {
            "type": [
                "number",
                "string"
            ]
        },
        "set": {
            "$ref": "#/$defs/set_num"
        },
        "change": {
            "$ref": "#/$defs/change_num"
        },
        "scoped": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/scoped_property_set_item"
            }
        },
        "overwrite_scoped": {
            "$ref": "#/$defs/overwrite_scoped"
        },
        "existing_value_conflict": {
            "$ref": "#/$defs/existing_value_conflict"
        }
    }
}
changes.defs.property_set.json

Type: Object

Definitions:

Definition Type Description Restrictions
existing_value_conflict string Only used if ‘existing’ provided in project card and existing doesn’t match the existing network value. One of error, warn, or skip. error will raise an error, warn will warn the user, and skip will skip the change for that property (note it will still apply any remaining property changes). Will overwrite any WranglerConfig. Enumeration: error,warn,skip

Properties:

Property Type Description Restrictions
existing ['number', 'string'] -
change ['number', 'string'] -
set ['number', 'string'] -
existing_value_conflict #/$defs/existing_value_conflict -

One Of:

  • {“required”: [“change”], “not”: {“required”: [“set”]}}
  • {“required”: [“set”], “not”: {“required”: [“change”]}}

property_set Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "$defs": {
        "existing_value_conflict": {
            "type": "string",
            "enum": [
                "error",
                "warn",
                "skip"
            ],
            "default": "false",
            "description": "Only used if 'existing' provided in project card and `existing` doesn't match the existing network value. One of `error`, `warn`, or `skip`. `error` will raise an error, `warn` will warn the user, and `skip` will skip the change for that property (note it will still apply any remaining property changes). Will overwrite any WranglerConfig."
        }
    },
    "oneOf": [
        {
            "required": [
                "change"
            ],
            "not": {
                "required": [
                    "set"
                ]
            }
        },
        {
            "required": [
                "set"
            ],
            "not": {
                "required": [
                    "change"
                ]
            }
        }
    ],
    "properties": {
        "existing": {
            "type": [
                "number",
                "string"
            ]
        },
        "change": {
            "type": [
                "number",
                "string"
            ]
        },
        "set": {
            "type": [
                "number",
                "string"
            ]
        },
        "existing_value_conflict": {
            "$ref": "#/$defs/existing_value_conflict"
        }
    }
}

defs.time.json

Additional Information:

pattern: ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$

time Example 1
"12:34"
time Example 2
"12:34:56"
time Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "string",
    "pattern": "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$",
    "examples": [
        "12:34",
        "12:34:56"
    ]
}

defs.mode.json

Additional Information:

title: mode

Enumeration: drive,walk,bike,transit,any

mode Contents
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "string",
    "title": "mode",
    "enum": [
        "drive",
        "walk",
        "bike",
        "transit",
        "any"
    ]
}

defs.timespan.json

Type: array of Any items.

timespan Example 1
[
    "12:00",
    "19:45:00"
]
timespan Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "examples": [
        [
            "12:00",
            "19:45:00"
        ]
    ],
    "type": "array",
    "items": {
        "$ref": "time.json"
    },
    "minItems": 2,
    "maxItems": 2
}

defs.tags.json

Type: array of string items.

Property Value
examples - "vision2050"
uniqueItems True
Project Tags Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "array",
    "title": "Project Tags",
    "items": {
        "type": "string",
        "examples": [
            "vision2050"
        ],
        "uniqueItems": true
    }
}

defs.dependencies.json

Type: Object

Additional Information:

  • additionalProperties: False

  • title: Project Dependencies

Properties:

Property Type Description Restrictions
prerequisites array Project Prerequisites
corequisites array Project Co-requisites
conflicts array Project Conflicts
Project Dependencies Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "object",
    "additionalProperties": false,
    "title": "Project Dependencies",
    "properties": {
        "prerequisites": {
            "type": "array",
            "title": "Project Prerequisites",
            "examples": [
                "7th St E Road Diet"
            ]
        },
        "corequisites": {
            "type": "array",
            "title": "Project Co-requisites",
            "examples": [
                "7th St E Road Diet"
            ]
        },
        "conflicts": {
            "type": "array",
            "title": "Project Conflicts",
            "examples": [
                "7th St E Road Diet"
            ]
        }
    }
}

roadway.roadway_link.json

Type: Object

Additional Information:

  • description: Requirements for roadway links.

  • title: Roadway links

Definitions:

Definition Type Description Restrictions
node integer Foreign key to the nodes object.
intersectionId string The Intersectionid Schema
shstReferenceId_link string The Shstreferenceid Schema
shstGeometryId string The Shstgeometryid Schema
bearing integer The angle of the eminating arc from the point, expressed in clockwise degrees from North (0)
point Any -
distance number Distance of facility in miles. If not provided, will be calculated provided nodes
name string Name of Roadway facility. If multiple, can be contatenated with a comma.
ref string Reference name of roadway, per Open Street Map definition.
model_link_id integer Unique id for facility.
osm_link_id string Reference to the corresponding Open Street Map link. Note that due to link splitting this may or may not be unique, and is not a required attribute.
roadway string Roadway type, using OSM Highway values. Notes: * X_link roadway types denote linkage roads going to/from roadway type X (i.e. on/off ramps, etc). * road denotes unknown type. Enumeration: taz,motorway,trunk,primary,secondary,tertiary,unclassified,residential,motorway_link,trunk_link,primary_link,secondary_link,tertiary_link,living_street,service,pedestrian,footway,steps,cycleway,track,bus_guideway,road
locationReference object - Required:
  • “sequence”
  • “point”
locationReferences array of Any items. The Locationreferences Schema
scoped_number_property_value Any - One Of:
  • {“$ref”: “#/$defs/number_property.by_time-of-day”}
  • {“$ref”: “#/$defs/number_property.by_access-category”}
  • {“$ref”: “#/$defs/number_property.by_access-category-and-time-of-day”}
lanes Any Number of lanes either in simple or complex terms. One Of:
  • {“type”: “number”, “minimum”: 0}
  • {“$ref”: “#/$defs/scoped_number_property_value”}
ML_lanes #/$defs/lanes Lanes for a parallel managed lane facility.
number_property.by_time-of-day object - Required:
  • “default”
  • “timeofday”
number_property.by_access-category object - Required:
  • “default”
  • “groups”
number_property.by_access-category-and-time-of-day object - Required:
  • “default”
  • “timeofday”
price Any Price of facility, either as a positive number of a complex type by time of day and/or access category. One Of:
  • {“type”: “number”, “minimum”: 0}
  • {“$ref”: “#/$defs/scoped_number_property_value”}
ML_price #/$defs/price Price for a parallel managed lane facility.
walk_access ['integer', 'boolean'] Indicates if a facility is generally available for pedestrians. Must not be true if any of bus_only or rail_only are true.
bike_access ['integer', 'boolean'] Indicates if a facility is generally available for cyclists. Must not be true if any of bus_only or rail_only are true.
bike_facility integer Indicator for the category of bicycle facility on or along the roadway. If null, indicates unknown. If zero, indicates no facility.
drive_access ['integer', 'boolean'] Indicates if a facility is generally available for driving. Must not be true if any of bus_only or rail_only are true.
bus_only ['integer', 'boolean'] Indicates if a facility is rail-only if True. Must not be true if any of walk_access, bike_access, drive_access, rail_only are True.
rail_only ['integer', 'boolean'] Indicates if a facility is rail-only if True. Must not be true if any of walk_access, bike_access, drive_access, bus_only are True.
segment_id ['string', 'integer'] An identifier for segments of roadway. Can be useful for querying and setting values for parts of facilities, summary scripts, etc.
ML_access_egress Any Indicates where a managed lane facility can by accessed or exited either by indicating all for everywhere, or listing foreign keys to specific A-nodes. One Of:
  • {“type”: “string”, “value”: “all”}
  • {“type”: “array”, “items”: {“$ref”: “#/$defs/node”}, “minItems”: 1}

Properties:

Property Type Description Restrictions
A #/$defs/node -
B #/$defs/node -
model_link_id #/$defs/model_link_id -
osm_link_id #/$defs/osm_link_id -
shstReferenceId #/$defs/shstReferenceId_link -
shstGeometryId #/$defs/shstGeometryId -
locationReferences #/$defs/locationReferences -
name #/$defs/name -
ref #/$defs/ref -
roadway #/$defs/roadway -
lanes #/$defs/lanes -
price #/$defs/price -
ML_lanes #/$defs/lanes -
ML_price #/$defs/ML_price -
ML_access_point #/$defs/ML_access_egress -
ML_egress_point #/$defs/ML_access_egress -
walk_access #/$defs/walk_access -
bike_access #/$defs/bike_access -
bike_facility #/$defs/bike_facility -
drive_access #/$defs/drive_access -
bus_only #/$defs/bus_only -
rail_only #/$defs/rail_only -
segment_id #/$defs/segment_id -
ignore_missing boolean -
all boolean -

Required:

  • “A”
  • “B”
  • “name”
  • “model_link_id”
  • “roadway”
  • “lanes”
  • “walk_access”
  • “bike_access”
  • “drive_access”

Roadway links Example 1
{
    "A": 123,
    "B": 5543,
    "model_link_id": 123,
    "name": "Elm Street",
    "roadway": "residential",
    "lanes": 2,
    "price": 0.75,
    "walk_access": 1,
    "bike_access": 1,
    "bike_facility": 1,
    "drive_access": 1,
    "bus_only": 0,
    "rail_only": 0
}
Roadway links Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Requirements for roadway links.",
    "type": "object",
    "$defs": {
        "node": {
            "type": "integer",
            "description": "Foreign key to the nodes object."
        },
        "intersectionId": {
            "type": "string",
            "description": "The Intersectionid Schema",
            "examples": [
                "4d0231aa0ebb779f142c2518703ee481"
            ]
        },
        "shstReferenceId_link": {
            "type": "string",
            "description": "The Shstreferenceid Schema",
            "examples": [
                "6a22969708104ae2497244f3d079381d"
            ]
        },
        "shstGeometryId": {
            "type": "string",
            "description": "The Shstgeometryid Schema",
            "examples": [
                "6a22969708104ae2497244f3d079381d"
            ]
        },
        "bearing": {
            "type": "integer",
            "minimum": 0,
            "maximum": 360,
            "description": "The angle of the eminating arc from the point, expressed in clockwise degrees from North (0)",
            "examples": [
                0,
                90,
                275
            ]
        },
        "point": {
            "#ref": "roadway_node.json#/$defs/roadway_nodes_point"
        },
        "distance": {
            "type": "number",
            "title": "Distance",
            "description": "Distance of facility in miles. If not provided, will be calculated provided nodes",
            "minimum": 0,
            "examples": [
                93.08
            ]
        },
        "name": {
            "type": "string",
            "examples": [
                "Elm Street",
                "Raleigh Beltline",
                "Capital Beltway",
                "3rd St,Willie Mays Blvd"
            ],
            "description": "Name of Roadway facility. If multiple, can be contatenated with a comma."
        },
        "ref": {
            "type": "string",
            "examples": [
                "I-40",
                "US66",
                "WA520"
            ],
            "description": "Reference name of roadway, per Open Street Map definition."
        },
        "model_link_id": {
            "type": "integer",
            "description": "Unique id for facility."
        },
        "osm_link_id": {
            "type": "string",
            "description": "Reference to the corresponding Open Street Map link. Note that due to link splitting this may or may not be unique, and is not a required attribute."
        },
        "roadway": {
            "type": "string",
            "enum": [
                "taz",
                "motorway",
                "trunk",
                "primary",
                "secondary",
                "tertiary",
                "unclassified",
                "residential",
                "motorway_link",
                "trunk_link",
                "primary_link",
                "secondary_link",
                "tertiary_link",
                "living_street",
                "service",
                "pedestrian",
                "footway",
                "steps",
                "cycleway",
                "track",
                "bus_guideway",
                "road"
            ],
            "default": "road",
            "description": "Roadway type, using [OSM Highway values](https://wiki.openstreetmap.org/wiki/Key:highway#Roads). Notes: * `X_link` roadway types denote linkage roads going to/from roadway type X (i.e. on/off ramps, etc). * `road` denotes unknown type."
        },
        "locationReference": {
            "type": "object",
            "required": [
                "sequence",
                "point"
            ],
            "properties": {
                "sequence": {
                    "type": "integer",
                    "minimum": 0
                },
                "point": {
                    "$ref": "#/$defs/point"
                },
                "distanceToNextRef": {
                    "$ref": "#/$defs/distance"
                },
                "bearing": {
                    "$ref": "#/$defs/bearing"
                },
                "intersectionId": {
                    "$ref": "#/$defs/intersectionId"
                }
            }
        },
        "locationReferences": {
            "type": "array",
            "description": "The Locationreferences Schema",
            "items": {
                "$ref": "#/$defs/locationReference"
            }
        },
        "scoped_number_property_value": {
            "oneOf": [
                {
                    "$ref": "#/$defs/number_property.by_time-of-day"
                },
                {
                    "$ref": "#/$defs/number_property.by_access-category"
                },
                {
                    "$ref": "#/$defs/number_property.by_access-category-and-time-of-day"
                }
            ]
        },
        "lanes": {
            "oneOf": [
                {
                    "type": "number",
                    "minimum": 0
                },
                {
                    "$ref": "#/$defs/scoped_number_property_value"
                }
            ],
            "examples": [
                2,
                5,
                {
                    "default": 1,
                    "timeofday": {
                        "timespan": [
                            "6:00",
                            "9:00"
                        ],
                        "value": 2
                    }
                }
            ],
            "description": "Number of lanes either in simple or complex terms."
        },
        "ML_lanes": {
            "$ref": "#/$defs/lanes",
            "description": "Lanes for a parallel managed lane facility."
        },
        "number_property.by_time-of-day": {
            "type": "object",
            "examples": [
                {
                    "default": 1,
                    "timeofday": [
                        {
                            "timespan": [
                                "7:00",
                                "9:00"
                            ],
                            "value": 0.5
                        }
                    ]
                }
            ],
            "required": [
                "default",
                "timeofday"
            ],
            "properties": {
                "default": {
                    "type": "number",
                    "minimum": 0
                },
                "timeofday": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [
                            "timespan",
                            "value"
                        ],
                        "properties": {
                            "timespan": {
                                "$ref": "../defs/timespan.json"
                            },
                            "value": {
                                "type": "number",
                                "minimum": 0
                            }
                        }
                    }
                }
            }
        },
        "number_property.by_access-category": {
            "type": "object",
            "required": [
                "default",
                "groups"
            ],
            "examples": [
                {
                    "default": 1,
                    "groups": [
                        {
                            "category": [
                                "HOV2"
                            ],
                            "value": 0.5
                        }
                    ]
                }
            ],
            "properties": {
                "default": {
                    "type": "number",
                    "minimum": 0
                },
                "group": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [
                            "category",
                            "value"
                        ],
                        "properties": {
                            "category": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "value": {
                                "type": "number",
                                "minimum": 0
                            }
                        }
                    }
                }
            }
        },
        "number_property.by_access-category-and-time-of-day": {
            "type": "object",
            "required": [
                "default",
                "timeofday"
            ],
            "examples": [
                {
                    "default": 1,
                    "timeofday": [
                        {
                            "timespan": [
                                "7:00",
                                "9:00"
                            ],
                            "category": [
                                "HOV2"
                            ],
                            "value": 0.5
                        }
                    ]
                }
            ],
            "properties": {
                "default": {
                    "type": "number",
                    "minimum": 0
                },
                "timeofday": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [
                            "category",
                            "timespan",
                            "value"
                        ],
                        "properties": {
                            "category": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "timespan": {
                                "$ref": "../defs/timespan.json"
                            },
                            "value": {
                                "type": "number",
                                "minimum": 0
                            }
                        }
                    }
                }
            }
        },
        "price": {
            "oneOf": [
                {
                    "type": "number",
                    "minimum": 0
                },
                {
                    "$ref": "#/$defs/scoped_number_property_value"
                }
            ],
            "default": 0,
            "examples": [
                0.75,
                2.9,
                {
                    "default": 1,
                    "timeofday": {
                        "time": [
                            "6:00",
                            "9:00"
                        ],
                        "value": 2
                    }
                }
            ],
            "description": "Price of facility, either as a positive number of a complex type by time of day and/or access category."
        },
        "ML_price": {
            "$ref": "#/$defs/price",
            "description": "Price for a parallel managed lane facility."
        },
        "walk_access": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates if a facility is generally available for pedestrians. Must not be true if any of bus_only or rail_only are true."
        },
        "bike_access": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates if a facility is generally available for cyclists. Must not be true if any of bus_only or rail_only are true."
        },
        "bike_facility": {
            "type": "integer",
            "minimum": 0,
            "description": "Indicator for the category of bicycle facility on or along the roadway. If null, indicates unknown. If zero, indicates no facility."
        },
        "drive_access": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates if a facility is generally available for driving. Must not be true if any of bus_only or rail_only are true."
        },
        "bus_only": {
            "type": [
                "integer",
                "boolean"
            ],
            "default": 0,
            "description": "Indicates if a facility is rail-only if True.  Must not be true if any of walk_access, bike_access, drive_access, rail_only are True."
        },
        "rail_only": {
            "type": [
                "integer",
                "boolean"
            ],
            "default": 0,
            "description": "Indicates if a facility is rail-only if True.  Must not be true if any of walk_access, bike_access, drive_access, bus_only are True."
        },
        "segment_id": {
            "type": [
                "string",
                "integer"
            ],
            "description": "An identifier for segments of roadway. Can be useful for querying and setting values for parts of facilities, summary scripts, etc."
        },
        "ML_access_egress": {
            "oneOf": [
                {
                    "type": "string",
                    "value": "all"
                },
                {
                    "type": "array",
                    "items": {
                        "$ref": "#/$defs/node"
                    },
                    "minItems": 1
                }
            ],
            "examples": [
                "all",
                [
                    123,
                    5543
                ]
            ],
            "description": "Indicates where a managed lane facility can by accessed or exited either by indicating `all` for everywhere, or listing foreign keys to specific A-nodes."
        }
    },
    "title": "Roadway links",
    "required": [
        "A",
        "B",
        "name",
        "model_link_id",
        "roadway",
        "lanes",
        "walk_access",
        "bike_access",
        "drive_access"
    ],
    "examples": [
        {
            "A": 123,
            "B": 5543,
            "model_link_id": 123,
            "name": "Elm Street",
            "roadway": "residential",
            "lanes": 2,
            "price": 0.75,
            "walk_access": 1,
            "bike_access": 1,
            "bike_facility": 1,
            "drive_access": 1,
            "bus_only": 0,
            "rail_only": 0
        }
    ],
    "properties": {
        "A": {
            "$ref": "#/$defs/node"
        },
        "B": {
            "$ref": "#/$defs/node"
        },
        "model_link_id": {
            "$ref": "#/$defs/model_link_id"
        },
        "osm_link_id": {
            "$ref": "#/$defs/osm_link_id"
        },
        "shstReferenceId": {
            "$ref": "#/$defs/shstReferenceId_link"
        },
        "shstGeometryId": {
            "$ref": "#/$defs/shstGeometryId"
        },
        "locationReferences": {
            "$ref": "#/$defs/locationReferences"
        },
        "name": {
            "$ref": "#/$defs/name"
        },
        "ref": {
            "$ref": "#/$defs/ref"
        },
        "roadway": {
            "$ref": "#/$defs/roadway"
        },
        "lanes": {
            "$ref": "#/$defs/lanes"
        },
        "price": {
            "$ref": "#/$defs/price"
        },
        "ML_lanes": {
            "$ref": "#/$defs/lanes"
        },
        "ML_price": {
            "$ref": "#/$defs/ML_price"
        },
        "ML_access_point": {
            "$ref": "#/$defs/ML_access_egress"
        },
        "ML_egress_point": {
            "$ref": "#/$defs/ML_access_egress"
        },
        "walk_access": {
            "$ref": "#/$defs/walk_access"
        },
        "bike_access": {
            "$ref": "#/$defs/bike_access"
        },
        "bike_facility": {
            "$ref": "#/$defs/bike_facility"
        },
        "drive_access": {
            "$ref": "#/$defs/drive_access"
        },
        "bus_only": {
            "$ref": "#/$defs/bus_only"
        },
        "rail_only": {
            "$ref": "#/$defs/rail_only"
        },
        "segment_id": {
            "$ref": "#/$defs/segment_id"
        },
        "ignore_missing": {
            "type": "boolean"
        },
        "all": {
            "type": "boolean"
        }
    }
}

roadway.roadway_node.json

Type: Object

Additional Information:

  • description: Requirements for roadway nodes.

  • title: Roadway nodes

Definitions:

Definition Type Description Restrictions
model_node_id integer Primary key to the nodes object.
point array of Any items. The Point Schema
X number X coordinate (e.g. Longitude)
Y number Y coordinate (e.g. Latitude)
Z number Z coordinate (e.g. Altitude)
osm_node_id string Reference to the corresponding Open Street Map node.
shstReferenceId_node string Shared streets node ID reference.
walk_node ['integer', 'boolean'] Indicates node is part of the pedestrian network. Useful for exporting or querying networks by mode.
bike_node ['integer', 'boolean'] Indicates node is part of the bike network. Useful for exporting or querying networks by mode.
drive_node ['integer', 'boolean'] Indicates node is part of the driving network. Useful for exporting or querying networks by mode.
transit_node ['integer', 'boolean'] Indicates node is part of the transit network. Useful for exporting or querying networks by mode.

Properties:

Property Type Description Restrictions
model_node_id #/$defs/model_node_id -
osm_node_id #/$defs/osm_node_id -
shstReferenceId #/$defs/shstReferenceId_node -
outboundReferenceIds array of Any items. -
inboundReferenceIds array of Any items. -
walk_node #/$defs/walk_node -
bike_node #/$defs/bike_node -
drive_node #/$defs/drive_node -
transit_node #/$defs/transit_node -
X #/$defs/X -
Y #/$defs/Y -
Z #/$defs/Z -

Required:

  • “model_node_id”
  • “X”
  • “Y”

Roadway nodes Example 1
{
    "model_node_id": 1,
    "X": -122.419,
    "Y": 37.774
}
Roadway nodes Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Requirements for roadway nodes.",
    "type": "object",
    "$defs": {
        "model_node_id": {
            "type": "integer",
            "uniqueItems": true,
            "description": "Primary key to the nodes object."
        },
        "point": {
            "type": "array",
            "description": "The Point Schema",
            "minItems": 2,
            "maxItems": 3,
            "prefixItems": [
                {
                    "$ref": "#/$defs/X"
                },
                {
                    "$ref": "#/$defs/Y"
                }
            ],
            "items": {
                "$ref": "#/$defs/Z"
            }
        },
        "X": {
            "type": "number",
            "description": "X coordinate (e.g. Longitude)"
        },
        "Y": {
            "type": "number",
            "description": "Y coordinate (e.g. Latitude)"
        },
        "Z": {
            "type": "number",
            "description": "Z coordinate (e.g. Altitude)"
        },
        "osm_node_id": {
            "type": "string",
            "examples": [
                "954734870"
            ],
            "description": "Reference to the corresponding Open Street Map node."
        },
        "shstReferenceId_node": {
            "type": "string",
            "examples": [
                "0751f5ce12472360fed0d0e80ceae35c"
            ],
            "description": "Shared streets node ID reference."
        },
        "walk_node": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates node is part of the pedestrian network. Useful for exporting or querying networks by mode."
        },
        "bike_node": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates node is part of the bike network. Useful for exporting or querying networks by mode."
        },
        "drive_node": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates node is part of the driving network. Useful for exporting or querying networks by mode."
        },
        "transit_node": {
            "type": [
                "integer",
                "boolean"
            ],
            "description": "Indicates node is part of the transit network. Useful for exporting or querying networks by mode."
        }
    },
    "title": "Roadway nodes",
    "required": [
        "model_node_id",
        "X",
        "Y"
    ],
    "examples": [
        {
            "model_node_id": 1,
            "X": -122.419,
            "Y": 37.774
        }
    ],
    "properties": {
        "model_node_id": {
            "$ref": "#/$defs/model_node_id"
        },
        "osm_node_id": {
            "$ref": "#/$defs/osm_node_id"
        },
        "shstReferenceId": {
            "$ref": "#/$defs/shstReferenceId_node"
        },
        "outboundReferenceIds": {
            "type": "array",
            "items": {
                "$ref": "roadway_link.json#/$defs/shstReferenceId_link"
            }
        },
        "inboundReferenceIds": {
            "type": "array",
            "items": {
                "$ref": "roadway_link.json#/$defs/shstReferenceId_link"
            }
        },
        "walk_node": {
            "$ref": "#/$defs/walk_node"
        },
        "bike_node": {
            "$ref": "#/$defs/bike_node"
        },
        "drive_node": {
            "$ref": "#/$defs/drive_node"
        },
        "transit_node": {
            "$ref": "#/$defs/transit_node"
        },
        "X": {
            "$ref": "#/$defs/X"
        },
        "Y": {
            "$ref": "#/$defs/Y"
        },
        "Z": {
            "$ref": "#/$defs/Z"
        }
    }
}
roadway.selection.select_node.json

Type: Object

Additional Information:

  • description: Selection of a single roadway node in the facility section of a project card.

  • title: Single roadway network node

  • additionalProperties: False

Properties:

Property Type Description Restrictions
osm_node_id ../roadway_node.json#/$defs/osm_node_id -
model_node_id ../roadway_node.json#/$defs/model_node_id -

One Of:

  • {“required”: [“osm_node_id”]}
  • {“required”: [“model_node_id”]}

Single roadway network node Example 1
{
    "osm_node_id": "12345"
}
Single roadway network node Example 2
{
    "model_node_id": 67890
}
Single roadway network node Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "object",
    "description": "Selection of a single roadway node in the `facility` section of a project card.",
    "title": "Single roadway network node",
    "additionalProperties": false,
    "oneOf": [
        {
            "required": [
                "osm_node_id"
            ]
        },
        {
            "required": [
                "model_node_id"
            ]
        }
    ],
    "examples": [
        {
            "osm_node_id": "12345"
        },
        {
            "model_node_id": 67890
        }
    ],
    "properties": {
        "osm_node_id": {
            "$ref": "../roadway_node.json#/$defs/osm_node_id"
        },
        "model_node_id": {
            "$ref": "../roadway_node.json#/$defs/model_node_id"
        }
    }
}
roadway.selection.select_links.json

Type: Object

Additional Information:

  • description: requirements for describing links in the facility section of a project card.

  • title: Roadway link selection

  • additionalProperties: True

  • not: {‘anyOf’: [{‘required’: [‘from’]}, {‘required’: [‘to’]}]}

Properties:

Property Type Description Restrictions
all boolean -
name array of Any items. -
ref array of Any items. -
osm_link_id array of Any items. -
model_link_id array of Any items. -
modes array of Any items. -
ignore_missing boolean If true, missing links for explicit ID selections will be ignored. Defaults to true.

Required:

  • “ignore_missing”
One Of:
  • {“required”: [“name”]}
  • {“required”: [“ref”]}
  • {“required”: [“osm_link_id”]}
  • {“required”: [“model_link_id”]}
  • {“required”: [“all”]}

Roadway link selection Example 1
{
    "name": [
        "Main St"
    ],
    "modes": [
        "drive"
    ]
}
Roadway link selection Example 2
{
    "osm_link_id": [
        "123456789"
    ]
}
Roadway link selection Example 3
{
    "model_link_id": [
        123456789
    ],
    "modes": [
        "walk"
    ]
}
Roadway link selection Example 4
{
    "all": true,
    "modes": [
        "transit"
    ]
}
Roadway link selection Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "requirements for describing links in the `facility` section of a project card.",
    "type": "object",
    "title": "Roadway link selection",
    "required": [
        "ignore_missing"
    ],
    "oneOf": [
        {
            "required": [
                "name"
            ]
        },
        {
            "required": [
                "ref"
            ]
        },
        {
            "required": [
                "osm_link_id"
            ]
        },
        {
            "required": [
                "model_link_id"
            ]
        },
        {
            "required": [
                "all"
            ]
        }
    ],
    "additionalProperties": true,
    "not": {
        "anyOf": [
            {
                "required": [
                    "from"
                ]
            },
            {
                "required": [
                    "to"
                ]
            }
        ]
    },
    "examples": [
        {
            "name": [
                "Main St"
            ],
            "modes": [
                "drive"
            ]
        },
        {
            "osm_link_id": [
                "123456789"
            ]
        },
        {
            "model_link_id": [
                123456789
            ],
            "modes": [
                "walk"
            ]
        },
        {
            "all": true,
            "modes": [
                "transit"
            ]
        }
    ],
    "properties": {
        "all": {
            "type": "boolean"
        },
        "name": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../roadway_link.json#/$defs/name"
            }
        },
        "ref": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../roadway_link.json#/$defs/ref"
            }
        },
        "osm_link_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../roadway_link.json#/$defs/osm_link_id"
            }
        },
        "model_link_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../roadway_link.json#/$defs/model_link_id"
            }
        },
        "modes": {
            "type": "array",
            "items": {
                "$ref": "../../defs/mode.json"
            }
        },
        "ignore_missing": {
            "type": "boolean",
            "description": "If true, missing links for explicit ID selections will be ignored. Defaults to true.",
            "default": true
        }
    }
}
roadway.selection.select_nodes.json

Type: Object

Additional Information:

  • description: requirements for describing multiple nodes of a project card (e.g. to delete).

  • additionalProperties: False

  • title: Roadway network node

Properties:

Property Type Description Restrictions
osm_node_id array of Any items. -
model_node_id array of Any items. -
ignore_missing boolean If true, missing nodes for explicit ID selections will be ignored. Defaults to true.
all boolean -

Required:

  • “ignore_missing”
Any Of:
  • {“required”: [“osm_node_id”]}
  • {“required”: [“model_node_id”]}

Roadway network node Example 1
{
    "osm_node_id": [
        "12345",
        "67890"
    ],
    "model_node_id": [
        12345,
        67890
    ]
}
Roadway network node Example 2
{
    "osm_node_id": [
        "12345",
        "67890"
    ]
}
Roadway network node Example 3
{
    "model_node_id": [
        12345,
        67890
    ]
}
Roadway network node Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "requirements for describing multiple nodes of a project card (e.g. to delete).",
    "type": "object",
    "additionalProperties": false,
    "title": "Roadway network node",
    "required": [
        "ignore_missing"
    ],
    "anyOf": [
        {
            "required": [
                "osm_node_id"
            ]
        },
        {
            "required": [
                "model_node_id"
            ]
        }
    ],
    "examples": [
        {
            "osm_node_id": [
                "12345",
                "67890"
            ],
            "model_node_id": [
                12345,
                67890
            ]
        },
        {
            "osm_node_id": [
                "12345",
                "67890"
            ]
        },
        {
            "model_node_id": [
                12345,
                67890
            ]
        }
    ],
    "properties": {
        "osm_node_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../roadway_node.json#/$defs/osm_node_id"
            }
        },
        "model_node_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../roadway_node.json#/$defs/model_node_id"
            }
        },
        "ignore_missing": {
            "type": "boolean",
            "description": "If true, missing nodes for explicit ID selections will be ignored. Defaults to true.",
            "default": true
        },
        "all": {
            "type": "boolean"
        }
    }
}
roadway.selection.select_segment.json

Type: Object

Additional Information:

  • id: facility_roadway

  • additionalProperties: False

  • title: Roadway Facility Selection

Properties:

Property Type Description Restrictions
links select_links.json -
nodes select_nodes.json -
from select_node.json -
to select_node.json -

Any Of:

  • {“required”: [“links”, “from”, “to”]}
  • {“required”: [“links”]}
  • {“required”: [“nodes”]}

Roadway Facility Selection Example 1
{
    "links": {
        "name": [
            "Main Street"
        ]
    },
    "from": {
        "model_node_id": 1
    },
    "to": {
        "model_node_id": 2
    }
}
Roadway Facility Selection Example 2
{
    "nodes": {
        "osm_node_id": [
            "1",
            "2",
            "3"
        ]
    }
}
Roadway Facility Selection Example 3
{
    "nodes": {
        "model_node_id": [
            1,
            2,
            3
        ]
    }
}
Roadway Facility Selection Example 4
{
    "links": {
        "model_link_id": [
            1,
            2,
            3
        ]
    }
}
Roadway Facility Selection Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "object",
    "id": "facility_roadway",
    "additionalProperties": false,
    "anyOf": [
        {
            "required": [
                "links",
                "from",
                "to"
            ]
        },
        {
            "required": [
                "links"
            ]
        },
        {
            "required": [
                "nodes"
            ]
        }
    ],
    "title": "Roadway Facility Selection",
    "examples": [
        {
            "links": {
                "name": [
                    "Main Street"
                ]
            },
            "from": {
                "model_node_id": 1
            },
            "to": {
                "model_node_id": 2
            }
        },
        {
            "nodes": {
                "osm_node_id": [
                    "1",
                    "2",
                    "3"
                ]
            }
        },
        {
            "nodes": {
                "model_node_id": [
                    1,
                    2,
                    3
                ]
            }
        },
        {
            "links": {
                "model_link_id": [
                    1,
                    2,
                    3
                ]
            }
        }
    ],
    "properties": {
        "links": {
            "$ref": "select_links.json"
        },
        "nodes": {
            "$ref": "select_nodes.json"
        },
        "from": {
            "$ref": "select_node.json"
        },
        "to": {
            "$ref": "select_node.json"
        }
    }
}

transit.transit_stop.json

Type: Object

Additional Information:

  • description: Transit stop properties.

  • additionalProperties: True

Definitions:

Definition Type Description Restrictions
stop_id string ID for specific transit stop.

Properties:

Property Type Description Restrictions
stop_id #/$defs/stop_id -
transit_stop Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Transit stop properties.",
    "type": "object",
    "$defs": {
        "stop_id": {
            "type": "string",
            "description": "ID for specific transit stop."
        }
    },
    "additionalProperties": true,
    "properties": {
        "stop_id": {
            "$ref": "#/$defs/stop_id"
        }
    }
}

transit.transit_routing.json

Type: array of Any items.

Property Value
anyOf - {"$ref": "#/$defs/detailed_route_stop"}
- {"$ref": "#/$defs/stop_id_str"}
- {"type": "integer"}

Definitions:

Definition Type Description Restrictions
stop_id_str string ID for stop.
detailed_route_stop object Stop with detailed attributes.
route_stop_attributes object Stop charactersitics for a given trip pattern.
transit_routing Example 1
[
    {
        "1": {
            "stop": true
        }
    },
    {
        "2": {
            "stop": true
        }
    },
    {
        "3": {
            "stop": true
        }
    },
    {
        "4": {
            "stop": true
        }
    },
    {
        "5": {
            "stop": true,
            "dwell_sec": 30
        }
    },
    "6"
]
transit_routing Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Transit trip pattern / routing properties.",
    "type": "array",
    "$defs": {
        "stop_id_str": {
            "type": "string",
            "description": "ID for stop.",
            "regex": "^[0-9]+$"
        },
        "detailed_route_stop": {
            "type": "object",
            "description": "Stop with detailed attributes.",
            "properties": {},
            "additionalProperties": {
                "$ref": "#/$defs/route_stop_attributes"
            },
            "propertyNames": {
                "ref": "#/$defs/stop_id_str"
            },
            "minProperties": 1,
            "maxProperties": 1,
            "examples": [
                {
                    "1": {
                        "stop": true
                    }
                }
            ]
        },
        "route_stop_attributes": {
            "type": "object",
            "description": "Stop charactersitics for a given trip pattern.",
            "additionalProperties": false,
            "properties": {
                "stop": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether this is a stop. Defaults to False."
                },
                "dwell_sec": {
                    "type": "integer",
                    "description": "Dwell time in seconds."
                },
                "time_to_next_node_sec": {
                    "type": "integer",
                    "description": "Time to next node in seconds. Defaults to network travel time."
                },
                "board": {
                    "type": "boolean",
                    "description": "Whether passengers can board at this stop.Defaults to True if stop=true. specify only when not default."
                },
                "alight": {
                    "type": "boolean",
                    "description": "Whether passengers can alight at this stop. Defaults to True if stop=true. specify only when not default."
                }
            }
        }
    },
    "minItems": 2,
    "items": {
        "anyOf": [
            {
                "$ref": "#/$defs/detailed_route_stop"
            },
            {
                "$ref": "#/$defs/stop_id_str"
            },
            {
                "type": "integer"
            }
        ]
    },
    "examples": [
        [
            {
                "1": {
                    "stop": true
                }
            },
            {
                "2": {
                    "stop": true
                }
            },
            {
                "3": {
                    "stop": true
                }
            },
            {
                "4": {
                    "stop": true
                }
            },
            {
                "5": {
                    "stop": true,
                    "dwell_sec": 30
                }
            },
            "6"
        ]
    ]
}

transit.transit_route.json

Type: Object

Additional Information:

description: Transit service properties.

Definitions:

Definition Type Description Restrictions
agency_id string ID for agency.
route_id string ID for general route.
route_short_name string Route short name.
route_long_name string Route long name.
route_type integer Route type. Enumeration: 0,1,2,3,4,5,6,7,11,12

Properties:

Property Type Description Restrictions
route_id #/$defs/route_id -
agency_id #/$defs/agency_id -
route_short_name #/$defs/route_short_name -
route_long_name #/$defs/route_long_name -
route_type #/$defs/route_type -
trips array of Any items. -

Required:

  • “route_id”
  • “agency_id”
  • “route_type”

transit_route Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Transit service properties.",
    "type": "object",
    "$defs": {
        "agency_id": {
            "type": "string",
            "description": "ID for agency."
        },
        "route_id": {
            "type": "string",
            "description": "ID for general route."
        },
        "route_short_name": {
            "type": "string",
            "description": "Route short name."
        },
        "route_long_name": {
            "type": "string",
            "description": "Route long name."
        },
        "route_type": {
            "type": "integer",
            "description": "Route type.",
            "enum": [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                11,
                12
            ],
            "enumDescriptions": [
                "Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area.",
                "Subway, Metro. Any underground rail system within a metropolitan area.",
                "Rail. Used for intercity or long-distance travel.",
                "Bus. Used for short- and long-distance bus routes.",
                "Ferry. Used for short- and long-distance boat service.",
                "Cable tram. Used for street-level rail cars where the cable runs beneath the vehicle, e.g., cable car in San Francisco.",
                "Aerial lift, suspended cable car (e.g., gondola lift, aerial tramway). Cable transport where cabins, cars, gondolas or open chairs are suspended by means of one or more cables.",
                "Funicular. Any rail system designed for steep inclines.",
                "Trolleybus. Electric buses that draw power from overhead wires using poles.",
                "Monorail. Railway in which the track consists of a single rail or a beam."
            ]
        }
    },
    "required": [
        "route_id",
        "agency_id",
        "route_type"
    ],
    "properties": {
        "route_id": {
            "$ref": "#/$defs/route_id"
        },
        "agency_id": {
            "$ref": "#/$defs/agency_id"
        },
        "route_short_name": {
            "$ref": "#/$defs/route_short_name"
        },
        "route_long_name": {
            "$ref": "#/$defs/route_long_name"
        },
        "route_type": {
            "$ref": "#/$defs/route_type"
        },
        "trips": {
            "type": "array",
            "items": {
                "$ref": "../transit/transit_trip.json"
            }
        }
    }
}

transit.transit_trip.json

Type: Object

Additional Information:

description: Transit trip properties.

Definitions:

Definition Type Description Restrictions
trip_id string ID for Individual trip a transit vehicle takes..
shape_id string ID for shape trip is following.
service_id string ID for service schedule.
trip_short_name string Route short name, often something like 38X.
trip_headsign string Trip Headsign.
direction_id integer Consistent with GTFS definition defining outbound vs inbound routes. Enumeration: 0,1
headway_secs_item object Headway for each time period.

Properties:

Property Type Description Restrictions
trip_id #/$defs/trip_id -
service_id #/$defs/service_id -
shape_id #/$defs/shape_id -
route_id transit_route.json#/$defs/route_id -
trip_headsign #/$defs/trip_headsign -
trip_short_name #/$defs/trip_short_name -
direction_id #/$defs/direction_id -
headway_secs array of Any items. -
routing transit_routing.json -

Required:

  • “headway_secs”
  • “routing”

transit_trip Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Transit trip properties.",
    "type": "object",
    "$defs": {
        "trip_id": {
            "type": "string",
            "description": "ID for Individual trip a transit vehicle takes.."
        },
        "shape_id": {
            "type": "string",
            "description": "ID for shape trip is following."
        },
        "service_id": {
            "type": "string",
            "description": "ID for service schedule."
        },
        "trip_short_name": {
            "type": "string",
            "description": "Route short name, often something like `38X`."
        },
        "trip_headsign": {
            "type": "string",
            "description": "Trip Headsign."
        },
        "direction_id": {
            "type": "integer",
            "enum": [
                0,
                1
            ],
            "description": "Consistent with GTFS definition defining outbound vs inbound routes."
        },
        "headway_secs_item": {
            "type": "object",
            "examples": [
                {
                    "('7:00', '9:00')": 600
                }
            ],
            "description": "Headway for each time period."
        }
    },
    "required": [
        "headway_secs",
        "routing"
    ],
    "properties": {
        "trip_id": {
            "$ref": "#/$defs/trip_id"
        },
        "service_id": {
            "$ref": "#/$defs/service_id"
        },
        "shape_id": {
            "$ref": "#/$defs/shape_id"
        },
        "route_id": {
            "$ref": "transit_route.json#/$defs/route_id"
        },
        "trip_headsign": {
            "$ref": "#/$defs/trip_headsign"
        },
        "trip_short_name": {
            "$ref": "#/$defs/trip_short_name"
        },
        "direction_id": {
            "$ref": "#/$defs/direction_id"
        },
        "headway_secs": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/headway_secs_item"
            }
        },
        "routing": {
            "$ref": "transit_routing.json"
        }
    }
}
transit.selection.select_trip_properties.json

Type: Object

Additional Information:

  • description: Selection properties for transit trips.

  • additionalProperties: True

Properties:

Property Type Description Restrictions
trip_id array of Any items. -
shape_id array of Any items. -
direction_id ../transit_trip.json#/$defs/direction_id -
service_id array of Any items. -
route_id array of Any items. -
trip_short_name array of Any items. -
select_trip_properties Example 1
{
    "trip_id": [
        "1",
        "2"
    ],
    "direction_id": 0
}
select_trip_properties Example 2
{
    "shape_id": [
        "1",
        "2"
    ]
}
select_trip_properties Example 3
{
    "service_id": [
        "1",
        "2"
    ],
    "route_id": [
        "1",
        "2"
    ]
}
select_trip_properties Example 4
{
    "trip_short_name": [
        "1",
        "2"
    ]
}
select_trip_properties Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Selection properties for transit trips.",
    "type": "object",
    "additionalProperties": true,
    "examples": [
        {
            "trip_id": [
                "1",
                "2"
            ],
            "direction_id": 0
        },
        {
            "shape_id": [
                "1",
                "2"
            ]
        },
        {
            "service_id": [
                "1",
                "2"
            ],
            "route_id": [
                "1",
                "2"
            ]
        },
        {
            "trip_short_name": [
                "1",
                "2"
            ]
        }
    ],
    "properties": {
        "trip_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_trip.json#/$defs/trip_id"
            }
        },
        "shape_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_trip.json#/$defs/shape_id"
            }
        },
        "direction_id": {
            "$ref": "../transit_trip.json#/$defs/direction_id"
        },
        "service_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_trip.json#/$defs/service_id"
            }
        },
        "route_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_route.json#/$defs/route_id"
            }
        },
        "trip_short_name": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_trip.json#/$defs/trip_short_name"
            }
        }
    }
}
transit.selection.select_trips.json

Type: Object

Additional Information:

  • additionalProperties: False

  • title: Transit Service Facility Selection

Properties:

Property Type Description Restrictions
trip_properties select_trip_properties.json -
route_properties select_route_properties.json -
timespans array of Any items. -
nodes select_nodes.json -
Transit Service Facility Selection Example 1
{
    "trip_properties": {
        "route_id": [
            "1234"
        ],
        "bikes_allowed": "1"
    },
    "route_properties": {
        "agency_id": [
            "2"
        ]
    },
    "timespans": [
        [
            "06:00:00",
            "09:00:00"
        ]
    ]
}
Transit Service Facility Selection Example 2
{
    "trip_properties": {
        "route_id": [
            "4321"
        ]
    },
    "route_properties": {
        "agency_id": [
            "1"
        ]
    },
    "timespans": [
        [
            "06:00:00",
            "09:00:00"
        ],
        [
            "15:00:00",
            "18:00:00"
        ]
    ]
}
Transit Service Facility Selection Example 3
{
    "nodes": {
        "model_node_id": [
            1,
            2,
            3
        ],
        "require": "all"
    }
}
Transit Service Facility Selection Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "type": "object",
    "additionalProperties": false,
    "title": "Transit Service Facility Selection",
    "examples": [
        {
            "trip_properties": {
                "route_id": [
                    "1234"
                ],
                "bikes_allowed": "1"
            },
            "route_properties": {
                "agency_id": [
                    "2"
                ]
            },
            "timespans": [
                [
                    "06:00:00",
                    "09:00:00"
                ]
            ]
        },
        {
            "trip_properties": {
                "route_id": [
                    "4321"
                ]
            },
            "route_properties": {
                "agency_id": [
                    "1"
                ]
            },
            "timespans": [
                [
                    "06:00:00",
                    "09:00:00"
                ],
                [
                    "15:00:00",
                    "18:00:00"
                ]
            ]
        },
        {
            "nodes": {
                "model_node_id": [
                    1,
                    2,
                    3
                ],
                "require": "all"
            }
        }
    ],
    "properties": {
        "trip_properties": {
            "$ref": "select_trip_properties.json"
        },
        "route_properties": {
            "$ref": "select_route_properties.json"
        },
        "timespans": {
            "type": "array",
            "items": {
                "$ref": "../../defs/timespan.json"
            },
            "minItems": 1
        },
        "nodes": {
            "$ref": "select_nodes.json"
        }
    }
}
transit.selection.select_route_properties.json

Type: Object

Additional Information:

  • description: Selection proeprties for transit routes.

  • additionalProperties: True

Properties:

Property Type Description Restrictions
route_short_name array of Any items. -
route_long_name array of Any items. -
agency_id array of Any items. -
route_type array of Any items. -
select_route_properties Example 1
{
    "route_short_name": [
        "1",
        "2",
        "3"
    ]
}
select_route_properties Example 2
{
    "agency_id": [
        "1"
    ],
    "route_long_name": [
        "Route 1",
        "Route 2",
        "Route 3"
    ]
}
select_route_properties Example 3
{
    "agency_id": [
        "1"
    ],
    "route_type": [
        0,
        1,
        2
    ]
}
select_route_properties Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "Selection proeprties for transit routes.",
    "type": "object",
    "additionalProperties": true,
    "examples": [
        {
            "route_short_name": [
                "1",
                "2",
                "3"
            ]
        },
        {
            "agency_id": [
                "1"
            ],
            "route_long_name": [
                "Route 1",
                "Route 2",
                "Route 3"
            ]
        },
        {
            "agency_id": [
                "1"
            ],
            "route_type": [
                0,
                1,
                2
            ]
        }
    ],
    "properties": {
        "route_short_name": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_route.json#/$defs/route_short_name"
            }
        },
        "route_long_name": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_route.json#/$defs/route_long_name"
            }
        },
        "agency_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_route.json#/$defs/agency_id"
            }
        },
        "route_type": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_route.json#/$defs/route_type"
            }
        }
    }
}
transit.selection.select_nodes.json

Type: Object

Additional Information:

  • description: requirements for describing multiple transit nodes of a project card (e.g. to delete).

  • additionalProperties: False

  • title: Transit network nodes

Properties:

Property Type Description Restrictions
stop_id array of Any items. -
model_node_id array of Any items. -
require string - Enumeration: any,all

One Of:

  • {“required”: [“stop_id”]}
  • {“required”: [“model_node_id”]}

Transit network nodes Example 1
{
    "stop_id": [
        "stop1",
        "stop2"
    ],
    "require": "any"
}
Transit network nodes Example 2
{
    "model_node_id": [
        1,
        2
    ],
    "require": "all"
}
Transit network nodes Contents
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "description": "requirements for describing multiple transit nodes of a project card (e.g. to delete).",
    "type": "object",
    "additionalProperties": false,
    "title": "Transit network nodes",
    "oneOf": [
        {
            "required": [
                "stop_id"
            ]
        },
        {
            "required": [
                "model_node_id"
            ]
        }
    ],
    "examples": [
        {
            "stop_id": [
                "stop1",
                "stop2"
            ],
            "require": "any"
        },
        {
            "model_node_id": [
                1,
                2
            ],
            "require": "all"
        }
    ],
    "properties": {
        "stop_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../transit_stop.json#/$defs/stop_id"
            }
        },
        "model_node_id": {
            "type": "array",
            "minItems": 1,
            "items": {
                "$ref": "../../roadway/roadway_node.json#/$defs/model_node_id"
            }
        },
        "require": {
            "type": "string",
            "enum": [
                "any",
                "all"
            ]
        }
    }
}