Gap
The full −1000..1000 regard system shipped (NpcRegard/NpcRegardEvent/RegardEventConfig, world/npc_services/regard.py, plus the society/organization reputation twins) — but nothing in the market layer consults it. grep regard over src/world/items/market/ is empty. Reputation with a shopkeeper does nothing: no price adjustment, no access gating, no reserved stock, no refusal of service.
Why
This is the classic "the world remembers you" wire, and it is one read at pricing/purchase time in an already-shipped engine. A shopkeeper who scowls at the character who shook down their neighbor (regard events already accrue from the criminal loops) makes both systems visible at once.
Scope note: deliberately small — consume regard in pricing.py + purchase prerequisites, with tuning rows for thresholds. Not a redesign of either system.
Gap
The full −1000..1000 regard system shipped (
NpcRegard/NpcRegardEvent/RegardEventConfig,world/npc_services/regard.py, plus the society/organization reputation twins) — but nothing in the market layer consults it.grep regardoversrc/world/items/market/is empty. Reputation with a shopkeeper does nothing: no price adjustment, no access gating, no reserved stock, no refusal of service.Why
This is the classic "the world remembers you" wire, and it is one read at pricing/purchase time in an already-shipped engine. A shopkeeper who scowls at the character who shook down their neighbor (regard events already accrue from the criminal loops) makes both systems visible at once.
Scope note: deliberately small — consume regard in
pricing.py+ purchase prerequisites, with tuning rows for thresholds. Not a redesign of either system.