--- id: LANG-2 family: GR-LANG level: core profiles: [storage-api, runtime] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-lang/lang-2 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # LANG-2 — A node's expression engine must be one the implementation provides *GR-LANG (Part I) · level: core · profiles: storage-api, runtime · added in 1.0* ## The rule > **Normative.** This is the rule. > > 1. A node that embeds an expression selects its engine through the reserved `engine` parameter, whose permitted values are exactly the engine identifiers the implementation provides. > > 2. A workflow naming an engine outside that set is refused when it is saved and again when the parameter is resolved. > > 3. An unrecognised engine identifier that reaches evaluation by some other route fails before any expression is evaluated. --- 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.