public bool Equals(IPieceSquare other) => !ReferenceEquals(null, other) && (ReferenceEquals(this, other) || Piece.Equals(other.Piece) && Square.Equals(other.Square));
private bool Equals(IPieceSquare killerMove, Move move, Piece fromPiece) => killerMove.Piece == fromPiece && killerMove.Square == move.ToSquare();