Files
purpur-quest-board/knowledge/user-stories/us-003-create-a-block-delivery-quest.md
T
dmg 3bd2dc7d14
Release / release (push) Successful in 2m46s
CI / build (push) Successful in 1m19s
feat(quests): support requests for all inventory items
2026-09-09 21:50:16 -04:00

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.