- Given a number suffixed in a URL, render a grid of size n, e.g. http://localhost/n
- Clicking an empty square adds an 'x' to it. Clicking a square with an x toggles it back to blank.
- X's are draggable to any other square in the grid. If an x is dropped in a square already containing an x, the drag is canceled.
- Grid changes are synced in real time across all other clients accessing the same URL.
- Must work on mobile with touch screens.
- No third party javascript libraries.