General

July 25, 2018 ยท View on GitHub

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.

Definition

field nameformatdescription
whenobjectA Timespan object that determines when the regulation applies
rulesobject or arrayOne or more Rule objects that may apply when the regulation is in effect
priorityint (values: 1-4)Determines when this regulation should supersede or be superseded per the list of regulation priorities

Examples

Examples of Simple RegulationsSimple regulatory scenarios typically involving one or two basic rules
Examples of Complex RegulationsComplex scenarios that address multiple user classes, complicated expressions of time, and overlapping regulations