The idea was to use Fruit 2.1 as the base for GNU Chess v6, keeping external interfaces backwards compatible. This is particularly important since GNU Chess has been world-wide used for long.
GNU Chess can be used in two modes: interactively using the command-line interface on a text console, and used as backend engine from a graphical frontend. Both cases rely on almost identical grammar. The former is described in GNU Chess help.
When GNU Chess is used as a pure chess engine, for instance, as backend for XBoard, it uses the Chess Engine Communication Protocol (aka XBoard protocol), which is described here:
Since Fruit uses the Universal Chess Interface (UCI), keeping the former interface was the main challenge of GNU Chess v6. UCI is described here:
GNU Chess can also run as a UCI chess engine, if the --uci command-line option is specified.