# Build output. Every preset builds into build/<preset>/; the loose binary
# names below are what scripts/build_native.sh copies to the repo root.
*.o
*.a
*.exe
*.dll
obj/
/build/
# FetchContent dependency sources from an in-source configure. Ignored rather
# than left to a machine-local .git/info/exclude because the Lua coverage
# denominator is "every Lua the repository contains" — and sdl3-src ships an
# example .lua that would otherwise land in the gate on some checkouts and
# not others.
/_deps/
/build-native/
/build-test/
/build-coverage/
/coverage/
/openglad
/openscen
/openglad_curses

# Wreckage from a hand-typed in-source `cmake .`. CMakeLists.txt refuses that
# configure, but only after CMake has already written these two — the fatal
# error tells the reader to delete them. Nothing further can be generated
# in-source, so nothing further needs ignoring here.
/CMakeCache.txt
/CMakeFiles/

# Emscripten build
/build-web/
/dist/

# Compiler / interpreter caches dropped inside the workspace. CI points
# ccache at <workspace>/.ccache, and the Lua lint targets run
# scripts/check_lua_statement_lines.py, which imports its sibling
# lua_inventory and leaves scripts/__pycache__/ behind.
/.ccache/
__pycache__/

# IDE files
*.depend
*.layout
.idea/
.vscode/
.cache/
*.swp
*~

# Node / Playwright
node_modules/
test-results/
playwright-report/

# Runtime output
stdout.txt
stderr.txt
io_tmp_*.txt
/core
core.*
/temp/

# Planning / automation scaffolding (not part of the source tree)
/.plan/
/.juvenal-state.json
/.juvenal-replan-archive/
/workflow.yaml
/docs/plans/
/.claude/*
!/.claude/skills/

.DS_Store

.dsb.yml

# Local secrets (Cloudflare deploy token etc.)
/env
