GNU Go 3.8, House of Prize browser adapter v1

GNU Go is Copyright (C) the Free Software Foundation, Inc. and contributors.
The adapter and worker are Copyright (C) 2026 House of Prize contributors.
GNU Go and these adapters are distributed under GNU GPL version 3 or later,
WITHOUT ANY WARRANTY; see COPYING.txt for the full license.

Complete corresponding source: source.tar.gz in this directory.
Upstream: https://www.gnu.org/software/gnugo/
The build script applies three portability patches: use 64-bit hash values on
wasm32 to preserve native-generated opening-book hashes, and move two global
array definitions from liberty.h into adapter.c for modern Clang, and return
early from gg_sort for fewer than two elements (avoiding size_t underflow and
undefined pointer arithmetic with modern optimizers). adapter.c adds a small in-process
interface for a standalone browser Worker. All moves are replayed using
9x9, Chinese area scoring, 6.5 komi, simple ko and forbidden suicide.

Rebuild from the source archive:
  1. On a 64-bit host, install a native C compiler, make, Python >= 3.12,
     and Emscripten 4.0.23.
  2. Extract source.tar.gz and enter gnugo-source/.
  3. mkdir -p temp/go-engine
  4. cp gnugo-3.8.tar.gz temp/go-engine/
  5. cp README.txt public/engines/gnugo/v1/README.txt
  6. Activate Emscripten (source /path/to/emsdk/emsdk_env.sh).
  7. python3 scripts/build-gnugo.py

The build uses native helpers to generate GNU Go's pattern databases, then
compiles the engine libraries with Emscripten. The WASM target uses a 32-bit
long, a 2 MiB stack, and up to 128 MiB of linear memory. No GPU, threads,
SharedArrayBuffer, external API, or server-side inference is used.

Easy / Normal / Hard use GNU Go levels 1 / 5 / 8. These are engine settings,
not calibrated human ranks. Automatic endgame adjudication always uses level 8.
New games, route changes and retries terminate the previous Worker.

manifest.json records the upstream and distributed asset SHA-256 checksums.
