CLAUDE.md — godosa-engine
Shared engine library for Avalonia + Silk.NET games. Terse everywhere.
Private notes (tasks, specs, catalog) are kept outside this repo; never add them here (see .gitignore).
Rules
- Lib knows no game: no game types, game names, env var names or settings classes. The game passes values in
or implements a small interface (
IAudioMix, key-targetFunc, env var name viaConfigure). Godosa.Core= pure .NET, tested.Godosa.Desktop/Godosa.Audio/Godosa.Gamepad= Avalonia+GL, OpenAL, SDL glue.publicfor anything a game uses. Warnings are errors. Package versions only inDirectory.Packages.props, equal to the games' (Avalonia 12.1.2, all Silk.NET 2.23.0).- New tests mutation-checked:
scripts/mutate.sh= KILLED. - Breaking API is allowed: the games adapt when they take the update.
Build / test (≈ 10 s)
dotnet build Godosa.slnx (0 warnings) · dotnet test Godosa.slnx · python3 -m unittest discover -s scripts -p 'test_*.py'.
From a game: its solution includes the lib projects, so its dotnet test runs the lib tests too.
Git
- Branch
master. Games use this repo as the submodulelib/godosa-engine. - Work in a git worktree on a branch (
.worktrees/<topic>), not in the main tree; ff-merge tomasterwhen green.
Where
src/Godosa.* · scripts/ · docs/notes/.