A shape is a named JSON Schema, and the shape id is the lane id
Shapes let a lane say what it carries (an order, an entity, a remote contract) without adding a second vocabulary an editor would have to reconcile with lanes.
The rule
Normative: this is the rule
- A port shape is a named JSON Schema whose id is a lane id: one id space, no second vocabulary axis.
- A shape is declared in one of two places, and the difference is whose it is.
- A shape that belongs to code ships and updates with the ports that wear it, needs nothing installed alongside it, and may compute its schema, so one declaration can yield a family of lanes; a derived member's id is
base:derivative. - A shape that belongs to the site is declared in the site's own configuration, added without writing code, and travels and diffs with that configuration.
- Every shipped lane that is not a primitive has a shape.
- A shape names a value; it does not check one.
- Nothing validates a value against a shape.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · SCH-42 · changed in spec 1.0