# Guild Ping roadmap

This file tracks the agreed game roadmap so work can continue across development sessions.

## Phase 1 — Durable games and reconnects

- [x] Save active Checkers, Death Roll, and Hold 'Em games in `GuildPingDB`.
- [x] Restore saved games after `/reload`, login, or a short disconnect and automatically request the opponent's latest state.
- [x] Show a clear **Reconnecting…** state while a restored multiplayer game is being verified.
- [x] Add **Resume** and **Abandon Game** controls to every game.
- [x] Expire abandoned saved games and remove stale records automatically.
- [x] Use the same lifecycle and recovery rules across all three games.

## Phase 2 — Game enhancements

1. [x] Turn notifications: optional sound, on-screen alert, and minimap badge.
2. [x] Match history and statistics: games played, wins, losses, resignations, poker hands won, and Death Roll records.
3. [x] Poker hand history: betting actions, community cards, winner, and final hand ranking.
4. [x] Guild game status: opt-in **Looking to Play** presence, one-time addon-user chat announcements, and one-click challenges.
5. [x] Spectator mode for Checkers and Hold 'Em without exposing private cards.
6. [x] More games, beginning with Connect Four before considering Battleship or Tic-Tac-Toe.

## Phase 3 — Solo games

1. [x] Five Dice with held dice, three-roll rounds, thirteen score categories, animations, saved scorecards, and score statistics.
2. [x] Rune Mastermind with duplicate-safe clues, eight attempts, carved rune artwork plus letter cues, saved puzzles, and solve statistics.
3. [x] Minesweeper with three classic field sizes, first-click safety, flagging, number chording, saved fields, timed clears, and difficulty records.

## Guardrails

- Game communication stays inside WoW's addon-message channels.
- Guild discovery is opt-in and expires automatically.
- Spectators never receive unrevealed Hold 'Em hole cards.
- Play chips and statistics have no real-world value and never track or transfer wagers.
- New protocols remain versioned and validate sender, target, sequence, and state before applying remote data.
