VinPropane
87c27e231b
NEO-70: Emit explicit nulls on CraftResponse optional fields.
...
Serialize reasonCode and xpGrantSummary as null when absent so Bruno
deny tests match inventory POST wire shape; assert JSON nulls in API tests.
2026-05-24 18:13:10 -04:00
VinPropane
2221dc6b4b
NEO-70: Fix Bruno craft assertions for CI wire JSON shape.
...
Expect omitted reasonCode on success, refine XP delta >= 10 when refine
is skipped, and scrap unchanged on invalid_quantity without fixed totals.
2026-05-24 18:10:17 -04:00
VinPropane
db7c443b50
NEO-70: Fix Bruno craft tests for shared Postgres CI state.
...
Clear refined stock for insufficient_materials deny; spine tolerates
node_depleted gathers, reuses persisted scrap, and asserts refine XP delta.
2026-05-24 18:06:26 -04:00
VinPropane
5a3904c6bc
NEO-70: Address code review findings for craft HTTP.
...
Rename wire DTO to PlayerCraftRequest, add store-missing and default-quantity
API tests, improve Bruno deny isolation, README success sample, and doc nits.
2026-05-24 18:00:26 -04:00
VinPropane
46393b8ca5
NEO-70: Add craft POST HTTP, Bruno spine, and docs.
...
Wire POST /game/players/{id}/craft to CraftOperations with CraftResponse DTOs,
integration tests, gather→refine→make Bruno folder, and module/README updates.
2026-05-24 17:57:55 -04:00