--- id: EDGE-9 family: GR-EDGE level: extended profiles: [storage-api, editor-client] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-edge/edge-9 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # EDGE-9 — Two edge vocabularies, and they never mix *GR-EDGE (Part I) · level: extended · profiles: storage-api, editor-client · added in 1.0* An edge is written one way on the wire and another way in the execution record. Each form has its own key names, and a key from the wrong bag produces something nothing reads. ## The rule > **Normative.** This is the rule. > > 1. An edge has two forms, each with its own key names. > > 2. In transport, the form an editor reads and writes, the keys are `source`, `target`, `sourceHandle` and `targetHandle`. > > 3. In the execution record they are `source_handle`, `target_handle`, `is_trigger`, `is_loopback`, `is_tool`, `branch_name` and `edge_id`. > > 4. Neither vocabulary may carry a key belonging to the other. --- 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.