public GameState(Piece[] board, Piece active, Castling castling, Cell enpassant, int draw, int move) { if (board.Length != 64) { throw new ArgumentException("Board must be 64 squares", nameof(board)); } if (active != Piece.White && active != Piece.Black) { throw new ArgumentException("Must be White or Black", nameof(active)); } Board = new Board((Piece[])board.Clone()); Active = active; Castling = castling; Enpassant = enpassant; DrawClock = draw; Move = move; }