internal AnalyzedMove(MoveAnnotations annotations, Position originalPosition, Move move) { Annotations = annotations; OriginalPosition = originalPosition; Move = move; }
internal IllegalMove(Move move, Position originalPosition, MoveAnnotations annotations) : base(annotations, originalPosition, move) { }
internal LegalMove(Move move, Position originalPosition, PositionCore resultPosition, MoveAnnotations annotations) : base(annotations, originalPosition, move) { ResultPosition = resultPosition; }