Design: Move Validation System
Design the core move validation logic and system architecture. Exclude UI design and player matchmaking.
Functional Requirements
FR1: Validate moves in a turn-based board game (e.g., chess, checkers).
FR2: Ensure moves follow game rules before applying them.
FR3: Support multiple game types with different move rules.
FR4: Provide immediate feedback if a move is invalid.
FR5: Allow undoing moves only if they were valid and last move.
FR6: Support concurrent games for multiple players.
FR7: Log moves for replay and audit.
Non-Functional Requirements
NFR1: Handle up to 10,000 concurrent games.
NFR2: Validate moves with p99 latency under 100ms.
NFR3: System availability of 99.9%.
NFR4: Support extensibility for new game rules without downtime.
