## Event Architecture - Local events are broadcast as custom events prefixed `L-` - Incoming global messages are broadcast as custom events prefixed with `G` ## Robot Movement The state of the robots are fully contained in a central stack, allowing undo, reset, shadowing, replays, and move counting. Any movement, including initial locations, is represented by pushing or popping locations from the stack. A victory state can be stored by taking a snapshot of the current stack. ## TODO - be able to undo in a move sequence - robot shadow starting spot - robot icons with personality add credit to readmee - countdown skip - reset - restore state on join - win declare/add/remove - goal - no more guesses, send stack and replay - move guess and move logic out of server (clean up server file) - no cancel from name prompt - window resize update board - walls algorigthm - restore state on join - limit concurrent players, make sure connections are closed, clean up empty rooms - cookie room link, add to all messages, namespace them - move websocket server to /core - dynamic socket server resolution - namespace server to /ricochet - tutorial - donate link