FlowDrop Workflow Specification 1.0-draft

A control port declares its lane, never a schema type

The rule

Normative: this is the rule
  1. trigger, tool and loop_back carry no value, so no JSON Schema type describes them.
  2. A control port declares x-data-type and no type, and a reserved-port injection assigns the lane by the port's role rather than deriving it.
  3. Control lanes remain full members of the lane vocabulary; what is forbidden is spelling one in type.
  4. A lane that carries no value is not offered as a dynamic port type and is not on the list of lanes an author may pick.

What it means

Writing a control lane's own name into type does not declare that kind of port. trigger and tool are lanes, not JSON Schema words, so a property that spells one there is judged by the same derivation as any other unrecognised word: it falls to the data sink, mixed, not to the control lane the author meant. The lane still exists — it is simply reached through x-data-type, never through type.

Example

The lane name trigger, written as a type wordsink
"trigger"
The lane name tool, written as a type wordsink
"tool"

Neither spelling produces the control port it names; both produce an ordinary, unconstrained data port.

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-37 · changed in spec 1.0