# IECODE Monorepo .gitignore
# Canonical ignore rules across Rust, Bun/TS, Python/uv, .NET 10, C++20/CMake,
# graphics backends, and multi-console emulation.

# 1. System, OS & Editor Artifacts
.DS_Store
Thumbs.db
._*
Desktop.ini
*.swp
*.swo
*~
.idea/
.vscode/
.zed/
.claude/settings.local.json
.coord/

# 2. Rust & Cargo Ecosystem
# Keep Cargo.lock, test fixtures, and source code in Git.
/target/
**/target/
!**/src/target/
!**/src/target/**
*.rs.bk
Cargo.toml.orig
rustc-ice-*.txt
*.profraw
*.profdata
profile.json.gz

# 3. Bun, Node.js & Webpack Ecosystem
# Keep bun.lock and tracked source packages in Git.
node_modules/
.turbo/
*.tsbuildinfo
/dist/
/apps/**/dist/
/packages/**/dist/
/apps/**/.next/
/packages/**/.next/
/apps/**/playwright-report/
/apps/**/test-results/
/apps/web/pkg/
/apps/web/wii/pkg/

# 4. Python & Astral uv Ecosystem
# Keep uv.lock and Python source trees in Git.
.venv/
.cache/
__pycache__/
*.py[cod]
.ruff_cache/
.mypy_cache/
.pytest_cache/
.tox/
*.egg-info/
.coverage
.coverage.*
htmlcov/
coverage/

# 5. .NET 10 & C# Managed Ecosystem
# Keep IECODE.sln, *.csproj, and managed code in Git.
/src/IECODE/**/bin/
/src/IECODE/**/obj/
/.vs/
/src/IECODE/**/TestResults/
*.user
*.suo

# 6. C++20, CMake & vcpkg Ecosystem
# Keep CMakeLists.txt, CMakePresets.json, and vcpkg.json in Git.
/vcpkg_installed/
cmake-build-*/
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
compile_commands.json
/build/
/build-*/
/out/
/artifacts/

# 7. Graphics & Emulation Assets
/assets/textures/
assets/**/*.meta
imported_assets/
.web-asset-cache/
/examples/large_scenes/bistro/assets/
/examples/large_scenes/caldera_hotel/assets/
/examples/asset/saved_assets/
/example_showcase_config.ron
/example-showcase-reports/
/assets/serialized_worlds/load_scene_example-new.scn.ron
/examples/**/screenshot-*.png
/compressed_texture_cache/
/app_data.ron
/examples/**/app_data.ron
/assets/textures/GroundSand005/
/.jj/
.fuse_hidden*
/.gpuconfig
/.wasmgpuconfig
/tests/wasm/dist/
/tests/wasm/runner/node_modules/
/cts/
**/please_don't_git_push_me.png
**/*-actual.png
**/*-difference.png

# 8. Emulation State & Private Data Protection (Strict, per AGENTS.md)
# NEVER commit private game ROMs, NAND dumps, disc images, keys, or CPK dumps.
# Private Nintendo ROMs and media dumps
*.nds
*.3ds
*.cia
*.dol
*.iso
*.wbfs
*.nsp
*.xci
*.nca
*.nso

# Nintendo encryption keys and credentials
*.keys
prod.keys
title.keys

# Victory Road private game archives and save files
/data/
/data.7z
/data.tar.*
002AB8F4-*
*.live_save

# Dust emulator debug state and runtime logs
.dust-cli-state.json
.dust-cli.log

# Explicitly preserve tracked test fixtures
!**/fixtures/**
!packages/inagle/tests/fixtures/**
!crates/nie/**/fixtures/**

# 9. Logs, Cache & Local Environment
/logs/
/cache/
/var/
/private/
.env
.env.*
!.env.example
!.env.*.example

# Temporary SQLite fixtures created by mirror freshness tests.
/packages/azalee/test/.bac-miroir/

# Atomic documentation archive staging
/.docs-archive-*/

# Historical/research documentation is canonical in docs.7z.
/docs/history/
/docs/research/
