ReadonlyabortedReadonlycountOptional ReadonlyeffectFold over every touching attempt that ran: unknown never cleared by a later answer.
ReadonlyfailedReadonlylastOptional Readonlycategory?: AttemptCategoryOptional Readonlyduring?: "wait"Present only when the series ended between physical attempts.
Optional Readonlyeffect?: AttemptEffectThe last attempt's own effect; series uncertainty belongs to summary.effect.
Readonlynext: "done" | "stop"Readonlyreason: AttemptReasonOptional ReadonlyretryOnThrew?: trueReadonlyokReadonlypausedReadonlytimeout
A series at a glance — stamped once, when the series ends (the Lens badge, §3.10).
lastis how it ended: the last record'snext/reason(andcategory,retryOnThrew), orstop/abortedwhen the run's signal cut a wait (no attempt followed, so none is recorded).The SERIES' outcome, not the STAGE's.
last.next: 'done'says the stage function returned; the stage can still fail after that — its commit can fail (a value nothing can clone), and a StageNode it returned can be refused at the run-time door (R5) — and then itsonErrorfires with this summary unchanged. Whether the stage failed is the execution's own fact (its error), never read off this summary.