Projects a spec node onto the Task.Configuration bag.
Everything the row cannot hold in a column of its own: the kind-specific settings, the payload
mappings, and the execution policy. Returning null for an empty result keeps Configuration
NULL rather than "{}", so "this step has no settings" reads the same in the database as it does
in the spec.
The mappings are the point. They are how a step's result reaches the payload, and every
branch condition downstream reads the payload — so a step persisted without them produces a
workflow whose conditions all evaluate against nothing. Undefined is falsy, so that failure looks
exactly like a branch legitimately not being taken.
Projects a spec node onto the
Task.Configurationbag.Everything the row cannot hold in a column of its own: the kind-specific settings, the payload mappings, and the execution policy. Returning
nullfor an empty result keepsConfigurationNULL rather than"{}", so "this step has no settings" reads the same in the database as it does in the spec.The mappings are the point. They are how a step's result reaches the payload, and every branch condition downstream reads the payload — so a step persisted without them produces a workflow whose conditions all evaluate against nothing. Undefined is falsy, so that failure looks exactly like a branch legitimately not being taken.