--- type: User Story title: "US-003: Create a block-delivery quest" description: Let a player request block items while safely escrowing an inventory-funded reward. status: done --- # US-003: Create a block-delivery quest As a **player**, I want to request a block material and quantity in exchange for items I already own so that another player can fulfill my request safely. ## Acceptance criteria - [x] A player can create a quest through a registered quest board by selecting a valid block material, a positive quantity, and reward items from their inventory. - [x] Reward items must exist in the issuer's inventory and are removed only when quest creation succeeds. - [x] Removed rewards are held durably in escrow by the quest system. - [x] A created quest records a unique identifier, issuer UUID and current name, requested material and quantity, exact reward items, creation time, and expiration time. - [x] Each quest expires exactly seven days after successful creation. - [x] Invalid input, insufficient reward items, or persistence failure leaves the issuer's inventory unchanged and creates no quest. - [x] When player commands are enabled, `/quests create ...` provides equivalent validated creation behavior with contextual autocomplete. - [x] Quest state and item metadata survive server restarts without duplication or loss. - [x] Automated tests verify validation, escrow, rollback, timestamps, command routing, and persistence. ## Related - [US-002: Create and use shared quest boards](us-002-create-and-use-shared-quest-boards.md) - [US-005: Deliver blocks and complete a quest](us-005-deliver-blocks-and-complete-a-quest.md) - [US-007: Expire quests and claim held items](us-007-expire-quests-and-claim-held-items.md)