Wall-clock milliseconds from the first to the last occurrence of this
event type in the phase. 0 when only a single occurrence was observed.
Number of snapshots of this event type observed in the phase's snapshot
stream. A high count on a non-progress event type (jsonValidateError,
realizeOperationFailure) is the primary signal of sub-loop thrashing.
AutoBeEvent.Type string for this sub-loop, e.g. "realizeCorrect",
"jsonValidateError", "preliminaryRewrite". Kept as a free-form string
so adding a new event type does not require updating this union.
Single entry of IPhaseState.subLoops.
Derived strictly from the phase's
AutoBeEventSnapshot[]stream — one entry per distinctevent.typeobserved in the phase, witheventCountcounting snapshots of that type andelapsedMsmeasuring wall-clock from the first to the last such snapshot'screated_at.A single-occurrence sub-loop has
elapsedMs === 0(first and last are the same event); the row is still emitted because the count itself is informative for validation surfaces.