# Build output
/build/
/dist/
/build-logs/
/.deps/
/out/
/artifacts/
/squashfs-root/
/.vs/
/.vscode/
/--portable/
/unified-mod-test-*/
# Release downloads/packages belong in external staging, not source history.
/DKR-R-*.zip
/DKR-R-*.AppImage
/DKR-R-*.apk
/DKR-R-*.aab
/DKR-R-*.ipa
/DKR-R-*.tar.gz
/Custom-Magic-Codes-SDK*.zip
# Keep compiled code mods outside the source SDK; commit their source instead.
*.nrm
*.dkrcode
CMakeUserPresets.json

# Build-system and compiler intermediates
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
CTestTestfile.cmake
compile_commands.json
Testing/
_deps/
*.obj
*.o
*.a
*.lib
*.exp
*.ilk
*.pdb

# Runtime data
/runtime/
/runtime-recomp/run-data/
/runtime-recomp/dump.toml
/runtime-recomp/data_dump.toml
/runtime-recomp/applied-patches.json
/runtime-recomp/resolved-runtime-dependencies.json
# Recomp configs written by scripts/generate_recomp_config.py. They embed
# absolute local paths (ELF, ROM, output dirs), so they are per-machine and
# must be regenerated rather than shared.
/runtime-recomp/dkr.us.*.generated.toml
/runtime-recomp/dkr.us.*.regen.toml
/imgui.ini
/logs/
/cache/
/saves/
/screenshots/
/portable.txt
mods/*
!mods/.gitkeep

# Dependencies fetched locally
# Also exclude read-only worktree aliases to existing dependency checkouts.
/extern/*
!/extern/README.md
/extern/.resolved-dependencies.json
/extern/.resolved-dkr-source.json

# Copyrighted / ROM-derived data
*.z64
*.v64
*.n64
*.eep
*.mpk
*.sra
*.fla
baserom*
*.o2r
*.otr
/extracted/
/roms/

# Platform files
.DS_Store
Thumbs.db
Desktop.ini
*.user
*.suo
*.VC.db
*.VC.VC.opendb
/.idea/

# Local diagnostics, caches and temporary files
/failure.json
/runtime-recomp/imgui.ini
/runtime-recomp/src/game/imgui.ini
*.dmp
*.log
*.tmp
*.temp
*.bak
*.orig
*.rej
*.swp
*~
__pycache__/
*.py[cod]
.pytest_cache/
.cache/

# Local credentials and signing material
packaging/android/.gradle/
packaging/android/local.properties
packaging/android/**/build/
*.jks
*.keystore
.env
.env.*
!.env.example
*.pem
*.p12
*.pfx
credentials*.json
secrets*.json
token*.json

# DKR decomp/recomp working data generated locally
runtime-recomp/RecompiledFuncs/
runtime-recomp/RecompiledPatches/
build/runtime-tools/
runtime-recomp/build/

# tools/blender holds the Track Lab addon and is tracked. Everything else
# under tools/ is not. Git does not descend into an excluded directory, so the
# directory itself must stay un-excluded for any rule inside it to apply - do
# not restore a bare /tools/ rule, it makes this folder invisible again.
/tools/*
!/tools/blender/

# Blender addon build output, rebuilt by tools/blender/package_addon.py
/tools/blender/track_lab.zip

# Built .dkrmap packages. These carry retail object-map data verbatim - the
# structure slot of a remix is the base track's map unless every object was
# moved - and docs/ASSET_POLICY.md forbids committing extracted maps. They are
# local test artifacts; rebuild them from Blender rather than sharing them.
/custom-tracks/

# Local Cloudflare development state
/.wrangler/

# AI coding agents: personal permissions and per-session hook state
/.claude/settings.local.json
/.claude/session-base
/.claude/session-base.*.tmp

# Ruff writes local lint cache on both operating systems.
.ruff_cache/
