- Backend
- Backend maintains game-state between users
- Maintain multiple active games
- User logins
- Backend enforces user turns
- Backend enforces game rules
- Tiles are lost if they're not connected to a magic tile
- Highlight valid moves for user, once they've selected a tile
- Frontend
- Generate game board
- Only current player has tiles highlighted, not both players
- Skin game board so it's not ugly
- Draw tile stacks in reverse height order (so tall stacks overlap short stacks)
- User login
- Select active game