--- id: SCH-32 family: GR-SCHEMA level: extended profiles: [storage-api, editor-client] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-schema/sch-32 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # SCH-32 — Every re-enterable node gets a hidden loop-back input *GR-SCHEMA (Part I) · level: extended · profiles: storage-api, editor-client · added in 1.0* Re-entry is a property of the graph, not of a handful of node types. Every node that can be re-entered declares the port; it just ships hidden, so no canvas gains a re-entry handle until an author asks for one. ## The rule > **Normative.** This is the rule. > > 1. A reserved `loop_back` input is injected on every re-enterable node type (every node type that is not a start, terminal or non-executable one) with display order 95 and the `trigger` lane, and it ships hidden, so no canvas gains a re-entry handle until an author exposes the port on that instance. > > 2. A node type that declares its own `loop_back` keeps it and the injection is skipped, because such a declaration carries semantics the injection does not. > > 3. Because the port is now declared rather than absent, an edge drawn into an unexposed `loop_back` is refused as an edge into an unexposed port, where previously it fell outside the check entirely. ## Related rules - Names: SCH-16, SCH-37, SCH-38 - Referenced by: SCH-16, SCH-33, SCH-38 --- 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.