A chess engine that given a board state and current player will produce a list of "good" viable moves.