The action it dispatches to — resolved here so the submitter needs no metadata lookup.
Human-readable name of that action, used for the task's name.
The MJ: Entity Actions binding that fired.
The entity whose save fired this.
Name of that entity, for a task description a person can read.
Which lifecycle event fired — AfterCreate / AfterUpdate / AfterDelete.
OptionalProviderOptional originating provider (typically entity.ProviderToUse). When present, a submitter
persists durable task/work-queue rows through this provider so the submission joins the
saving entity's open SQL transaction atomically (committing or rolling back together).
The record, in MJ's canonical serialized form (ToConcatenatedString()).
The action's input parameters, already redacted — the name → value record produced by
RedactParamsToRecord in ./ParamRedaction. A parameter suppressed by any redaction
rule is omitted entirely, not present with an undefined or placeholder value.
Typed as a Record<string, unknown> rather than ActionParam[] / LoggedParam[]
deliberately: Task.InputPayload is persistent, user-visible storage, and the #3408 §5.7
invariant is that no path writes a raw ActionParam[] there. It also isn't the array/log
shape RedactParams/RedactParamsToJSON produce — a positional array here is silently
wrong rather than loudly wrong: it round-trips through JSON.stringify/JSON.parse without
error, and every released build with durable dispatch (v6.1.0 onward, including 6.1.4) hit
the same failure — TaskGraphDispatcher's mergedPayload only merges plain objects, so it
silently dropped the array and the action ran with NONE of its inputs. Params named "0",
"1", … instead of their real names would only appear if the array reached
TaskGraphActionRunner.buildParams directly, bypassing that drop (MJ#4794). Taking the
redacted record shape at the boundary is what makes violating that invariant require
changing this type rather than forgetting a call.
One durable dispatch: which binding, on which record, with what already-redacted inputs.