A declared edge type wins over the handle, if it is recognised
An edge may name its own kind instead of leaving it to the handles. Because a named kind overrides what the handles say, a name nobody recognises is refused rather than carried through.
The rule
Normative: this is the rule
- An edge is a tool edge when its declared
data.edgeTypeistool_availability, or, where there is no declaration, when its target handle ends with-input-tool. - A recognised declaration decides in both directions: a declared
tool_availabilitymakes an edge with an ordinary handle a tool edge, and any other recognised declaration makes an edge with a-input-toolhandle not one. - A declaration that is absent, empty, or not a string falls back to the handle.
- A declared type that is not recognised is refused at save with a validation error: an implementation must not carry an unrecognised type through as a kind of its own, where it matches nothing and so is neither classified nor excluded, and a mistyped kind silently becomes an ordinary ordering edge.
Why
Recorded under OPEN-17.
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 · EDGE-5 · changed in spec 1.0