2.1 KiB
type, title, description, status
| type | title | description | status |
|---|---|---|---|
| User Story | US-003: Create an item-delivery quest | Let a player request inventory items while safely escrowing an inventory-funded reward. | done |
US-003: Create an item-delivery quest
As a player, I want to request an item material and quantity in exchange for items I already own so that another player can fulfill my request safely.
Acceptance criteria
-
Requests accept all inventory item materials, including shulker shells and existing block items, while rejecting air, invalid names, and non-item materials.
-
Contextual material autocomplete includes non-block items; command and dialog wording describes items rather than only blocks.
-
Regression tests verify shell creation, autocomplete, and existing block-item support.
-
A player can create a quest through a registered quest board by selecting a valid item material, a positive quantity, and reward items from their inventory.
-
Reward items must exist in the issuer's inventory and are removed only when quest creation succeeds.
-
Removed rewards are held durably in escrow by the quest system.
-
A created quest records a unique identifier, issuer UUID and current name, requested material and quantity, exact reward items, creation time, and expiration time.
-
Each quest expires exactly seven days after successful creation.
-
Invalid input, insufficient reward items, or persistence failure leaves the issuer's inventory unchanged and creates no quest.
-
When player commands are enabled,
/quests create ...provides equivalent validated creation behavior with contextual autocomplete. -
Quest state and item metadata survive server restarts without duplication or loss.
-
Automated tests verify validation, escrow, rollback, timestamps, command routing, and persistence.