# Rematch and series: tasks Work through the tasks in order; each ends with its tests passing and a commit. Tick a task when it is committed. - [x] 1. **Spec**: requirements, design and tasks. - [x] 2. **Series in live games**: `Series`, `SeriesGame`, `BackendGame.series` and `firstSeat()`, the first seat in `createMancalaGame`; `series` and `firstSeat` in `ClientGame` and `GameEndMessage`, `series` in snapshots (with the restore of old snapshots); unit and serialisation tests. - [x] 3. **Rematch requests**: `RematchOffers`, the four channels, the timers on the `Scheduler`, ending requests on `new_game`, `new_bot_game` and going offline, the bot accepting at once; unit tests. - [x] 4. **Saving**: `seriesId` in `GameRecord`, migration `004_series`, the repository; integration tests. - [ ] 5. **Core**: channel names, types, `getSeriesScore`, texts in English and Turkish; unit tests. - [ ] 6. **Web app, rematch**: the game page following `on_game_start` (`key={gameId}`), the game over card's rematch states, "Play again" as a rematch, the score in two columns. - [ ] 7. **Web app, series strip**: `SeriesStrip`, the series score on the game over card, spectators. - [ ] 8. **End to end and docs**: the Chrome tests from `design.md`; `AGENTS.md` (the specs list, rematch notes), `TODO.md` (the out of scope items; remove "A rematch button" from Web redesign), the web redesign design's note on the rematch button.