chessGameEngine is lesser concept oriented yet contains many challenges at design level. Here are the following things that must be done by a chess game application :
->Board state management
->Move validation
->Capture validation
->Special moves such as Castling , Promotion, Enpassent
->Check and checkmate detection
->Move turn management
->Bot setup (eg stockfishengine) , for play with computer mode.
Refer the below repo of mine which could be included here:
https://github.com/THIRU-1074/chessGameEngine