OptionalbranchPath: stringBreak state captured at the top-level of the most recent execute().
shouldBreak is true when a stage called scope.$break(reason); the
optional reason carries the string passed to $break.
Used by SubflowExecutor to propagate an inner subflow's break up to
the parent traverser when the mount sets propagateBreak: true.
Global recorder backend when constructed here; component dispatch may exist with prose disabled.
Optionaloptions: { redact?: boolean }Optionalcorrelation?: RunCorrelationOptionalinitialState?: Record<string, unknown>The commit log's fold base — see RuntimeSnapshot.initialState.
Optional ReadonlylogAddress?: LogAddressOptional ReadonlyreadSources?: EngineReadSourcesOptionalrecorders?: { data: unknown; id: string; name: string }[]OptionalsubflowResults?: Record<string, unknown>Dual-keyed by subflow path (last iteration) AND per-execution mount runtimeStageId (each iteration) — see RuntimeSnapshot.subflowResults / subflow-commit-visibility.
Default maximum nested executeNode depth before an error is thrown.
What counts as depth (trampoline model):
executeNodeis an iterative driver — linearnexthops, loop edges (loopTo/dynamic next), and dynamic-subflow re-entry are followed in a flat loop and consume NO depth. Depth grows only with true tree nesting: one level for a fork's or selector's children, one per decider branch dispatch that must return to its invoker (decider with its ownnext). A subflow mount consumes no depth: Phase 0 hands it toSubflowExecutor, and the subflow body runs on a FRESH traverser whose root context has no parent, so it starts again at depth 1. Nesting subflows inside subflows is not bounded by this cap.500 therefore covers any realistic chart — it bounds nesting within one traverser, not chain length or loop count. Loops are bounded by
ContinuationResolver's independent iteration limit (default 1000, configurable viaRunOptions.maxIterations), which is now the binding constraint for loop-heavy pipelines.Parallel siblings share their parent's depth + 1 — a fork or selector of any width is one level, never one level per child.