Optionalabortedabort keys this unit added
Optionalappendedhow many units the plan appended
Optionalattemptswhich beat ran: claim, verify, apply, flush and so on
Optionalcoldrefused because the interpreter was not warm
OptionalcoldOptionaldetailOptionalfinished1 when the unit completed, from the row's own column
Optionalfnthe update function under way
Optionalkindthe unit's kind
Optionalmetersthe rows and statements this beat cost
Optionalmorewhether the run owes another beat
Optionalpartialthe unit did some but not all of its work
Optionalpasseshow many times this unit has been attempted
Optionalphasethe run's phase after this beat
Optionalplanthe plan fragment's JSON, on the two halts that carry it
Optionalranwhether PHP was actually entered
Optionalreasonwhy it halted or skipped
Optionalreclaimedwhether a claim was re-issued after an unverifiable one
Optionalresultthe unit's own reply
OptionalrunOptionalseqthe unit's sequence number
One beat's result.
okandbeatare the only invariants -- everything else depends on which branch ran, so the rest are optional rather than a union of thirteen literals. That is the accurate contract: a caller has to check before reading, and declaring them optional is what makes the check possible instead of forcing a cast.