Behaviour for WebSocket event handlers.
@callback handle_event(event :: term(), state :: term()) :: {:ok, term()} | {:error, term()}