Interface: ProcessableChild
Defined in: packages/core/src/types.ts:324
One entry of Processable.getChildren().
Properties
edge
edge:
ProcessableEdge
Defined in: packages/core/src/types.ts:326
How this child is reached from its parent.
label
label:
string
Defined in: packages/core/src/types.ts:334
What this child is to this parent — 'onPass', 'catch', 'merge'.
Distinct from node.getName(), which is the child's own identity. The
same bot used as both onPass and onFail has one name and two roles,
and a reader needs the role to make sense of the shape.
node
node:
Processable
Defined in: packages/core/src/types.ts:360
nodeId
nodeId:
string
Defined in: packages/core/src/types.ts:359
The id this parent reports for this child in NodeContext.nodeId when it
runs it. The join between structure and liveness.
Separate from label because the two answer different questions and
genuinely disagree: a pipeline's second step is the role 'step 2' and the
address 'step-2'; a loop's child is the role 'body' and the address
stem 'iteration'. Reading liveness off label works for graph, gate
and router, and then silently fails for pipeline, loop, map,
filter and an unnamed parallel branch — the node lays out and never
lights up.
For a repeat edge this is a stem, not a whole id: one structural child
becomes many executions, and the runtime appends the ordinal
(iteration-1, iteration-2, try-3). That is the honest shape of a loop
rather than a defect to paper over, and the edge tag is what lets a
consumer handle it without naming a primitive.
Do not compare this by hand — use matchesChild(), which is the single
rule and handles the stem case.
For most primitives this equals label. Where it does not, the difference
is load-bearing.