StepContext contains metadata and is not an application context map.
Direct chaining and earlier values
Request to the first Step as a whole value.
It then derives ReportInput from the committed Diff and original request.
You do not author casts, binding lambdas or context keys.
The exact effective input and its provenance are saved before execution and reused after recovery.
Scope and ambiguity
A child exposes its declared output, not its internal values. A parallel branch or fan-out item sees its own state and legal outer values, not siblings’ private state. The enclosing join publishes typed results. Exclusive continuing arms may provide a proven shared result role; non-returning arms contribute no normal result. Whole compatible values take precedence over record assembly. Independent same-typed candidates refuse when no structural role selects one. Use distinct domain records such asQuality and Backport for distinct roles.
Do not rely on record component names, completion order or an arbitrary nearest earlier producer to disambiguate.
Parameterized Lists retain their element types.