A Regulation defines what is allowed or prohibited at a section of curb during a particular TimeSpan. A given Regulation has one more Rules which may apply to different classes of users (UserClasses).
A regulation has three parts:
- when: When is this regulation in effect (TimeSpan)
- rules: One or more Rules that may be applied when the regulation is in effect
- priority: How should this regulation supersede or be superseded by others
Conceptually, Rules have two parts:
- who: To whom does the regulation apply
- what: What use policies applies when the rule is in effect
Once a full set of prioritized regulations is resolved, there should be only a single applicable [[Rule]] at a given location on the curb for any particular combination of who and when. In some cases, there will be no applicable Rule.
It is also possible to programmatically identify locations with conflicting or ambiguous regulations.
field name | format | description |
---|---|---|
when | object |
A Timespan object that determines when the regulation applies |
rules | object or array |
One or more Rule objects that may apply when the regulation is in effect |
priority | int (values: 1-4 ) |
Determines when this regulation should supersede or be superseded per the list of regulation priorities |
Examples of Simple Regulations | Simple regulatory scenarios typically involving one or two basic rules |
Examples of Complex Regulations | Complex scenarios that address multiple user classes, complicated expressions of time, and overlapping regulations |