My initial set of requirements are:
- understanding of the following rules:
- movement of each piece (pawn, bishop, knight, rock, queen, king)
- pawn promotion
- check/mate/draw (e.g. stalemate) detection
- support of the Universal Chess Interface (UCI), so hiyace can be integrated in chess front-ends like WinBoard, XBoard, Fritz, etc.
- portable, object-oriented design
Further enhancements may include
- en passant
- threefold repetion
- Fifty-move rule
- opening book
I plan to release Windows and Linux binaries, with an Android application and possibly the source following later.