# E7.M2 — RewardAndUnlockRouter ## Summary | Field | Value | |--------|--------| | **Module ID** | E7.M2 | | **Epic** | [Epic 7 — Quest / Faction](../epics/epic_07_quest_faction.md) | | **Stage target** | Prototype | | **Status** | Planned (see [dependency register](module_dependency_register.md)) | ## Purpose Route quest and encounter outputs to XP, items, unlocks, and flags with **idempotent** delivery ([E7.M1](E7_M1_QuestStateMachine.md) completion, [E2.M2](E2_M2_XpAwardAndLevelEngine.md), [E3.M3](E3_M3_ItemizationAndInventorySchema.md)). ## Responsibilities - Apply `QuestRewardBundle`; grant `UnlockGrant`; emit `RewardDeliveryEvent` for audit. ## Key contracts | Contract | Role | |----------|------| | `QuestRewardBundle` | Composite rewards for a step or completion. | | `UnlockGrant` | Blueprints, gates, cosmetics. | | `RewardDeliveryEvent` | Idempotency key and outcome. | ## Module dependencies - **E2.M2** — XpAwardAndLevelEngine. - **E3.M3** — ItemizationAndInventorySchema. - **E7.M1** — QuestStateMachine. ## Dependents (by design) - **E5.M3** — EncounterAndRewardTables. - **E6.M4** — RewardParityEnforcer. ## Related implementation slices Epic 7 **Slice 2** — `reward_delivery`, `unlock_granted`; no double-claim on replay. ## Source anchors - Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 7. - [Module dependency register](module_dependency_register.md)