--- id: SCH-37 family: GR-SCHEMA level: core profiles: [storage-api, editor-client] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-schema/sch-37 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # SCH-37 — A control port declares its lane, never a schema type *GR-SCHEMA (Part I) · level: core · profiles: storage-api, editor-client · added in 1.0* ## 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. ## Related rules - Names: SCH-34, SCH-38 - Referenced by: SCH-10, SCH-32, SCH-34, SCH-38, SCH-40 --- Rule identifiers are permanent and are never renumbered. This specification carries no implementation status: each implementation publishes its own standing against these rules. Licensed CC BY 4.0.