ConstReadonlyBACKGROUND_CHANGED: "background-changed"Background image changed
ReadonlyCANVAS_CLEARED: "canvas-cleared"Canvas cleared
ReadonlyFULL_STATE: "full-state"Full state sync
ReadonlyLASER_POINTER_END: "laser-pointer-end"Laser pointer deactivated
ReadonlyLASER_POINTER_MOVE: "laser-pointer-move"Laser pointer moved
ReadonlyOBJECT_ADDED: "object-added"Object added to canvas
ReadonlyOBJECT_MODIFIED: "object-modified"Object modified on canvas
ReadonlyOBJECT_REMOVED: "object-removed"Object removed from canvas
ReadonlySTATE_REPLACED: "state-replaced"Whole-canvas replacement (used by undo/redo). Receivers replace
their canvas with the snapshot in payload.canvas. Distinct from
FULL_STATE because it's broadcast unconditionally to every peer
(not addressed to a single requester) and any peer can publish it.
ReadonlyUSER_JOINED: "user-joined"User joined the whiteboard
ReadonlyUSER_LEFT: "user-left"User left the whiteboard
Whiteboard events (in payload.event)