Research and design documentation for building a modern online football-management game inspired by Championship Manager 01/02 (CM0102), preserving the fun while fixing dated gaps.
Documentation map:
- 00-research-sources.md — source inventory and reliability notes.
- 01-product-principles.md — what made CM0102 fun, what to preserve, what to modernize.
- 02-game-systems.md — core loop, manager/club, players, tactics, training, scouting, transfers, news.
- 03-domain-model.md — entities, state boundaries, history/event records.
- 04-online-modernization.md — multiplayer, async progression, fairness, UX, modding.
- 05-roadmap.md — MVP and phased implementation plan.
- 06-head-to-head-tournaments.md — first-class 1v1 versus mode and tournament design.
- 07-match-engine-variables.md — intrinsic attributes, context variables, WIB/WOB flaws, and match-engine architecture.
- 08-technology-stack.md — recommended product stack and prototype/deployment architecture.
- 09-spike-findings.md — validated spike findings, decisions, test conventions, and recommended next spike.
- 10-production-roadmap.md — production sequence after validated spikes.
- 11-production-simulation-contract.md — first production TypeScript match-engine contract.
- 12-production-api-contract.md — first Fastify API boundary around the simulation package.
- 13-production-web-contract.md — first browser-visible Next.js match lab vertical slice.
- 14-production-tactics-contract.md — first browser/API tactical editor contract.
- 15-production-formation-geometry-contract.md — formation slot geometry and shape-driven WIB/WOB map contract.
- 16-production-player-assignment-contract.md — slot assignment and role-suitability simulation contract.
- 17-production-interactive-assignment-contract.md — browser slot dropdown assignment and API validation contract.
- 18-production-visual-pitch-assignment-contract.md — visual pitch, drag/drop, and Inter/Milan 2002 sample squad assignment contract.
- 19-production-historic-player-data-contract.md — shared Inter/Milan 2002 player names, positions, and era-inspired attributes contract.
- 20-production-chance-quality-commentary-contract.md — deterministic per-chance goal resolution and varied match text contract.
- 21-production-event-taxonomy-commentary-packs.md — structured event categories and CM-style commentary pack contract.
- 22-production-match-event-chains-contract.md — foul/free-kick/corner/offside/card chain contract and interactive-match roadmap.
- 23-production-hydration-warning-noise-contract.md — root body hydration warning suppression for extension-injected attributes.
- 24-production-bench-substitution-condition-contract.md — historic benches, fatigue/injury risk, and substitution event contract.
- 25-production-interactive-match-timeline-contract.md — progressive key-event match replay and manager-action pause contract.
- 26-production-manager-commands-contract.md — interactive replay manager command-history recording contract.
- 27-production-command-effects-contract.md — deterministic projected effects for manager commands during interactive replay.
- 28-stabilization-fixes-pass-notes.md — post-P15A duplicate-command and replay-navigation cleanup notes.
- 29-production-resumable-replay-projection-contract.md — deterministic projected remaining replay after manager commands.
- 30-project-handoff-status.md — current repository state, latest validation, next recommended slice, and new-chat resume instructions.
- 31-production-authoritative-resumable-match-engine-contract.md — pure authoritative resume module for command-adjusted future simulation.
- 32-production-authoritative-resume-api-contract.md — API/view-model adapter for authoritative resume commands.
- 33-match-lab-ui-modernization-contract.md — tested Match Lab section/stat grouping and first UI modernization direction.
- 34-authoritative-resume-ui-contract.md — browser client and Match Lab UI contract for server-authoritative resume output.
- 35-production-replay-session-persistence-contract.md — in-memory replay-session persistence seam for stored authoritative resume state.
- 36-browser-replay-session-ui-contract.md — Match Lab browser integration contract for session-owned authoritative resume.
- 37-production-replay-session-tactic-parity-contract.md — replay-session contract for preserving full Match Lab tactical payloads.
- 38-production-durable-replay-session-persistence-contract.md — storage-shaped replay-session export/hydration contract for future durable persistence.
- 39-production-head-to-head-session-ownership-contract.md — replay-session side ownership and head-to-head command-log contract.
- 40-production-session-route-parity-lobby-state-contract.md — route-boundary parity and lobby-state summary contract for replay sessions.
- 41-production-lobby-state-transition-contract.md — server-owned replay-session lobby-state transition command contract.
- 42-production-lobby-status-panel-contract.md — read-only Match Lab replay-session lobby/status panel contract.
- 43-production-side-aware-lobby-readiness-contract.md — read-only home/away lobby readiness cards contract.
- 44-production-lobby-setup-lock-api-smoke-contract.md — server-first setup/lock replay-session lobby smoke contract.
- 45-production-lobby-transition-browser-client-contract.md — browser client contract for replay-session lobby-state transitions.
- 46-production-lobby-action-availability-view-model-contract.md — pure browser policy/view-model contract for future lobby action controls.
- 47-production-read-only-lobby-action-preview-panel-contract.md — read-only Match Lab preview rendering contract for future lobby actions.
- 48-production-lobby-action-preview-route-fixtures-contract.md — route-shaped lobby summary fixtures for setup/locked/in-match/complete action-preview states.
- 49-production-read-only-lobby-fixture-gallery-contract.md — browser-smokeable read-only fixture gallery route for all lobby action-preview states.
- 50-production-lobby-mutation-stabilization-contract.md — read-only UI guardrails and invalid-transition rejection-copy acceptance gate before visible lobby mutation controls.
- 51-production-visible-lobby-mutation-controls-contract.md — guarded Match Lab lobby mutation controls and summary-refresh flow contract.
- 52-production-lobby-transition-harness-contract.md — server-backed browser harness for setup lock, kickoff, and exact invalid-transition rejection UX.
- 53-production-head-to-head-lobby-entry-contract.md — first product-facing 1v1 lobby create/read route without transition controls.
- 54-production-away-manager-join-contract.md — server-owned away-side join mutation, rejection copy, and browser join flow.
- 55-production-setup-lock-product-control-contract.md — server readiness gate and product setup-lock control without kickoff/complete exposure.
- 56-production-product-kickoff-control-contract.md — product locked-lobby kickoff control without completion/rematch exposure.
- 57-production-product-completion-control-contract.md — product in-match completion control without rematch exposure.
- 58-production-result-report-preview-contract.md — read-only completed-match result preview on the product lobby route.
- 59-production-product-lobby-stabilization-contract.md — product route state-copy and no-op action stabilization for the complete head-to-head loop.
- 60-production-private-setup-shell-contract.md — read-only private setup shell preview for future club/tactic selection without hidden state persistence.
- 61-production-private-setup-selection-state-contract.md — pure private setup selection-state contract with local detail and opponent redaction.
- 62-production-private-setup-draft-controls-contract.md — local-only browser draft controls for private setup preview without server persistence.
- 63-production-private-setup-perspective-switch-contract.md — component-local private setup perspective switch for home/away preview without account semantics.
- 64-production-private-setup-readiness-boundary-contract.md — advisory local readiness boundary proving draft readiness does not gate server-owned setup lock.
- 65-production-private-setup-persistence-contract.md — server-authoritative hidden private setup draft storage, pre-lock redaction, and simultaneous post-lock reveal contract.
- 66-production-private-setup-submission-route-client-contract.md — thin Next route and browser client contract for private setup draft submission without product UI wiring.
- 67-manager-cockpit-interface-direction.md — manager cockpit UI direction for replacing stacked forms with task stations and modern football-operations design.
- 68-production-private-setup-submit-ui-contract.md — guarded product
Save setup draftUI contract plus cockpit shell acceptance criteria. - 69-manager-cockpit-layout-stabilization-contract.md — two-column session rail and station workspace contract for the product manager cockpit.
- 70-product-entry-mode-selector-cockpit-focus-contract.md — root mode selector and focused head-to-head cockpit station contract.
- plans/2026-05-16-production-simulation-foundation.md — implementation plan for the first TypeScript production simulation package.
- plans/2026-05-16-production-api-foundation.md — implementation plan for the first server-authoritative API layer.
- plans/2026-05-16-production-web-vertical-slice.md — implementation plan for the first browser-visible match lab.
- plans/2026-05-16-tactical-editor-foundation.md — implementation plan for the first tactical editor foundation.
- plans/2026-05-17-formation-geometry-foundation.md — implementation plan for formation slot geometry and preview foundation.
- plans/2026-05-17-player-assignment-role-suitability.md — implementation plan for player assignment and role suitability.
- plans/2026-05-17-interactive-assignment-ui.md — implementation plan for browser slot dropdown assignments.
- plans/2026-05-17-visual-pitch-drag-drop-assignment.md — implementation plan for visual pitch drag/drop assignment.
- plans/2026-05-17-historic-player-data-foundation.md — implementation plan for shared historic player data foundation.
- plans/2026-05-17-chance-quality-commentary-engine.md — implementation plan for per-chance goal resolution and varied commentary.
- plans/2026-05-17-event-taxonomy-commentary-packs.md — implementation plan for structured event categories and expanded commentary packs.
- plans/2026-05-17-match-event-chains.md — implementation plan for foul/free-kick/corner/offside/card chains and interactive-match roadmap.
- plans/2026-05-17-bench-substitutions-fatigue-injuries.md — implementation plan for historic benches and condition/substitution events.
- plans/2026-05-17-interactive-match-timeline.md — implementation plan for progressive key-event replay and manager action pause labels.
- plans/2026-05-17-manager-commands-interactive-replay.md — implementation plan for recording manager commands during interactive replay.
- plans/2026-05-17-outcome-affecting-manager-commands.md — implementation plan for projected tactical effects from manager commands.
- plans/2026-05-17-stabilization-fixes-pass.md — stabilization plan for duplicate-command and replay-navigation cleanup.
- plans/2026-05-17-resumable-match-regeneration.md — implementation plan for projected remaining replay after manager commands.
- plans/2026-05-18-authoritative-resumable-match-engine.md — implementation plan for the first pure authoritative resumable match engine foundation.
- plans/2026-05-18-authoritative-resume-api-adapter.md — implementation plan for authoritative resume command/API/view-model adapter.
- plans/2026-05-18-match-lab-ui-modernization.md — implementation plan for Match Lab UI modernization foundation.
- plans/2026-05-18-authoritative-resume-ui-integration.md — implementation plan for Match Lab server-authoritative resume UI integration.
- plans/2026-05-18-replay-session-persistence-foundation.md — implementation plan for stored replay-session persistence foundation.
- plans/2026-05-18-browser-replay-session-ui-integration.md — implementation plan for Match Lab replay-session ID and session-owned resume integration.
- plans/2026-05-18-replay-session-tactic-parity.md — implementation plan for replay-session full tactical payload parity.
- plans/2026-05-19-durable-replay-session-persistence.md — implementation plan for storage-shaped replay-session export/hydration.
- plans/2026-05-19-head-to-head-session-ownership.md — implementation plan for replay-session side ownership and future head-to-head lobbies.
- plans/2026-05-20-session-route-parity-lobby-state.md — implementation plan for side-aware route parity and session summary smoke coverage.
- plans/2026-05-21-lobby-state-transition-commands.md — implementation plan for server-owned replay-session lobby-state transition commands.
- plans/2026-05-21-lobby-setup-status-panel.md — implementation plan for the read-only lobby setup/status panel.
- plans/2026-05-21-side-aware-lobby-readiness.md — implementation plan for read-only side-aware lobby readiness cards.
- plans/2026-05-22-lobby-setup-lock-api-smoke.md — implementation plan for server-first setup/lock lobby route smoke coverage.
- plans/2026-05-22-lobby-transition-browser-client.md — implementation plan for the browser lobby-state transition client contract.
- plans/2026-05-22-lobby-action-availability-view-model.md — implementation plan for pure future lobby action availability policy.
- plans/2026-05-22-read-only-lobby-action-preview-panel.md — implementation plan for the read-only lobby action preview panel.
- plans/2026-05-22-lobby-action-preview-route-fixtures.md — implementation plan for route-shaped lobby action preview fixtures.
- plans/2026-05-23-read-only-lobby-fixture-gallery.md — implementation plan for the read-only lobby fixture gallery/story harness.
- plans/2026-05-23-lobby-mutation-stabilization.md — stabilization plan for read-only lobby UI guardrails and invalid-transition rejection copy.
- plans/2026-05-23-visible-lobby-mutation-controls.md — implementation plan for guarded visible Match Lab lobby mutation controls.
- plans/2026-05-23-lobby-transition-harness-rejection-ux.md — implementation plan for browser-visible setup lock, kickoff, and rejection-copy harness.
- plans/2026-05-23-head-to-head-lobby-entry.md — implementation plan for first product-facing create/read head-to-head lobby route.
- plans/2026-05-23-away-manager-join-mutation.md — implementation plan for server-owned away manager join mutation and browser join flow.
- plans/2026-05-23-setup-lock-product-control.md — implementation plan for setup-lock readiness gate and product control.
- plans/2026-05-23-product-kickoff-control.md — implementation plan for locked-lobby product kickoff control.
- plans/2026-05-23-product-completion-control.md — implementation plan for in-match product completion control.
- plans/2026-05-23-result-report-preview.md — implementation plan for completed-match result report preview.
- plans/2026-05-23-product-lobby-stabilization.md — implementation plan for product route state-copy and no-op action stabilization.
- plans/2026-05-27-private-setup-shell.md — implementation plan for the read-only private setup shell preview.
- plans/2026-05-27-private-setup-selection-state.md — implementation plan for local private setup selection-state previews and opponent redaction.
- plans/2026-05-27-private-setup-draft-controls.md — implementation plan for local-only private setup browser draft controls.
- plans/2026-05-27-private-setup-perspective-switch.md — implementation plan for component-local home/away private setup perspective switching.
- plans/2026-05-27-private-setup-readiness-boundary.md — implementation plan for advisory local readiness boundary copy and setup-lock guardrails.
- plans/2026-05-27-private-setup-persistence-contract.md — implementation plan for repository/API hidden setup draft persistence and reveal contracts.
- plans/2026-05-27-private-setup-submission-route-client.md — implementation plan for private setup submission route/client transport boundaries.
- plans/2026-05-27-private-setup-submit-cockpit-ui.md — implementation plan for guarded product private setup save UI and manager cockpit shell.
- plans/2026-05-27-manager-cockpit-layout-stabilization.md — implementation plan for session rail + station workspace cockpit layout stabilization.
- plans/2026-05-27-product-entry-cockpit-focus.md — implementation plan for root mode selector and focused cockpit station UX.
Raw downloaded/extracted research material is in docs/research_raw/.
Legal note: these docs are for research and design. Do not copy Championship Manager assets, executable data, logo, database, names, or manual text into a commercial product unless licensed. Treat CM0102 as design inspiration and implement original code, UI, data, and content.