Dynamic port names are constrained and unique across the node
The rule
Normative: this is the rule
- A dynamic port name begins with an ASCII letter and continues with ASCII letters, digits or underscores.
- It must not be a reserved name, and it must be unique across the union of the node's dynamic input and dynamic output names: an input and an output on the same node may not share a name.
- A definition that breaks any of these is refused.
What it means
The pattern is ASCII-only: a name begins with a letter from a-z or
A-Z and continues with ASCII letters, digits or underscores. A name
written with a non-ASCII letter fails even though it reads as an ordinary
word to a person, and a single ASCII letter on its own is enough to pass.
Uniqueness is checked across the union of a node's dynamic inputs and dynamic outputs, not within each side separately. An input and an output on the same node cannot share a name, even though one is never confused for the other at the point where a value is delivered.
Example
"pörtchen"[{ "name": "in_1" }, { "name": "Alpha2" }, { "name": "a" }]The same definition declared on both sides of one node, not just repeated within one side, is refused too:
[{ "name": "shared" }]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 · DYN-3 · changed in spec 1.0