VinPropane
b76fc60c09
NEO-153: remove redundant Skills/Encounters usings in contract tests.
...
CS8019 hints came from per-file imports duplicating GlobalUsings.cs
(NeonSprawl.Server.Game.Skills) and unused Encounters in ContractApiTests.
2026-06-28 13:20:30 -04:00
VinPropane
c0252ee8be
NEO-151: Add contract issue POST and per-player contract GET HTTP API
...
Wire ContractIssueApi and ContractListApi with ListForPlayer store reads,
integration tests, Bruno issue/clear/GET spine, and docs reconciliation.
2026-06-28 10:21:10 -04:00
VinPropane
70e3e9a17d
NEO-150: Address code review findings
...
Extract ContractPrototypeTestFixtures, add skill XP over-cap test,
null-guard template, validation-order comment, and NEO-151 handoff note.
2026-06-28 10:01:08 -04:00
VinPropane
3d49230c3c
NEO-150: Add issue-time contract economy validation
...
Introduce ContractEconomyValidation.TryValidateTemplate and wire it
into TryIssue before persist with economy_cap_exceeded and
invalid_reward_bundle deny codes.
2026-06-28 09:20:09 -04:00
VinPropane
b233fa040d
chore: analyzer cleanup for server and tests
...
Apply Roslyn/dotnet-format fixes across NeonSprawl.Server and
NeonSprawl.Server.Tests: collection expressions, concrete helper
return types, record XML docs, logging guards, quest store refactors,
and removal of redundant usings via GlobalUsings.cs. Extend
csharp-style.md with the recurring patterns.
2026-06-27 22:55:50 -04:00
VinPropane
c237bead53
NEO-147: guard DenyCreateFailure when create snapshot is null
2026-06-27 19:43:44 -04:00
VinPropane
3549b647a5
NEO-147: add standing and duplicate-seed review follow-up tests
2026-06-27 19:23:17 -04:00
VinPropane
c37c3c76a3
NEO-147: use class-level grid faction id in generator tests
2026-06-27 19:18:23 -04:00
VinPropane
44f4e4c3ce
NEO-147: mark faction id locals const in generator tests
2026-06-27 19:15:43 -04:00
VinPropane
87a0eb25ec
NEO-147: add contract generator unit and integration tests
2026-06-27 19:15:14 -04:00