The update function panicked and was caught by the runtime. The
model is reverted to the last-good snapshot so the app keeps
running; the consecutive counter is shared with ViewPanicked so
the frozen-UI overlay surfaces after enough total panics across
either callback.
Summary
Types
@type t() :: %Plushie.Event.Diagnostic.UpdatePanicked{ consecutive: non_neg_integer(), message: String.t() }