Design: Board and Piece Hierarchy
Focus on the class hierarchy and interactions for board and pieces. Do not cover UI or network communication.
Functional Requirements
FR1: Design a system to represent a game board and its pieces.
FR2: Support multiple types of pieces with different movement rules.
FR3: Allow querying piece positions and valid moves.
FR4: Enable adding, moving, and removing pieces on the board.
FR5: Support different board sizes and shapes.
Non-Functional Requirements
NFR1: The system should be extensible to add new piece types easily.
NFR2: Operations like move validation should be efficient for real-time use.
NFR3: The design should separate board logic from piece logic.
NFR4: The system should be usable for turn-based games with up to 100 pieces.