Move obj_ids_seen to quest scope so duplicate objective ids are
rejected across steps, matching CT.M1 documentation and E7M1-04
HTTP projection expectations (Bugbot PR #151).
Update E5.M3 dependency register note for landed catalog, reject duplicate
fixedGrants itemId in CI, add uniqueItems on requiredNpcInstanceIds, and
record review follow-ups as Done.
Telegraph damage now looks up behavior attackAbilityId for baseDamage and
maxRange instead of using aggroRadius. Adds three NPC attack abilities, maxRange
on AbilityDef, attackAbilityId on NpcBehaviorDef, and cross-ref validation.
Four frozen ResourceNodeDef rows and per-node yield tables under
content/resource-nodes/ with JSON Schema validation and Slice 2 gates
(four nodeDefIds, gatherLens coverage, scrap_metal_bulk yields only).
Replace placeholder XP level math with content-backed thresholds validated in CI and at server boot, and update docs/manual QA/review artifacts to reflect NEO-39 delivery and follow-up fixes.
Remove the AAA pre-commit gate and instead provide write-time scaffolding via C# snippets and a test template, then document those defaults in the C# style and testing expectations rules.
Extend the pre-commit guard to fail when staged server test files lack explicit Arrange/Act/Assert markers, so AAA style compliance is checked automatically instead of relying on review memory.
Add a pre-commit guard that blocks commits missing required client/server test updates and Bruno requests for route/contract changes, and wire hook installers to install both pre-commit and pre-push hooks.
- main.gd: class member order (prvvars before @onready); wrap doc lines to 100 cols.
- isometric_follow_camera.gd: wrap doc lines to 100 cols.
- position_authority_client.gd: gdformat.
- pre-push: resolve .venv-gd/Scripts/gdlint.exe and gdformat.exe (Windows venv).
- Add scripts/install-git-hooks.ps1; README notes hook install and why CI can still fail.