An instance override decides exposure; otherwise the default does
The rule
Normative: this is the rule
- A port is exposed on a node instance when the instance's direction-scoped overrides in
data.config.portscontain an entry for that port carrying anexposedkey: that key's value is the answer. - Where there is no such entry, or the entry carries no
exposedkey, the port's default exposure decides (exposedByDefault, CFG-2).
What it means
Being named in the direction-scoped overrides is not, by itself, an override.
An entry for a port can exist there for reasons that have nothing to do with
exposure, so the only thing that flips a port away from its default is that
entry carrying an exposed key. A port named but silent on exposed reads
exactly as a port not named at all.
Example
The port value defaults exposed; error defaults hidden (EXPO-4). Three
override shapes for value land on two different answers.
{ "id": "value", "exposed": false }{ "id": "error", "exposed": true }{ "id": "value" }The third entry names the same port as the first, and still resolves to the default: naming a port is not deciding about it.
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 · EXPO-2 · changed in spec 1.0