Three of the ten DISPATCH variants — JUMP_TO_STATE,
JUMP_TO_ACTION, and IMPORT_STATE — receive a serialised snapshot
via the top-level state?: string. The wire-shape declares it
optional because the panel sometimes omits it on malformed dispatch;
the protocol-seam decode is what enforces presence and produces the
narrowed handler input. See DispatchEvent for the post-decode
shape.
Wire-level discriminated union over the messages the extension may emit. This is the raw shape we receive from the panel — the protocol-seam decode normalises it into DispatchEvent before routing.