# C++ build artifacts
build/
cmake-build-*/
*.o
*.obj
*.exe
*.dll
*.so
*.dylib
*.pyd
*.exp
*.lib
*.a
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
Makefile
compile_commands.json

# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
*.egg

# Wheel / sdist build artifacts (scikit-build-core + cibuildwheel)
wheelhouse/
_skbuild/
python/bgsage/_assets/

# Data files (too large for git — download separately)
data/*.bm
data/*-train-data
data/*_training_data*
data/benchmark_pr/rollouts.jsonl
# Money benchmark: the full assembled JSON is ~100 MB (over GitHub's 100 MB file
# limit). The committed canonical is benchmark.json.gz (read transparently); the
# raw .json and the large per-tier build/ artifacts (build/ is ignored above) stay local.
data/money_benchmark/benchmark.json

# IDE
.vscode/
.idea/
.claude/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Profiling
*.pstats
*.prof
profile.*

# Runtime output (xg transcripts, rollout caches, training logs, etc.)
logs/

# Back game reference positions: the curated XG source files are Mark's private
# working copies (and include large book scans). The benchmark/ directory built
# from them by scripts/backgame_benchmark.py IS committed.
backgame_ref_positions/Positions for Mark/
# Resume bookkeeping for a generate run, not benchmark data.
backgame_ref_positions/benchmark/*.state.json
backgame_ref_positions/benchmark/*.lock
backgame_ref_positions/benchmark/status_samples.json
# Per-batch rollout resume sidecars: tens of MB, pure bookkeeping, and
# regenerable by re-running the rollout. The pooled rollout.jsonl beside
# them IS the benchmark reference and is committed.
backgame_ref_positions/benchmark/*rollout.batches.jsonl

# Candidate-completion inputs and pre-merge backups (regenerable)
backgame_ref_positions/benchmark/*candidates rollout.jsonl
backgame_ref_positions/benchmark/*.pre-merge
