# Chess Coach engine credits

Chess Coach uses locally bundled, unmodified libraries; play and analysis do not call a paid service.

- **chess.js 1.4.0**, by Jeff Hlywa and contributors. BSD-2-Clause. [License](chess-LICENSE.txt), [upstream source](https://github.com/jhlywa/chess.js/tree/v1.4.0). `chess.js` is the ESM distribution from the official npm package.
- **Stockfish.js 18.0.8 / Stockfish 18 Lite, single threaded**, by the Stockfish developers, Nathan Rugg, and Chess.com contributors. GPL-3.0. [License](stockfish-COPYING.txt). The JS loader and WASM binary come unchanged from `stockfish@18.0.8` on npm. [Matching source archive](stockfish-18.0.8-source.tar.gz), [upstream commit](https://github.com/nmrugg/stockfish.js/tree/93c994592dcf3b4b21052ab925e9b534df9c0918). The source archive includes build instructions, `build.js`, and the engine source. Build with `node build.js --single-threaded --lite -f` using the upstream Emscripten setup; upstream scripts obtain the named evaluation networks. No engine modifications were made.

The coach interface, SVG pieces, and rule-based explanations were made for this site. Stockfish runs in a separate Web Worker using its text UCI protocol. Move labels are our approximate evaluation-loss categories, not Chess.com accuracy or Game Review output.

Chess.com is a third-party source of public completed-game data. Username lookup sends the supplied username to `api.chess.com`; PGN uploads are processed locally. Browser storage keeps the current practice game, latest imported PGN, and practice counters. No chess game data is sent to the site's Firebase database. The site's existing authentication and analytics policies still apply.
