ReplayEvent
One element of a Bolt.replay stream: a frame, or the terminal verdict on how the stream ended.
Exactly one terminal event is emitted, last, on every replay collected to completion — a consumer that cuts the flow short with take(n) or first() never reaches it, which is the honest answer for one that stopped reading before the archive said how it ended.
That verdict is the point of the type. A replay that simply stopped at a bad frame and completed normally would hand a consumer an incomplete history that is indistinguishable from a complete one — and for a module whose entire product is "I still hold what the live replica forgot", silently returning a short answer is the one failure it cannot afford.
Making the verdict an element of the stream rather than a separate verify() call is deliberate on two counts: it binds the verdict to the exact bytes this replay read (a separate call races with concurrent appends), and it cannot be forgotten, because a consumer has to name the frame case to get at frames at all. A consumer that genuinely does not care can say so with frames.