1 on the first attempt, incremented by each retry.
Nodes this run added inside a container, flattened. Each one's container is reachable through Node.parentNode, so a payload can be grouped by parent without a second traversal.
Top-level nodes this run created and that are still unsaved.
The nodes the pivot was run on — "which event does this attach to".
Already on canvas before this run: vouched for, not created. Context only — writing these is the job of the run that produced them.
What the consumer is asked to write. Live graph objects rather than raw fragments, so the payload carries whatever the graph has made of them.
A retry carries only what is still unsaved, which is why this is built fresh per attempt rather than kept with the run.