bin/
obj/

# publish_release.py output -- built artifacts, not source.
publish/
dist/

# Everything generated/downloaded at runtime. This is the entire reason this repo exists in this
# shape: no game-derived code is ever committed. game/Recompiled/*.cs is regenerated from each
# user's own disc on first run; nothing under game/ should ever be tracked.
game/
settings.json
# ...and its backups. settings.json.bak was committed by accident precisely because the
# rule above is an exact filename rather than a pattern; it carried a local NAS path into
# history and is referenced by nothing.
*.bak
interface.ini
*.sav
*.sav.bak*

# The recompiler's output when it is run STANDALONE from the command line. config.json sets
# "output": "./Recompiled", which resolves relative to the config file -- so the invocation
# documented in config.json's own header comment writes generated game C# into assets/Recompiled/,
# not into game/. The launcher is unaffected (it recompiles into UserData.Dir/game/Recompiled,
# deliberately, because AppContext.BaseDirectory is read-only under an AppImage), so this only
# bites someone following the documented standalone command -- which is exactly the person least
# likely to notice. Same rule as game/: no game-derived code is ever committed.
assets/Recompiled/

# User-supplied display font. The launcher looks for a font the user supplies themselves and
# falls back to an installed system face without one. Fonts are gitignored on principle: display
# faces are routinely "free for personal use", which permits USE but grants no redistribution
# right, and this repo's own LICENSE must not purport to hand downstream users rights we do not
# hold. Ship the tool, let the user supply the asset -- the same model as the disc and the BIOS.
*.ttf
*.otf

