Shared actor canvas
Две canvas доски
boards: 2
Alice
origin: aliceactors: 0Bob
origin: bobactors: 0Transport packet
Симулированная сеть
{
"waiting": "draw on Alice or Bob"
}Что смотреть
Snapshot transport
В snapshot нет canvas bitmap. Передаётся только machines.canvasStroke: record actor ids и compact payload каждого штриха.
merge делает доску совместной: локальные акторы не стираются, чужие добавляются или обновляются network-автоматом через MachineManager.hydrate.
generateActorId собирает actor id из originId и strokeId, поэтому новая доска может подключиться к общему snapshot без пересечения локальных штрихов.
Тот же packet можно отправить через BroadcastChannel, WebRTC, QR или backend.