A port of chess.js to Dart.