Functions
A station alias collides with an intersection name. Aliases and intersection names share one namespace, because process code addresses destinations by either.
Two elements of the same kind were given the same name. Names identify elements in messages, in statistics, and in the serialized specification, so they must be unique.
The link's length is not an integral multiple of its zone length, so the link cannot be divided into equal zones. Reports the remainder so that a modeler can tell a genuine specification error from a unit mismatch.
A vehicle occupying more than one zone was placed at an intersection. An intersection is a single zone, so it can hold only a one-zone vehicle.
A second transport system attempted to attach to a network that already has one. The runtime owns the network's mutable zone state, so two runtimes would corrupt each other.
A property that must be strictly positive was given a zero or negative value.
Two vehicles were placed so that the zones they occupy overlap. Because a zone admits at most one vehicle, such a placement cannot be realized.
A link begins and ends at the same intersection. A link must connect two distinct points.
A link declared as a spur ends at an intersection that is not a dead end. The spur exit reservation depends on the terminal having exactly one incident link.
A vehicle was placed on a link that has fewer zones than the vehicle occupies.
A link was specified with fewer than one zone, so it represents no space at all.