A2uiStateException
Thrown when a message is well-formed but cannot be applied to the renderer's current state.
These are the specification's MUSTs about message order rather than about payload shape — creating a surface that already exists, updating one that was never created. They are separate from dev.ynagai.a2ui.core.protocol.A2uiFormatException because the payload is fine; it is the conversation that is out of order.
Turning one of these into a renderer-to-agent error message is the validator's job, which is why surfaceId is carried rather than only mentioned in message.