IBoardModel
{Rules of the Game}
Board configurations
Legal moves
Game Model Classes
GameModel
{Game Management}
Game initialization
Win/lose/draw notification
TurnControl
{Player Management}
INextMoveStrategy
{Next Move Computation}
Random
Min-max/Alpha-beta
Limited depth
Custom
APlayer
{Turn Taker}