Basic Demo Seed
The Basic demo seed is deliberately separate from the reusable card catalogue. It creates the non-production event, challenge, and event-state fixtures needed to demonstrate the Basic player journey.
Commands
Apply migrations and the reusable catalogue only:
npm run db:migrate:test --workspace @wits-world/api
npm run db:seed:test --workspace @wits-world/api
Apply the complete Basic demo fixture to a disposable test database:
npm run db:seed:test --workspace @wits-world/api -- --basic-demo
For a guarded release rehearsal, use the explicit demo flag:
npm run db:release --workspace @wits-world/api -- \
--target test \
--confirm-database <test-database-name> \
--seed-basic-demo
The normal seed command does not publish event or challenge fixtures. The
legacy --seed-demo-event release flag remains accepted as an alias for
--seed-basic-demo while existing operator documentation is migrated.
Seeded fixtures
| Fixture | Purpose |
|---|---|
| Sprint 1 Demo - Wits Great Hall | Published active event with the five-question challenge |
| Basic Demo - Wits Library | Second published active event for discovery and reachability checks |
| Basic Demo - Upcoming Campus Event | Published upcoming state |
| Basic Demo - Expired Campus Event | Published expired state |
| Basic Demo - Unpublished Campus Event | Unavailable/unpublished state |
The active Great Hall coordinate is used for the reachable location claim. A clearly distant claim against that event demonstrates the too-far outcome. An already-completed state is player-specific and is created in an isolated test player rather than being inserted into the shared demo seed.
The Great Hall challenge contains five distinct published multiple-choice questions. Each question has four choices, one private answer key, and a nonblank post-completion explanation. The current questions use versioned IDs. When upgrading a database that contains the original immutable published fixtures, the seed inserts the replacements first and retires the original question rows without deleting historical references. The server chooses and snapshots the five questions; the seed does not expose answer keys through player-facing data.
The base catalogue contains three Common Creature cards and two Common Power cards for each of Wit, Grit, Spark, Spirit, and Mystic. It also contains cards in every supported rarity so starter, deck, reward, and CPU catalogue checks have deterministic inputs. The seeded Common cards have valid moves/effects and form a five-card Basic deck with three Creatures and two Power cards.
Trivia sources
The seeded questions are demonstration content and should be reviewed again before production publication. Their source pages are official Wits domains:
- Wits graduations supports the Great Hall/East Campus and graduation-ceremony questions.
- The Great Hall supports the venue description.
- Wits contact information supports the University of the Witwatersrand name and Johannesburg location.
- Wits Kudu Card information explicitly places Wartenweiler Library on East Campus.
- Wits library contact information supports the Wartenweiler Library contact entry.
- Wits library services provides the public library context.
No third-party card artwork is included. Card image references remain empty in the demo catalogue; the text description and gameplay data are the authoritative display content.
Verification
The database integration suite verifies that a clean database can be migrated, seeded, and seeded again without duplicate fixture rows. It checks the event states, five-question challenge structure, card catalogue readiness, starter grant, Basic deck validation, reward catalogue, and CPU match fixture path.
Do not run the Basic demo seed against production without an explicit release decision. Never include database URLs, credentials, access tokens, or player identity data in evidence.
The preceding document was planned, generated, and edited with the assistance of Codex[GPT-5.6 Sol].