private void ValidateIsLegalMove(Move move, ChessPiece piece)
{
var teamName = Enum.GetName(typeof(Team), piece.Team);
var pieceName = Enum.GetName(typeof(PieceType), piece.PieceType);
var orderedMoves = Game.Moves.OrderBy(i => i.MoveId);
if (!piece.IsLegalMove(_board.Squares, move, orderedMoves))
throw new Exception("This is not a legal move for a " + teamName + " " + pieceName + ".");
}