.dockerignore
.env.example
.gitattributes
.gitignore
.pre-commit-config.yaml
.prettierignore
.python-version
AGENTS.md
Dockerfile
LICENSE
README.md
ROADMAP.md
alembic.ini
compose.yaml
makefile
pyproject.toml
uv.lock
.agents/skills/openspec-apply-change/SKILL.md
.agents/skills/openspec-archive-change/SKILL.md
.agents/skills/openspec-explore/SKILL.md
.agents/skills/openspec-propose/SKILL.md
.agents/skills/openspec-sync-specs/SKILL.md
.agents/skills/openspec-verify-change/SKILL.md
.agents/skills/oscilla-content-cli/SKILL.md
.agents/skills/playwright-cli/SKILL.md
.agents/skills/playwright-cli/references/element-attributes.md
.agents/skills/playwright-cli/references/playwright-tests.md
.agents/skills/playwright-cli/references/request-mocking.md
.agents/skills/playwright-cli/references/running-code.md
.agents/skills/playwright-cli/references/session-management.md
.agents/skills/playwright-cli/references/storage-state.md
.agents/skills/playwright-cli/references/test-generation.md
.agents/skills/playwright-cli/references/tracing.md
.agents/skills/playwright-cli/references/video-recording.md
.agents/skills/testlandia-content/SKILL.md
.github/dependabot.yml
.github/prompts/opsx-apply.prompt.md
.github/prompts/opsx-archive.prompt.md
.github/prompts/opsx-explore.prompt.md
.github/prompts/opsx-propose.prompt.md
.github/prompts/opsx-sync.prompt.md
.github/prompts/opsx-verify.prompt.md
.github/workflows/alembic.yaml
.github/workflows/black.yaml
.github/workflows/docker.yaml
.github/workflows/frontend-accessibility.yaml
.github/workflows/frontend-playwright.yaml
.github/workflows/mypy.yaml
.github/workflows/paracelsus.yaml
.github/workflows/prettier.yaml
.github/workflows/pypi.yaml
.github/workflows/pytest.yaml
.github/workflows/ruff.yaml
.github/workflows/tomlsort.yaml
.github/workflows/validate.yaml
content/testlandia/character_config.yaml
content/testlandia/game.yaml
content/testlandia/adventures/character-creation.yaml
content/testlandia/adventures/prestige-ceremony.yaml
content/testlandia/adventures/prestige-veteran-quest.yaml
content/testlandia/adventures/testlandia-character-creation.yaml
content/testlandia/adventures/testlandia-stat-formula-showcase.yaml
content/testlandia/adventures/triggered/test-character-intro.yaml
content/testlandia/adventures/triggered/test-custom-trigger-scene.yaml
content/testlandia/adventures/triggered/test-defeat-recovery.yaml
content/testlandia/adventures/triggered/test-level-up-scene.yaml
content/testlandia/adventures/triggered/test-rejoin-scene.yaml
content/testlandia/adventures/triggered/test-threshold-scene.yaml
content/testlandia/adventures/triggered/testlandia-level-up.yaml
content/testlandia/archetypes/test-mage.yaml
content/testlandia/archetypes/test-warrior.yaml
content/testlandia/regions/adventure-mechanics/adventure-mechanics.yaml
content/testlandia/regions/adventure-mechanics/locations/outcome-test/outcome-test.yaml
content/testlandia/regions/adventure-mechanics/locations/outcome-test/adventures/test-custom-outcome.yaml
content/testlandia/regions/adventure-mechanics/locations/passive-test/passive-test.yaml
content/testlandia/regions/adventure-mechanics/locations/passive-test/adventures/test-passive-trap.yaml
content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/repeat-controls-test.yaml
content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-cooldown-seconds.yaml
content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-cooldown.yaml
content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-milestone-timestamps.yaml
content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-one-shot.yaml
content/testlandia/regions/api-test/api-test.yaml
content/testlandia/regions/api-test/locations/api-hub/api-hub.yaml
content/testlandia/regions/api-test/locations/api-hub/adventures/api-crash-recovery.yaml
content/testlandia/regions/api-test/locations/api-hub/adventures/api-skill-menu.yaml
content/testlandia/regions/api-test/locations/api-hub/adventures/api-sse-events.yaml
content/testlandia/regions/api-test/locations/api-hub/adventures/text-input-adventure.yaml
content/testlandia/regions/api-test/locations/api-hub/adventures/web-overworld-nav.yaml
content/testlandia/regions/api-test/locations/api-secondary/api-secondary.yaml
content/testlandia/regions/archetypes/archetypes.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/archetype-lab.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-condition-check.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-count-check.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-force-regrant.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-grant-mage.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-grant-warrior.yaml
content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-remove-warrior.yaml
content/testlandia/regions/character/character.yaml
content/testlandia/regions/character/locations/bless/bless.yaml
content/testlandia/regions/character/locations/bless/adventures/bless.yaml
content/testlandia/regions/character/locations/bump-speed/bump-speed.yaml
content/testlandia/regions/character/locations/bump-speed/adventures/bump-speed.yaml
content/testlandia/regions/character/locations/bump-strength/bump-strength.yaml
content/testlandia/regions/character/locations/bump-strength/adventures/bump-strength.yaml
content/testlandia/regions/character/locations/drop-strength/drop-strength.yaml
content/testlandia/regions/character/locations/drop-strength/adventures/drop-strength.yaml
content/testlandia/regions/character/locations/full-heal/full-heal.yaml
content/testlandia/regions/character/locations/full-heal/adventures/full-heal.yaml
content/testlandia/regions/character/locations/full-reset/full-reset.yaml
content/testlandia/regions/character/locations/full-reset/adventures/full-reset.yaml
content/testlandia/regions/character/locations/gain-xp-level-up/gain-xp-level-up.yaml
content/testlandia/regions/character/locations/gain-xp-level-up/adventures/gain-xp-level-up.yaml
content/testlandia/regions/character/locations/gain-xp-small/gain-xp-small.yaml
content/testlandia/regions/character/locations/gain-xp-small/adventures/gain-xp-small.yaml
content/testlandia/regions/character/locations/gold-change-overflow/gold-change-overflow.yaml
content/testlandia/regions/character/locations/gold-change-overflow/adventures/gold-change-overflow.yaml
content/testlandia/regions/character/locations/gold-change-underflow/gold-change-underflow.yaml
content/testlandia/regions/character/locations/gold-change-underflow/adventures/gold-change-underflow.yaml
content/testlandia/regions/character/locations/gold-set-at-max/gold-set-at-max.yaml
content/testlandia/regions/character/locations/gold-set-at-max/adventures/gold-set-at-max.yaml
content/testlandia/regions/character/locations/gold-set-at-min/gold-set-at-min.yaml
content/testlandia/regions/character/locations/gold-set-at-min/adventures/gold-set-at-min.yaml
content/testlandia/regions/character/locations/lose-xp-delevel/lose-xp-delevel.yaml
content/testlandia/regions/character/locations/lose-xp-delevel/adventures/lose-xp-delevel.yaml
content/testlandia/regions/character/locations/partial-heal/partial-heal.yaml
content/testlandia/regions/character/locations/partial-heal/adventures/partial-heal.yaml
content/testlandia/regions/character/locations/set-strength/set-strength.yaml
content/testlandia/regions/character/locations/set-strength/adventures/set-strength.yaml
content/testlandia/regions/character/locations/unbless/unbless.yaml
content/testlandia/regions/character/locations/unbless/adventures/unbless.yaml
content/testlandia/regions/choices/choices.yaml
content/testlandia/regions/choices/locations/binary-choice/binary-choice.yaml
content/testlandia/regions/choices/locations/binary-choice/adventures/binary-choice.yaml
content/testlandia/regions/choices/locations/goto-demo/goto-demo.yaml
content/testlandia/regions/choices/locations/goto-demo/adventures/goto-demo.yaml
content/testlandia/regions/choices/locations/nested-choice/nested-choice.yaml
content/testlandia/regions/choices/locations/nested-choice/adventures/nested-choice.yaml
content/testlandia/regions/choices/locations/stat-check-branch/stat-check-branch.yaml
content/testlandia/regions/choices/locations/stat-check-branch/adventures/stat-check-branch.yaml
content/testlandia/regions/combat/combat.yaml
content/testlandia/regions/combat/enemies/glass-dummy.yaml
content/testlandia/regions/combat/enemies/iron-golem.yaml
content/testlandia/regions/combat/locations/easy-fight/easy-fight.yaml
content/testlandia/regions/combat/locations/easy-fight/adventures/easy-fight.yaml
content/testlandia/regions/combat/locations/flee-test/flee-test.yaml
content/testlandia/regions/combat/locations/flee-test/adventures/flee-test.yaml
content/testlandia/regions/combat/locations/hard-fight/hard-fight.yaml
content/testlandia/regions/combat/locations/hard-fight/adventures/hard-fight.yaml
content/testlandia/regions/conditions/conditions.yaml
content/testlandia/regions/conditions/locations/and-condition/and-condition.yaml
content/testlandia/regions/conditions/locations/and-condition/adventures/and-condition.yaml
content/testlandia/regions/conditions/locations/calendar/calendar.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-calendar-data.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-date-between.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-month-is.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-moon-phase-composition.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-season-is.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-time-between.yaml
content/testlandia/regions/conditions/locations/calendar/adventures/test-zodiac-is.yaml
content/testlandia/regions/conditions/locations/get-badge/get-badge.yaml
content/testlandia/regions/conditions/locations/get-badge/adventures/get-badge.yaml
content/testlandia/regions/conditions/locations/milestone-locked/milestone-locked.yaml
content/testlandia/regions/conditions/locations/milestone-locked/adventures/milestone-locked.yaml
content/testlandia/regions/conditions/locations/or-condition/or-condition.yaml
content/testlandia/regions/conditions/locations/or-condition/adventures/or-condition.yaml
content/testlandia/regions/conditions/locations/prestige-gated/prestige-gated.yaml
content/testlandia/regions/conditions/locations/stat-gated/stat-gated.yaml
content/testlandia/regions/conditions/locations/stat-gated/adventures/stat-gated.yaml
content/testlandia/regions/ingame-time/ingame-time.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/ingame-time-lab.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-count-the-days.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-new-era-unlocked.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-time-advances.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-time-display.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-turn-back-the-clock.yaml
content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-wait-for-season.yaml
content/testlandia/regions/items/items.yaml
content/testlandia/regions/items/items/battle-axe.yaml
content/testlandia/regions/items/items/enchanted-breastplate.yaml
content/testlandia/regions/items/items/test-charged-scroll.yaml
content/testlandia/regions/items/items/test-heavy-armor.yaml
content/testlandia/regions/items/items/test-legendary-gem.yaml
content/testlandia/regions/items/items/test-potion.yaml
content/testlandia/regions/items/items/test-shield.yaml
content/testlandia/regions/items/items/test-sword.yaml
content/testlandia/regions/items/items/test-tonic.yaml
content/testlandia/regions/items/items/test-widget.yaml
content/testlandia/regions/items/locations/gain-battle-axe/gain-battle-axe.yaml
content/testlandia/regions/items/locations/gain-battle-axe/adventures/gain-battle-axe.yaml
content/testlandia/regions/items/locations/gain-charged-scroll/gain-charged-scroll.yaml
content/testlandia/regions/items/locations/gain-charged-scroll/adventures/gain-charged-scroll.yaml
content/testlandia/regions/items/locations/gain-enchanted-armor/gain-enchanted-armor.yaml
content/testlandia/regions/items/locations/gain-enchanted-armor/adventures/gain-enchanted-armor.yaml
content/testlandia/regions/items/locations/gain-heavy-armor/gain-heavy-armor.yaml
content/testlandia/regions/items/locations/gain-heavy-armor/adventures/gain-heavy-armor.yaml
content/testlandia/regions/items/locations/gain-item/gain-item.yaml
content/testlandia/regions/items/locations/gain-item/adventures/gain-item.yaml
content/testlandia/regions/items/locations/gain-legendary-gem/gain-legendary-gem.yaml
content/testlandia/regions/items/locations/gain-legendary-gem/adventures/gain-legendary-gem.yaml
content/testlandia/regions/items/locations/gain-potion/gain-potion.yaml
content/testlandia/regions/items/locations/gain-potion/adventures/gain-potion.yaml
content/testlandia/regions/items/locations/gain-shield/gain-shield.yaml
content/testlandia/regions/items/locations/gain-shield/adventures/gain-shield.yaml
content/testlandia/regions/items/locations/gain-sword/gain-sword.yaml
content/testlandia/regions/items/locations/gain-sword/adventures/gain-sword.yaml
content/testlandia/regions/items/locations/gain-tonic/gain-tonic.yaml
content/testlandia/regions/items/locations/gain-tonic/adventures/gain-tonic.yaml
content/testlandia/regions/items/locations/multi-item/multi-item.yaml
content/testlandia/regions/items/locations/multi-item/adventures/multi-item.yaml
content/testlandia/regions/items/locations/use-item-effect/use-item-effect.yaml
content/testlandia/regions/items/locations/use-item-effect/adventures/use-item-effect.yaml
content/testlandia/regions/loot-tables/loot-tables.yaml
content/testlandia/regions/loot-tables/locations/loot-conditional-entry/loot-conditional-entry.yaml
content/testlandia/regions/loot-tables/locations/loot-conditional-entry/adventures/loot-conditional-entry.yaml
content/testlandia/regions/loot-tables/locations/loot-conditional-group/loot-conditional-group.yaml
content/testlandia/regions/loot-tables/locations/loot-conditional-group/adventures/loot-conditional-group.yaml
content/testlandia/regions/loot-tables/locations/loot-method-unique/loot-method-unique.yaml
content/testlandia/regions/loot-tables/locations/loot-method-unique/adventures/loot-method-unique.yaml
content/testlandia/regions/loot-tables/locations/loot-multi-group/loot-multi-group.yaml
content/testlandia/regions/loot-tables/locations/loot-multi-group/adventures/loot-multi-group.yaml
content/testlandia/regions/loot-tables/locations/loot-ref-drop/loot-ref-drop.yaml
content/testlandia/regions/loot-tables/locations/loot-ref-drop/adventures/loot-ref-drop.yaml
content/testlandia/regions/loot-tables/locations/loot-template-amount/loot-template-amount.yaml
content/testlandia/regions/loot-tables/locations/loot-template-amount/adventures/loot-template-amount.yaml
content/testlandia/regions/loot-tables/locations/loot-template-count/loot-template-count.yaml
content/testlandia/regions/loot-tables/locations/loot-template-count/adventures/loot-template-count.yaml
content/testlandia/regions/quests/quests.yaml
content/testlandia/regions/quests/locations/test-quest-hub/test-quest-hub.yaml
content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-fail-quest.yaml
content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-failable-quest-start.yaml
content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-quest-finish.yaml
content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-quest-start.yaml
content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-stage-condition-start.yaml
content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-stage-gate.yaml
content/testlandia/regions/quests/loot-tables/test-loot.yaml
content/testlandia/regions/quests/quests/test-failable-quest.yaml
content/testlandia/regions/quests/quests/test-quest.yaml
content/testlandia/regions/quests/quests/test-stage-condition-quest.yaml
content/testlandia/regions/skills/skills.yaml
content/testlandia/regions/skills/buffs/rage-buff.yaml
content/testlandia/regions/skills/buffs/regen-buff.yaml
content/testlandia/regions/skills/buffs/shield-buff.yaml
content/testlandia/regions/skills/locations/buff-combat-test/buff-combat-test.yaml
content/testlandia/regions/skills/locations/buff-combat-test/adventures/buff-combat-test.yaml
content/testlandia/regions/skills/locations/overworld-skill-test/overworld-skill-test.yaml
content/testlandia/regions/skills/locations/overworld-skill-test/adventures/overworld-skill-test.yaml
content/testlandia/regions/skills/locations/skill-grant-test/skill-grant-test.yaml
content/testlandia/regions/skills/locations/skill-grant-test/adventures/skill-grant-test.yaml
content/testlandia/regions/skills/skills/arcane-mend.yaml
content/testlandia/regions/skills/skills/dispel-curse.yaml
content/testlandia/regions/skills/skills/focused-training.yaml
content/testlandia/regions/skills/skills/iron-skin.yaml
content/testlandia/regions/skills/skills/regen-aura.yaml
content/testlandia/regions/skills/skills/test-dispel.yaml
content/testlandia/regions/skills/skills/test-rage-skill.yaml
content/testlandia/regions/skills/skills/test-regen-skill.yaml
content/testlandia/regions/skills/skills/test-shield-skill.yaml
content/testlandia/regions/skills/skills/war-rage.yaml
content/testlandia/regions/template-system/template-system.yaml
content/testlandia/regions/template-system/locations/conditional-narrative/conditional-narrative.yaml
content/testlandia/regions/template-system/locations/conditional-narrative/adventures/fame-check.yaml
content/testlandia/regions/template-system/locations/narrative-test/narrative-test.yaml
content/testlandia/regions/template-system/locations/narrative-test/adventures/personalized-greeting.yaml
content/testlandia/regions/template-system/locations/pronoun-selection/pronoun-selection.yaml
content/testlandia/regions/template-system/locations/pronoun-selection/adventures/choose-pronouns.yaml
content/testlandia/regions/template-system/locations/variable-rewards/variable-rewards.yaml
content/testlandia/regions/template-system/locations/variable-rewards/adventures/treasure-hunt.yaml
content/testlandia/regions/tooling-lab/tooling-lab.yaml
content/testlandia/regions/tooling-lab/locations/trace-demo/trace-demo.yaml
content/testlandia/regions/tooling-lab/locations/trace-demo/adventures/trace-demo.yaml
content/testlandia/regions/tooling-lab/manifests/multi-item-demo.yaml
db/README
db/env.py
db/script.py.mako
db/versions/.gitkeep
db/versions/259483ce21e3_add_adventure_repeat_controls_state.py
db/versions/4d00544baa8e_add_character_session_output_table.py
db/versions/4e3a2cc7ad61_add_character_iteration_active_buffs.py
db/versions/4e401e38a348_remove_current_location_from_character_.py
db/versions/50db8ddc0649_add_ingame_time_tables.py
db/versions/54ce9666dd28_add_persistence_schema.py
db/versions/702eb8ecb200_tick_anchored_state_refactor.py
db/versions/838f5ad54e6c_add_title_and_pronoun_set_to_characters.py
db/versions/840b0f8aab05_add_pending_triggers_table.py
db/versions/8cb42c2142c2_add_auth_audit_log_table.py
db/versions/97bbf20a2043_remove_hardcoded_progression_columns.py
db/versions/b39a892757e1_add_title_and_pronoun_set_to_character_.py
db/versions/c05a68726c2e_add_game_name_field_to_characters_table_.py
db/versions/c9fe37b6f17d_add_session_token_acquired_at_to_.py
db/versions/d3057a86660a_replace_float_stat_column_with_.py
db/versions/d32ff002b8aa_add_game_name_to_characters.py
db/versions/d4c9cbe28338_add_item_instances_tables_and_update_.py
db/versions/d536049d79a9_add_auth_refresh_tokens_table.py
db/versions/d734190494ea_remove_title_from_character_iterations.py
db/versions/f2efd06c87d8_extend_userrecord_with_web_auth_columns.py
db/versions/fef7c4caf398_add_skill_system_tables.py
docker/frontend/Dockerfile
docker/gateway/Caddyfile
docker/www/prestart.sh
docs/README.md
docs/system-overview.md
docs/authors/README.md
docs/authors/adventures.md
docs/authors/archetypes.md
docs/authors/cli.md
docs/authors/conditions.md
docs/authors/cooldowns.md
docs/authors/effects.md
docs/authors/enemies.md
docs/authors/game-configuration.md
docs/authors/getting-started.md
docs/authors/ingame-time.md
docs/authors/items.md
docs/authors/loot-tables.md
docs/authors/passive-effects.md
docs/authors/quests.md
docs/authors/recipes.md
docs/authors/skills.md
docs/authors/templates.md
docs/authors/world-building.md
docs/authors/cookbook/README.md
docs/authors/cookbook/day-night-narrative.md
docs/authors/cookbook/ingame-time-patterns.md
docs/authors/cookbook/locked-doors.md
docs/authors/cookbook/reputation-system.md
docs/dev/README.md
docs/dev/api.md
docs/dev/authentication.md
docs/dev/cache.md
docs/dev/cli.md
docs/dev/database.md
docs/dev/dependencies.md
docs/dev/design-philosophy.md
docs/dev/docker.md
docs/dev/documentation.md
docs/dev/frontend.md
docs/dev/game-engine.md
docs/dev/github.md
docs/dev/load-warnings.md
docs/dev/makefile.md
docs/dev/pypi.md
docs/dev/settings.md
docs/dev/templates.md
docs/dev/testing.md
docs/dev/tui.md
docs/hosting/README.md
docs/hosting/deployment.md
frontend/.gitignore
frontend/.npmrc
frontend/.prettierignore
frontend/.prettierrc
frontend/README.md
frontend/package-lock.json
frontend/package.json
frontend/playwright.config.ts
frontend/playwright.e2e.config.ts
frontend/svelte.config.js
frontend/tsconfig.json
frontend/vite.config.ts
frontend/src/app.d.ts
frontend/src/app.html
frontend/src/test-setup.ts
frontend/src/lib/index.ts
frontend/src/lib/api/auth.ts
frontend/src/lib/api/characters.ts
frontend/src/lib/api/client.test.ts
frontend/src/lib/api/client.ts
frontend/src/lib/api/games.ts
frontend/src/lib/api/play.test.ts
frontend/src/lib/api/play.ts
frontend/src/lib/api/types.ts
frontend/src/lib/assets/favicon.svg
frontend/src/lib/components/Button.svelte
frontend/src/lib/components/Card.svelte
frontend/src/lib/components/CharacterHeader.svelte
frontend/src/lib/components/ErrorBanner.svelte
frontend/src/lib/components/LoadingSpinner.svelte
frontend/src/lib/components/Modal.svelte
frontend/src/lib/components/NavBar.svelte
frontend/src/lib/components/ThemeToggle.svelte
frontend/src/lib/components/index.ts
frontend/src/lib/components/Game/AckPrompt.svelte
frontend/src/lib/components/Game/AdventureCompleteScreen.svelte
frontend/src/lib/components/Game/ChoiceMenu.svelte
frontend/src/lib/components/Game/CombatHUD.svelte
frontend/src/lib/components/Game/NarrativeEntry.svelte
frontend/src/lib/components/Game/NarrativeLog.svelte
frontend/src/lib/components/Game/SessionConflictModal.svelte
frontend/src/lib/components/Game/SkillMenu.svelte
frontend/src/lib/components/Game/TextInputForm.svelte
frontend/src/lib/components/Overworld/CharacterSidebar.svelte
frontend/src/lib/components/Overworld/InventoryQuickActions.svelte
frontend/src/lib/components/Overworld/LocationInfo.svelte
frontend/src/lib/components/Overworld/OverworldView.svelte
frontend/src/lib/components/panels/ArchetypesPanel.svelte
frontend/src/lib/components/panels/BuffsPanel.svelte
frontend/src/lib/components/panels/EquipmentPanel.svelte
frontend/src/lib/components/panels/InventoryPanel.svelte
frontend/src/lib/components/panels/MilestonesPanel.svelte
frontend/src/lib/components/panels/QuestsPanel.svelte
frontend/src/lib/components/panels/SkillsPanel.svelte
frontend/src/lib/components/panels/StatsPanel.svelte
frontend/src/lib/stores/auth.test.ts
frontend/src/lib/stores/auth.ts
frontend/src/lib/stores/gameSession.test.ts
frontend/src/lib/stores/gameSession.ts
frontend/src/lib/stores/theme.test.ts
frontend/src/lib/stores/theme.ts
frontend/src/lib/theme/tokens.css
frontend/src/routes/+layout.svelte
frontend/src/routes/+layout.ts
frontend/src/routes/+page.svelte
frontend/src/routes/about/+page.svelte
frontend/src/routes/characters/+page.svelte
frontend/src/routes/characters/[id]/+layout.ts
frontend/src/routes/characters/[id]/+page.svelte
frontend/src/routes/characters/[id]/character-sheet.test.ts
frontend/src/routes/characters/[id]/play/+page.svelte
frontend/src/routes/characters/[id]/play/+page.ts
frontend/src/routes/characters/[id]/play/play.test.ts
frontend/src/routes/characters/new/+page.svelte
frontend/src/routes/forgot-password/+page.svelte
frontend/src/routes/games/+page.svelte
frontend/src/routes/login/+page.svelte
frontend/src/routes/login/login.test.ts
frontend/src/routes/register/+page.svelte
frontend/src/routes/reset-password/+page.svelte
frontend/src/routes/verify/+page.svelte
frontend/static/robots.txt
frontend/test-results/.last-run.json
frontend/tests/accessibility.test.ts
frontend/tests/e2e/auth/login.spec.ts
frontend/tests/e2e/auth/register.spec.ts
frontend/tests/e2e/characters/create.spec.ts
frontend/tests/e2e/characters/sheet.spec.ts
frontend/tests/e2e/game/play.spec.ts
frontend/tests/e2e/helpers/session.ts
openspec/config.yaml
openspec/changes/archive/2026-03-28-async-textual-tui/.openspec.yaml
openspec/changes/archive/2026-03-28-async-textual-tui/design.md
openspec/changes/archive/2026-03-28-async-textual-tui/proposal.md
openspec/changes/archive/2026-03-28-async-textual-tui/tasks.md
openspec/changes/archive/2026-03-28-async-textual-tui/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-03-28-async-textual-tui/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-03-28-async-textual-tui/specs/textual-tui/spec.md
openspec/changes/archive/2026-03-28-game-engine-foundation/.openspec.yaml
openspec/changes/archive/2026-03-28-game-engine-foundation/design.md
openspec/changes/archive/2026-03-28-game-engine-foundation/proposal.md
openspec/changes/archive/2026-03-28-game-engine-foundation/tasks.md
openspec/changes/archive/2026-03-28-game-engine-foundation/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-03-28-game-engine-foundation/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-03-28-game-engine-foundation/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-03-28-game-engine-foundation/specs/manifest-system/spec.md
openspec/changes/archive/2026-03-28-game-engine-foundation/specs/player-state/spec.md
openspec/changes/archive/2026-03-28-game-engine-foundation/specs/poc-content/spec.md
openspec/changes/archive/2026-03-29-item-system/design.md
openspec/changes/archive/2026-03-29-item-system/proposal.md
openspec/changes/archive/2026-03-29-item-system/tasks.md
openspec/changes/archive/2026-03-29-item-system/specs/item-system/spec.md
openspec/changes/archive/2026-03-29-item-system/specs/player-state/spec.md
openspec/changes/archive/2026-03-29-item-system/specs/poc-content/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/.openspec.yaml
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/design.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/proposal.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/tasks.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/level-down/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/manifest-system/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/multi-game-library/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/player-persistence/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/stat-mutation-effects/spec.md
openspec/changes/archive/2026-03-29-multi-game-and-testlandia/specs/testlandia/spec.md
openspec/changes/archive/2026-03-29-player-persistence/.openspec.yaml
openspec/changes/archive/2026-03-29-player-persistence/design.md
openspec/changes/archive/2026-03-29-player-persistence/proposal.md
openspec/changes/archive/2026-03-29-player-persistence/tasks.md
openspec/changes/archive/2026-03-29-player-persistence/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-03-29-player-persistence/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-03-29-player-persistence/specs/game-session/spec.md
openspec/changes/archive/2026-03-29-player-persistence/specs/player-persistence/spec.md
openspec/changes/archive/2026-03-29-player-persistence/specs/user-identity/spec.md
openspec/changes/archive/2026-03-30-platform-data-directory/.openspec.yaml
openspec/changes/archive/2026-03-30-platform-data-directory/design.md
openspec/changes/archive/2026-03-30-platform-data-directory/proposal.md
openspec/changes/archive/2026-03-30-platform-data-directory/tasks.md
openspec/changes/archive/2026-03-30-platform-data-directory/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-03-30-platform-data-directory/specs/data-directory/spec.md
openspec/changes/archive/2026-03-30-platform-data-directory/specs/player-persistence/spec.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/.openspec.yaml
openspec/changes/archive/2026-03-30-stat-integer-hardening/design.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/proposal.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/tasks.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/specs/manifest-system/spec.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/specs/player-state/spec.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/specs/stat-bounds/spec.md
openspec/changes/archive/2026-03-30-stat-integer-hardening/specs/stat-mutation-effects/spec.md
openspec/changes/archive/2026-03-31-skill-system/.openspec.yaml
openspec/changes/archive/2026-03-31-skill-system/design.md
openspec/changes/archive/2026-03-31-skill-system/proposal.md
openspec/changes/archive/2026-03-31-skill-system/tasks.md
openspec/changes/archive/2026-03-31-skill-system/specs/actions-screen/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/combat-skills/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/item-skill-grants/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/item-system/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/player-state/spec.md
openspec/changes/archive/2026-03-31-skill-system/specs/skill-system/spec.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/.openspec.yaml
openspec/changes/archive/2026-04-01-dynamic-content-templates/design.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/proposal.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/tasks.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/specs/dynamic-content-templates/spec.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/specs/manifest-system/spec.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/specs/pronoun-system/spec.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/specs/stat-mutation-effects/spec.md
openspec/changes/archive/2026-04-01-dynamic-content-templates/specs/testlandia/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/.openspec.yaml
openspec/changes/archive/2026-04-02-item-enhancements/design.md
openspec/changes/archive/2026-04-02-item-enhancements/proposal.md
openspec/changes/archive/2026-04-02-item-enhancements/tasks.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/item-charges/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/item-labels/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/item-requirements/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/item-skill-grants/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/item-system/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/load-warnings/spec.md
openspec/changes/archive/2026-04-02-item-enhancements/specs/passive-effects/spec.md
openspec/changes/archive/2026-04-04-author-cli/.openspec.yaml
openspec/changes/archive/2026-04-04-author-cli/design.md
openspec/changes/archive/2026-04-04-author-cli/proposal.md
openspec/changes/archive/2026-04-04-author-cli/tasks.md
openspec/changes/archive/2026-04-04-author-cli/specs/author-cli-create/spec.md
openspec/changes/archive/2026-04-04-author-cli/specs/author-cli-graph/spec.md
openspec/changes/archive/2026-04-04-author-cli/specs/author-cli-inspect/spec.md
openspec/changes/archive/2026-04-04-author-cli/specs/author-cli-schema/spec.md
openspec/changes/archive/2026-04-04-author-cli/specs/author-cli-semantic-validation/spec.md
openspec/changes/archive/2026-04-04-author-cli/specs/author-cli-trace/spec.md
openspec/changes/archive/2026-04-04-author-cli/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-04-04-author-docs-refactor/.openspec.yaml
openspec/changes/archive/2026-04-04-author-docs-refactor/design.md
openspec/changes/archive/2026-04-04-author-docs-refactor/proposal.md
openspec/changes/archive/2026-04-04-author-docs-refactor/tasks.md
openspec/changes/archive/2026-04-04-author-docs-refactor/specs/author-docs/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/.openspec.yaml
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/design.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/proposal.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/tasks.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/adventure-outcome-definitions/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/adventure-repeat-controls/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/passive-step/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/quest-engine/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/quest-failure-states/spec.md
openspec/changes/archive/2026-04-04-content-authoring-expressiveness/specs/quest-stage-condition/spec.md
openspec/changes/archive/2026-04-04-tech-debt-q1/.openspec.yaml
openspec/changes/archive/2026-04-04-tech-debt-q1/design.md
openspec/changes/archive/2026-04-04-tech-debt-q1/proposal.md
openspec/changes/archive/2026-04-04-tech-debt-q1/tasks.md
openspec/changes/archive/2026-04-04-tech-debt-q1/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-04-tech-debt-q1/specs/loot-tables/spec.md
openspec/changes/archive/2026-04-04-tech-debt-q1/specs/manifest-system/spec.md
openspec/changes/archive/2026-04-04-tech-debt-q1/specs/quest-engine/spec.md
openspec/changes/archive/2026-04-05-calendar-conditions/.openspec.yaml
openspec/changes/archive/2026-04-05-calendar-conditions/design.md
openspec/changes/archive/2026-04-05-calendar-conditions/proposal.md
openspec/changes/archive/2026-04-05-calendar-conditions/tasks.md
openspec/changes/archive/2026-04-05-calendar-conditions/specs/calendar-conditions/spec.md
openspec/changes/archive/2026-04-05-calendar-conditions/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-05-calendar-conditions/specs/dynamic-content-templates/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/.openspec.yaml
openspec/changes/archive/2026-04-05-ingame-time-system/design.md
openspec/changes/archive/2026-04-05-ingame-time-system/proposal.md
openspec/changes/archive/2026-04-05-ingame-time-system/tasks.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/adventure-repeat-controls/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/dynamic-content-templates/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/ingame-time-conditions/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/ingame-time-effects/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/ingame-time-system/spec.md
openspec/changes/archive/2026-04-05-ingame-time-system/specs/ingame-time-templates/spec.md
openspec/changes/archive/2026-04-05-triggered-adventures/.openspec.yaml
openspec/changes/archive/2026-04-05-triggered-adventures/design.md
openspec/changes/archive/2026-04-05-triggered-adventures/proposal.md
openspec/changes/archive/2026-04-05-triggered-adventures/tasks.md
openspec/changes/archive/2026-04-05-triggered-adventures/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-04-05-triggered-adventures/specs/game-session/spec.md
openspec/changes/archive/2026-04-05-triggered-adventures/specs/player-state/spec.md
openspec/changes/archive/2026-04-05-triggered-adventures/specs/triggered-adventures/spec.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/.openspec.yaml
openspec/changes/archive/2026-04-06-character-creation-and-prestige/design.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/proposal.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/tasks.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/specs/adventure-pipeline/spec.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/specs/player-persistence/spec.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/specs/player-state/spec.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/specs/prestige-system/spec.md
openspec/changes/archive/2026-04-06-character-creation-and-prestige/specs/triggered-adventures/spec.md
openspec/changes/archive/2026-04-06-multi-manifest-yaml/.openspec.yaml
openspec/changes/archive/2026-04-06-multi-manifest-yaml/design.md
openspec/changes/archive/2026-04-06-multi-manifest-yaml/proposal.md
openspec/changes/archive/2026-04-06-multi-manifest-yaml/tasks.md
openspec/changes/archive/2026-04-06-multi-manifest-yaml/specs/manifest-system/spec.md
openspec/changes/archive/2026-04-06-multi-manifest-yaml/specs/multi-manifest-loading/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/.openspec.yaml
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/design.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/proposal.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/tasks.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/adventure-repeat-controls/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/combat-skills/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/dynamic-content-templates/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/milestone-timestamps/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/player-state/spec.md
openspec/changes/archive/2026-04-07-tick-anchored-state-refactor/specs/unified-cooldown-schema/spec.md
openspec/changes/archive/2026-04-08-stat-formula-templates/.openspec.yaml
openspec/changes/archive/2026-04-08-stat-formula-templates/design.md
openspec/changes/archive/2026-04-08-stat-formula-templates/proposal.md
openspec/changes/archive/2026-04-08-stat-formula-templates/tasks.md
openspec/changes/archive/2026-04-08-stat-formula-templates/specs/derived-stats/spec.md
openspec/changes/archive/2026-04-08-stat-formula-templates/specs/dynamic-content-templates/spec.md
openspec/changes/archive/2026-04-08-stat-formula-templates/specs/player-state/spec.md
openspec/changes/archive/2026-04-08-stat-formula-templates/specs/stat-mutation-effects/spec.md
openspec/changes/archive/2026-04-08-stat-formula-templates/specs/template-functions-extended/spec.md
openspec/changes/archive/2026-04-08-stat-formula-templates/specs/triggered-adventures/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/.openspec.yaml
openspec/changes/archive/2026-04-09-character-archetypes/design.md
openspec/changes/archive/2026-04-09-character-archetypes/proposal.md
openspec/changes/archive/2026-04-09-character-archetypes/tasks.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/archetype-conditions/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/archetype-effects/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/archetype-system/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/condition-evaluator/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/manifest-system/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/passive-effects/spec.md
openspec/changes/archive/2026-04-09-character-archetypes/specs/skill-revoke/spec.md
openspec/changes/archive/2026-04-10-enhanced-loot-tables/.openspec.yaml
openspec/changes/archive/2026-04-10-enhanced-loot-tables/design.md
openspec/changes/archive/2026-04-10-enhanced-loot-tables/proposal.md
openspec/changes/archive/2026-04-10-enhanced-loot-tables/tasks.md
openspec/changes/archive/2026-04-10-enhanced-loot-tables/specs/loot-groups/spec.md
openspec/changes/archive/2026-04-10-enhanced-loot-tables/specs/loot-tables/spec.md
openspec/changes/archive/2026-04-10-validate-command-consolidation/.openspec.yaml
openspec/changes/archive/2026-04-10-validate-command-consolidation/design.md
openspec/changes/archive/2026-04-10-validate-command-consolidation/proposal.md
openspec/changes/archive/2026-04-10-validate-command-consolidation/tasks.md
openspec/changes/archive/2026-04-10-validate-command-consolidation/specs/cli-game-loop/spec.md
openspec/changes/archive/2026-04-10-validate-command-consolidation/specs/validate-stdin/spec.md
openspec/changes/archive/2026-04-11-combat-refinement/.openspec.yaml
openspec/changes/archive/2026-04-11-combat-refinement/design.md
openspec/changes/archive/2026-04-11-combat-refinement/proposal.md
openspec/changes/archive/2026-04-11-combat-refinement/tasks.md
openspec/changes/archive/2026-04-11-combat-refinement/specs/buff-blocking/spec.md
openspec/changes/archive/2026-04-11-combat-refinement/specs/buff-persistence/spec.md
openspec/changes/archive/2026-04-11-combat-refinement/specs/combat-skills/spec.md
openspec/changes/archive/2026-04-11-mu1-auth-and-accounts/design.md
openspec/changes/archive/2026-04-11-mu1-auth-and-accounts/proposal.md
openspec/changes/archive/2026-04-11-mu1-auth-and-accounts/tasks.md
openspec/changes/archive/2026-04-11-mu1-auth-and-accounts/specs/email-service/spec.md
openspec/changes/archive/2026-04-11-mu1-auth-and-accounts/specs/refresh-token-store/spec.md
openspec/changes/archive/2026-04-11-mu1-auth-and-accounts/specs/web-auth/spec.md
openspec/changes/archive/2026-04-11-mu2-game-and-character-api/design.md
openspec/changes/archive/2026-04-11-mu2-game-and-character-api/proposal.md
openspec/changes/archive/2026-04-11-mu2-game-and-character-api/tasks.md
openspec/changes/archive/2026-04-11-mu2-game-and-character-api/specs/character-management/spec.md
openspec/changes/archive/2026-04-11-mu2-game-and-character-api/specs/game-discovery/spec.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/design.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/proposal.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/tasks.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/specs/adventure-crash-recovery/spec.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/specs/tui-callbacks/spec.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/specs/web-adventure-execution/spec.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/specs/web-overworld/spec.md
openspec/changes/archive/2026-04-12-mu3-adventure-execution-api/specs/web-session-locking/spec.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/design.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/proposal.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/tasks.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/specs/api-client/spec.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/specs/auth-flows/spec.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/specs/character-management/spec.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/specs/design-system/spec.md
openspec/changes/archive/2026-04-12-mu4-web-frontend-foundation/specs/frontend-scaffold/spec.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/design.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/proposal.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/tasks.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/specs/web-crash-recovery-ui/spec.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/specs/web-game-loop/spec.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/specs/web-overworld/spec.md
openspec/changes/archive/2026-04-12-mu5-web-frontend-game-loop/specs/web-session-takeover-ui/spec.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/design.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/proposal.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/tasks.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/specs/auth-audit-log/spec.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/specs/auth-rate-limiting/spec.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/specs/health-probes/spec.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/specs/password-strength/spec.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/specs/production-docker/spec.md
openspec/changes/archive/2026-04-12-mu6-production-hardening/specs/security-middleware/spec.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/.openspec.yaml
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/design.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/proposal.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/tasks.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/specs/api-route-prefix/spec.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/specs/dev-docker-environment/spec.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/specs/frontend-scaffold/spec.md
openspec/changes/archive/2026-04-13-api-routing-and-dev-stack/specs/production-docker/spec.md
openspec/changes/archive/2026-04-14-remove-adventure-spoilers/.openspec.yaml
openspec/changes/archive/2026-04-14-remove-adventure-spoilers/design.md
openspec/changes/archive/2026-04-14-remove-adventure-spoilers/proposal.md
openspec/changes/archive/2026-04-14-remove-adventure-spoilers/tasks.md
openspec/changes/archive/2026-04-14-remove-adventure-spoilers/specs/web-overworld/spec.md
openspec/changes/archive/2026-04-14-remove-adventure-spoilers/specs/web-play-go/spec.md
openspec/specs/actions-screen/spec.md
openspec/specs/adventure-crash-recovery/spec.md
openspec/specs/adventure-outcome-definitions/spec.md
openspec/specs/adventure-pipeline/spec.md
openspec/specs/adventure-repeat-controls/spec.md
openspec/specs/api-client/spec.md
openspec/specs/api-route-prefix/spec.md
openspec/specs/archetype-conditions/spec.md
openspec/specs/archetype-effects/spec.md
openspec/specs/archetype-system/spec.md
openspec/specs/auth-audit-log/spec.md
openspec/specs/auth-flows/spec.md
openspec/specs/auth-rate-limiting/spec.md
openspec/specs/author-docs/spec.md
openspec/specs/buff-blocking/spec.md
openspec/specs/buff-persistence/spec.md
openspec/specs/calendar-conditions/spec.md
openspec/specs/character-management/spec.md
openspec/specs/cli-game-loop/spec.md
openspec/specs/combat-skills/spec.md
openspec/specs/condition-evaluator/spec.md
openspec/specs/data-directory/spec.md
openspec/specs/derived-stats/spec.md
openspec/specs/design-system/spec.md
openspec/specs/dev-docker-environment/spec.md
openspec/specs/dynamic-content-templates/spec.md
openspec/specs/email-service/spec.md
openspec/specs/frontend-scaffold/spec.md
openspec/specs/game-discovery/spec.md
openspec/specs/game-session/spec.md
openspec/specs/health-probes/spec.md
openspec/specs/ingame-time-conditions/spec.md
openspec/specs/ingame-time-effects/spec.md
openspec/specs/ingame-time-system/spec.md
openspec/specs/ingame-time-templates/spec.md
openspec/specs/item-charges/spec.md
openspec/specs/item-labels/spec.md
openspec/specs/item-requirements/spec.md
openspec/specs/item-skill-grants/spec.md
openspec/specs/item-system/spec.md
openspec/specs/level-down/spec.md
openspec/specs/load-warnings/spec.md
openspec/specs/loot-groups/spec.md
openspec/specs/loot-tables/spec.md
openspec/specs/manifest-system/spec.md
openspec/specs/milestone-timestamps/spec.md
openspec/specs/multi-game-library/spec.md
openspec/specs/multi-manifest-loading/spec.md
openspec/specs/passive-effects/spec.md
openspec/specs/passive-step/spec.md
openspec/specs/password-strength/spec.md
openspec/specs/player-persistence/spec.md
openspec/specs/player-state/spec.md
openspec/specs/poc-content/spec.md
openspec/specs/prestige-system/spec.md
openspec/specs/production-docker/spec.md
openspec/specs/pronoun-system/spec.md
openspec/specs/quest-engine/spec.md
openspec/specs/quest-failure-states/spec.md
openspec/specs/quest-stage-condition/spec.md
openspec/specs/refresh-token-store/spec.md
openspec/specs/security-middleware/spec.md
openspec/specs/skill-revoke/spec.md
openspec/specs/skill-system/spec.md
openspec/specs/stat-bounds/spec.md
openspec/specs/stat-mutation-effects/spec.md
openspec/specs/template-functions-extended/spec.md
openspec/specs/testlandia/spec.md
openspec/specs/textual-tui/spec.md
openspec/specs/triggered-adventures/spec.md
openspec/specs/tui-callbacks/spec.md
openspec/specs/unified-cooldown-schema/spec.md
openspec/specs/user-identity/spec.md
openspec/specs/validate-stdin/spec.md
openspec/specs/web-adventure-execution/spec.md
openspec/specs/web-auth/spec.md
openspec/specs/web-crash-recovery-ui/spec.md
openspec/specs/web-game-loop/spec.md
openspec/specs/web-overworld/spec.md
openspec/specs/web-play-go/spec.md
openspec/specs/web-session-locking/spec.md
openspec/specs/web-session-takeover-ui/spec.md
oscilla/__init__.py
oscilla/_version.pyi
oscilla/cli.py
oscilla/cli_content.py
oscilla/py.typed
oscilla/settings.py
oscilla/www.py
oscilla.egg-info/PKG-INFO
oscilla.egg-info/SOURCES.txt
oscilla.egg-info/dependency_links.txt
oscilla.egg-info/entry_points.txt
oscilla.egg-info/requires.txt
oscilla.egg-info/top_level.txt
oscilla/../content/testlandia/character_config.yaml
oscilla/../content/testlandia/game.yaml
oscilla/../content/testlandia/adventures/character-creation.yaml
oscilla/../content/testlandia/adventures/prestige-ceremony.yaml
oscilla/../content/testlandia/adventures/prestige-veteran-quest.yaml
oscilla/../content/testlandia/adventures/testlandia-character-creation.yaml
oscilla/../content/testlandia/adventures/testlandia-stat-formula-showcase.yaml
oscilla/../content/testlandia/adventures/triggered/test-character-intro.yaml
oscilla/../content/testlandia/adventures/triggered/test-custom-trigger-scene.yaml
oscilla/../content/testlandia/adventures/triggered/test-defeat-recovery.yaml
oscilla/../content/testlandia/adventures/triggered/test-level-up-scene.yaml
oscilla/../content/testlandia/adventures/triggered/test-rejoin-scene.yaml
oscilla/../content/testlandia/adventures/triggered/test-threshold-scene.yaml
oscilla/../content/testlandia/adventures/triggered/testlandia-level-up.yaml
oscilla/../content/testlandia/archetypes/test-mage.yaml
oscilla/../content/testlandia/archetypes/test-warrior.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/adventure-mechanics.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/outcome-test/outcome-test.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/outcome-test/adventures/test-custom-outcome.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/passive-test/passive-test.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/passive-test/adventures/test-passive-trap.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/repeat-controls-test.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-cooldown-seconds.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-cooldown.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-milestone-timestamps.yaml
oscilla/../content/testlandia/regions/adventure-mechanics/locations/repeat-controls-test/adventures/test-one-shot.yaml
oscilla/../content/testlandia/regions/api-test/api-test.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-hub/api-hub.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-hub/adventures/api-crash-recovery.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-hub/adventures/api-skill-menu.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-hub/adventures/api-sse-events.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-hub/adventures/text-input-adventure.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-hub/adventures/web-overworld-nav.yaml
oscilla/../content/testlandia/regions/api-test/locations/api-secondary/api-secondary.yaml
oscilla/../content/testlandia/regions/archetypes/archetypes.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/archetype-lab.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-condition-check.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-count-check.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-force-regrant.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-grant-mage.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-grant-warrior.yaml
oscilla/../content/testlandia/regions/archetypes/locations/archetype-lab/adventures/archetype-remove-warrior.yaml
oscilla/../content/testlandia/regions/character/character.yaml
oscilla/../content/testlandia/regions/character/locations/bless/bless.yaml
oscilla/../content/testlandia/regions/character/locations/bless/adventures/bless.yaml
oscilla/../content/testlandia/regions/character/locations/bump-speed/bump-speed.yaml
oscilla/../content/testlandia/regions/character/locations/bump-speed/adventures/bump-speed.yaml
oscilla/../content/testlandia/regions/character/locations/bump-strength/bump-strength.yaml
oscilla/../content/testlandia/regions/character/locations/bump-strength/adventures/bump-strength.yaml
oscilla/../content/testlandia/regions/character/locations/drop-strength/drop-strength.yaml
oscilla/../content/testlandia/regions/character/locations/drop-strength/adventures/drop-strength.yaml
oscilla/../content/testlandia/regions/character/locations/full-heal/full-heal.yaml
oscilla/../content/testlandia/regions/character/locations/full-heal/adventures/full-heal.yaml
oscilla/../content/testlandia/regions/character/locations/full-reset/full-reset.yaml
oscilla/../content/testlandia/regions/character/locations/full-reset/adventures/full-reset.yaml
oscilla/../content/testlandia/regions/character/locations/gain-xp-level-up/gain-xp-level-up.yaml
oscilla/../content/testlandia/regions/character/locations/gain-xp-level-up/adventures/gain-xp-level-up.yaml
oscilla/../content/testlandia/regions/character/locations/gain-xp-small/gain-xp-small.yaml
oscilla/../content/testlandia/regions/character/locations/gain-xp-small/adventures/gain-xp-small.yaml
oscilla/../content/testlandia/regions/character/locations/gold-change-overflow/gold-change-overflow.yaml
oscilla/../content/testlandia/regions/character/locations/gold-change-overflow/adventures/gold-change-overflow.yaml
oscilla/../content/testlandia/regions/character/locations/gold-change-underflow/gold-change-underflow.yaml
oscilla/../content/testlandia/regions/character/locations/gold-change-underflow/adventures/gold-change-underflow.yaml
oscilla/../content/testlandia/regions/character/locations/gold-set-at-max/gold-set-at-max.yaml
oscilla/../content/testlandia/regions/character/locations/gold-set-at-max/adventures/gold-set-at-max.yaml
oscilla/../content/testlandia/regions/character/locations/gold-set-at-min/gold-set-at-min.yaml
oscilla/../content/testlandia/regions/character/locations/gold-set-at-min/adventures/gold-set-at-min.yaml
oscilla/../content/testlandia/regions/character/locations/lose-xp-delevel/lose-xp-delevel.yaml
oscilla/../content/testlandia/regions/character/locations/lose-xp-delevel/adventures/lose-xp-delevel.yaml
oscilla/../content/testlandia/regions/character/locations/partial-heal/partial-heal.yaml
oscilla/../content/testlandia/regions/character/locations/partial-heal/adventures/partial-heal.yaml
oscilla/../content/testlandia/regions/character/locations/set-strength/set-strength.yaml
oscilla/../content/testlandia/regions/character/locations/set-strength/adventures/set-strength.yaml
oscilla/../content/testlandia/regions/character/locations/unbless/unbless.yaml
oscilla/../content/testlandia/regions/character/locations/unbless/adventures/unbless.yaml
oscilla/../content/testlandia/regions/choices/choices.yaml
oscilla/../content/testlandia/regions/choices/locations/binary-choice/binary-choice.yaml
oscilla/../content/testlandia/regions/choices/locations/binary-choice/adventures/binary-choice.yaml
oscilla/../content/testlandia/regions/choices/locations/goto-demo/goto-demo.yaml
oscilla/../content/testlandia/regions/choices/locations/goto-demo/adventures/goto-demo.yaml
oscilla/../content/testlandia/regions/choices/locations/nested-choice/nested-choice.yaml
oscilla/../content/testlandia/regions/choices/locations/nested-choice/adventures/nested-choice.yaml
oscilla/../content/testlandia/regions/choices/locations/stat-check-branch/stat-check-branch.yaml
oscilla/../content/testlandia/regions/choices/locations/stat-check-branch/adventures/stat-check-branch.yaml
oscilla/../content/testlandia/regions/combat/combat.yaml
oscilla/../content/testlandia/regions/combat/enemies/glass-dummy.yaml
oscilla/../content/testlandia/regions/combat/enemies/iron-golem.yaml
oscilla/../content/testlandia/regions/combat/locations/easy-fight/easy-fight.yaml
oscilla/../content/testlandia/regions/combat/locations/easy-fight/adventures/easy-fight.yaml
oscilla/../content/testlandia/regions/combat/locations/flee-test/flee-test.yaml
oscilla/../content/testlandia/regions/combat/locations/flee-test/adventures/flee-test.yaml
oscilla/../content/testlandia/regions/combat/locations/hard-fight/hard-fight.yaml
oscilla/../content/testlandia/regions/combat/locations/hard-fight/adventures/hard-fight.yaml
oscilla/../content/testlandia/regions/conditions/conditions.yaml
oscilla/../content/testlandia/regions/conditions/locations/and-condition/and-condition.yaml
oscilla/../content/testlandia/regions/conditions/locations/and-condition/adventures/and-condition.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/calendar.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-calendar-data.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-date-between.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-month-is.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-moon-phase-composition.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-season-is.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-time-between.yaml
oscilla/../content/testlandia/regions/conditions/locations/calendar/adventures/test-zodiac-is.yaml
oscilla/../content/testlandia/regions/conditions/locations/get-badge/get-badge.yaml
oscilla/../content/testlandia/regions/conditions/locations/get-badge/adventures/get-badge.yaml
oscilla/../content/testlandia/regions/conditions/locations/milestone-locked/milestone-locked.yaml
oscilla/../content/testlandia/regions/conditions/locations/milestone-locked/adventures/milestone-locked.yaml
oscilla/../content/testlandia/regions/conditions/locations/or-condition/or-condition.yaml
oscilla/../content/testlandia/regions/conditions/locations/or-condition/adventures/or-condition.yaml
oscilla/../content/testlandia/regions/conditions/locations/prestige-gated/prestige-gated.yaml
oscilla/../content/testlandia/regions/conditions/locations/stat-gated/stat-gated.yaml
oscilla/../content/testlandia/regions/conditions/locations/stat-gated/adventures/stat-gated.yaml
oscilla/../content/testlandia/regions/ingame-time/ingame-time.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/ingame-time-lab.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-count-the-days.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-new-era-unlocked.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-time-advances.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-time-display.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-turn-back-the-clock.yaml
oscilla/../content/testlandia/regions/ingame-time/locations/ingame-time-lab/adventures/test-wait-for-season.yaml
oscilla/../content/testlandia/regions/items/items.yaml
oscilla/../content/testlandia/regions/items/items/battle-axe.yaml
oscilla/../content/testlandia/regions/items/items/enchanted-breastplate.yaml
oscilla/../content/testlandia/regions/items/items/test-charged-scroll.yaml
oscilla/../content/testlandia/regions/items/items/test-heavy-armor.yaml
oscilla/../content/testlandia/regions/items/items/test-legendary-gem.yaml
oscilla/../content/testlandia/regions/items/items/test-potion.yaml
oscilla/../content/testlandia/regions/items/items/test-shield.yaml
oscilla/../content/testlandia/regions/items/items/test-sword.yaml
oscilla/../content/testlandia/regions/items/items/test-tonic.yaml
oscilla/../content/testlandia/regions/items/items/test-widget.yaml
oscilla/../content/testlandia/regions/items/locations/gain-battle-axe/gain-battle-axe.yaml
oscilla/../content/testlandia/regions/items/locations/gain-battle-axe/adventures/gain-battle-axe.yaml
oscilla/../content/testlandia/regions/items/locations/gain-charged-scroll/gain-charged-scroll.yaml
oscilla/../content/testlandia/regions/items/locations/gain-charged-scroll/adventures/gain-charged-scroll.yaml
oscilla/../content/testlandia/regions/items/locations/gain-enchanted-armor/gain-enchanted-armor.yaml
oscilla/../content/testlandia/regions/items/locations/gain-enchanted-armor/adventures/gain-enchanted-armor.yaml
oscilla/../content/testlandia/regions/items/locations/gain-heavy-armor/gain-heavy-armor.yaml
oscilla/../content/testlandia/regions/items/locations/gain-heavy-armor/adventures/gain-heavy-armor.yaml
oscilla/../content/testlandia/regions/items/locations/gain-item/gain-item.yaml
oscilla/../content/testlandia/regions/items/locations/gain-item/adventures/gain-item.yaml
oscilla/../content/testlandia/regions/items/locations/gain-legendary-gem/gain-legendary-gem.yaml
oscilla/../content/testlandia/regions/items/locations/gain-legendary-gem/adventures/gain-legendary-gem.yaml
oscilla/../content/testlandia/regions/items/locations/gain-potion/gain-potion.yaml
oscilla/../content/testlandia/regions/items/locations/gain-potion/adventures/gain-potion.yaml
oscilla/../content/testlandia/regions/items/locations/gain-shield/gain-shield.yaml
oscilla/../content/testlandia/regions/items/locations/gain-shield/adventures/gain-shield.yaml
oscilla/../content/testlandia/regions/items/locations/gain-sword/gain-sword.yaml
oscilla/../content/testlandia/regions/items/locations/gain-sword/adventures/gain-sword.yaml
oscilla/../content/testlandia/regions/items/locations/gain-tonic/gain-tonic.yaml
oscilla/../content/testlandia/regions/items/locations/gain-tonic/adventures/gain-tonic.yaml
oscilla/../content/testlandia/regions/items/locations/multi-item/multi-item.yaml
oscilla/../content/testlandia/regions/items/locations/multi-item/adventures/multi-item.yaml
oscilla/../content/testlandia/regions/items/locations/use-item-effect/use-item-effect.yaml
oscilla/../content/testlandia/regions/items/locations/use-item-effect/adventures/use-item-effect.yaml
oscilla/../content/testlandia/regions/loot-tables/loot-tables.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-conditional-entry/loot-conditional-entry.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-conditional-entry/adventures/loot-conditional-entry.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-conditional-group/loot-conditional-group.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-conditional-group/adventures/loot-conditional-group.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-method-unique/loot-method-unique.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-method-unique/adventures/loot-method-unique.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-multi-group/loot-multi-group.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-multi-group/adventures/loot-multi-group.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-ref-drop/loot-ref-drop.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-ref-drop/adventures/loot-ref-drop.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-template-amount/loot-template-amount.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-template-amount/adventures/loot-template-amount.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-template-count/loot-template-count.yaml
oscilla/../content/testlandia/regions/loot-tables/locations/loot-template-count/adventures/loot-template-count.yaml
oscilla/../content/testlandia/regions/quests/quests.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/test-quest-hub.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-fail-quest.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-failable-quest-start.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-quest-finish.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-quest-start.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-stage-condition-start.yaml
oscilla/../content/testlandia/regions/quests/locations/test-quest-hub/adventures/test-stage-gate.yaml
oscilla/../content/testlandia/regions/quests/loot-tables/test-loot.yaml
oscilla/../content/testlandia/regions/quests/quests/test-failable-quest.yaml
oscilla/../content/testlandia/regions/quests/quests/test-quest.yaml
oscilla/../content/testlandia/regions/quests/quests/test-stage-condition-quest.yaml
oscilla/../content/testlandia/regions/skills/skills.yaml
oscilla/../content/testlandia/regions/skills/buffs/rage-buff.yaml
oscilla/../content/testlandia/regions/skills/buffs/regen-buff.yaml
oscilla/../content/testlandia/regions/skills/buffs/shield-buff.yaml
oscilla/../content/testlandia/regions/skills/locations/buff-combat-test/buff-combat-test.yaml
oscilla/../content/testlandia/regions/skills/locations/buff-combat-test/adventures/buff-combat-test.yaml
oscilla/../content/testlandia/regions/skills/locations/overworld-skill-test/overworld-skill-test.yaml
oscilla/../content/testlandia/regions/skills/locations/overworld-skill-test/adventures/overworld-skill-test.yaml
oscilla/../content/testlandia/regions/skills/locations/skill-grant-test/skill-grant-test.yaml
oscilla/../content/testlandia/regions/skills/locations/skill-grant-test/adventures/skill-grant-test.yaml
oscilla/../content/testlandia/regions/skills/skills/arcane-mend.yaml
oscilla/../content/testlandia/regions/skills/skills/dispel-curse.yaml
oscilla/../content/testlandia/regions/skills/skills/focused-training.yaml
oscilla/../content/testlandia/regions/skills/skills/iron-skin.yaml
oscilla/../content/testlandia/regions/skills/skills/regen-aura.yaml
oscilla/../content/testlandia/regions/skills/skills/test-dispel.yaml
oscilla/../content/testlandia/regions/skills/skills/test-rage-skill.yaml
oscilla/../content/testlandia/regions/skills/skills/test-regen-skill.yaml
oscilla/../content/testlandia/regions/skills/skills/test-shield-skill.yaml
oscilla/../content/testlandia/regions/skills/skills/war-rage.yaml
oscilla/../content/testlandia/regions/template-system/template-system.yaml
oscilla/../content/testlandia/regions/template-system/locations/conditional-narrative/conditional-narrative.yaml
oscilla/../content/testlandia/regions/template-system/locations/conditional-narrative/adventures/fame-check.yaml
oscilla/../content/testlandia/regions/template-system/locations/narrative-test/narrative-test.yaml
oscilla/../content/testlandia/regions/template-system/locations/narrative-test/adventures/personalized-greeting.yaml
oscilla/../content/testlandia/regions/template-system/locations/pronoun-selection/pronoun-selection.yaml
oscilla/../content/testlandia/regions/template-system/locations/pronoun-selection/adventures/choose-pronouns.yaml
oscilla/../content/testlandia/regions/template-system/locations/variable-rewards/variable-rewards.yaml
oscilla/../content/testlandia/regions/template-system/locations/variable-rewards/adventures/treasure-hunt.yaml
oscilla/../content/testlandia/regions/tooling-lab/tooling-lab.yaml
oscilla/../content/testlandia/regions/tooling-lab/locations/trace-demo/trace-demo.yaml
oscilla/../content/testlandia/regions/tooling-lab/locations/trace-demo/adventures/trace-demo.yaml
oscilla/../content/testlandia/regions/tooling-lab/manifests/multi-item-demo.yaml
oscilla/conf/__init__.py
oscilla/conf/cache.py
oscilla/conf/db.py
oscilla/conf/settings.py
oscilla/dependencies/__init__.py
oscilla/dependencies/auth.py
oscilla/dependencies/games.py
oscilla/engine/__init__.py
oscilla/engine/actions.py
oscilla/engine/calendar_utils.py
oscilla/engine/character.py
oscilla/engine/combat_context.py
oscilla/engine/conditions.py
oscilla/engine/graph.py
oscilla/engine/graph_renderers.py
oscilla/engine/ingame_time.py
oscilla/engine/kinds.py
oscilla/engine/loader.py
oscilla/engine/pipeline.py
oscilla/engine/quest_engine.py
oscilla/engine/registry.py
oscilla/engine/scaffolder.py
oscilla/engine/schema_export.py
oscilla/engine/semantic_validator.py
oscilla/engine/session.py
oscilla/engine/signals.py
oscilla/engine/string_utils.py
oscilla/engine/templates.py
oscilla/engine/tracer.py
oscilla/engine/tui.py
oscilla/engine/web_callbacks.py
oscilla/engine/models/__init__.py
oscilla/engine/models/adventure.py
oscilla/engine/models/archetype.py
oscilla/engine/models/base.py
oscilla/engine/models/buff.py
oscilla/engine/models/character_config.py
oscilla/engine/models/enemy.py
oscilla/engine/models/game.py
oscilla/engine/models/item.py
oscilla/engine/models/location.py
oscilla/engine/models/loot_table.py
oscilla/engine/models/quest.py
oscilla/engine/models/recipe.py
oscilla/engine/models/region.py
oscilla/engine/models/skill.py
oscilla/engine/models/time.py
oscilla/engine/steps/__init__.py
oscilla/engine/steps/choice.py
oscilla/engine/steps/combat.py
oscilla/engine/steps/effects.py
oscilla/engine/steps/narrative.py
oscilla/engine/steps/passive.py
oscilla/engine/steps/stat_check.py
oscilla/middleware/__init__.py
oscilla/middleware/request_logging.py
oscilla/middleware/security_headers.py
oscilla/models/__init__.py
oscilla/models/auth.py
oscilla/models/auth_audit_log.py
oscilla/models/base.py
oscilla/models/character.py
oscilla/models/character_iteration.py
oscilla/models/character_session_output.py
oscilla/models/user.py
oscilla/models/api/__init__.py
oscilla/models/api/characters.py
oscilla/models/api/games.py
oscilla/routers/__init__.py
oscilla/routers/auth.py
oscilla/routers/characters.py
oscilla/routers/games.py
oscilla/routers/health.py
oscilla/routers/overworld.py
oscilla/routers/play.py
oscilla/services/auth.py
oscilla/services/cache.py
oscilla/services/character.py
oscilla/services/crash.py
oscilla/services/db.py
oscilla/services/email.py
oscilla/services/jinja.py
oscilla/services/password_strength.py
oscilla/services/rate_limit.py
oscilla/services/user.py
oscilla/static/.gitkeep
oscilla/templates/.gitkeep
oscilla/templates/email/password_reset.html
oscilla/templates/email/password_reset.txt
oscilla/templates/email/verification.html
oscilla/templates/email/verification.txt
tests/__init__.py
tests/conftest.py
tests/test_cli.py
tests/test_cli_content.py
tests/test_settings.py
tests/test_www.py
tests/conf/__init__.py
tests/conf/test_db_settings.py
tests/dependencies/__init__.py
tests/dependencies/test_auth.py
tests/engine/__init__.py
tests/engine/conftest.py
tests/engine/test_actions_screen.py
tests/engine/test_adventure_outcomes.py
tests/engine/test_adventure_repeat.py
tests/engine/test_adventure_ticks.py
tests/engine/test_calendar_conditions.py
tests/engine/test_calendar_utils.py
tests/engine/test_character.py
tests/engine/test_character_config.py
tests/engine/test_character_creation_defaults.py
tests/engine/test_character_persistence.py
tests/engine/test_character_state.py
tests/engine/test_combat_skills.py
tests/engine/test_conditions.py
tests/engine/test_conditions_ingame_time.py
tests/engine/test_derived_stat_validation.py
tests/engine/test_derived_stats.py
tests/engine/test_effects_quest.py
tests/engine/test_game_session.py
tests/engine/test_graph.py
tests/engine/test_graph_renderers.py
tests/engine/test_ingame_time.py
tests/engine/test_ingame_time_integration.py
tests/engine/test_item_enhancements.py
tests/engine/test_load_games.py
tests/engine/test_loader.py
tests/engine/test_loader_condition_shorthand.py
tests/engine/test_loot_ref.py
tests/engine/test_passive_step.py
tests/engine/test_pipeline.py
tests/engine/test_pipeline_persist.py
tests/engine/test_prestige_count_rename.py
tests/engine/test_prestige_effect.py
tests/engine/test_pronoun_system.py
tests/engine/test_quest_engine.py
tests/engine/test_quest_failure.py
tests/engine/test_quest_stage_condition.py
tests/engine/test_registry.py
tests/engine/test_scaffolder.py
tests/engine/test_schema_export.py
tests/engine/test_semantic_validator.py
tests/engine/test_set_name_effect.py
tests/engine/test_signals.py
tests/engine/test_skill_cooldown.py
tests/engine/test_skill_integration.py
tests/engine/test_skill_unit.py
tests/engine/test_stat_effects.py
tests/engine/test_stat_threshold_multicross.py
tests/engine/test_template_functions.py
tests/engine/test_template_integration.py
tests/engine/test_templates.py
tests/engine/test_tracer.py
tests/engine/test_trigger_integration.py
tests/engine/test_trigger_loader_validation.py
tests/engine/test_triggers.py
tests/engine/test_web_callbacks.py
tests/engine/models/__init__.py
tests/engine/models/test_archetype.py
tests/engine/models/test_cooldown.py
tests/engine/steps/__init__.py
tests/engine/steps/test_archetype_effects.py
tests/engine/steps/test_choice.py
tests/engine/steps/test_combat.py
tests/engine/steps/test_effects.py
tests/engine/steps/test_stat_check.py
tests/fixtures/content/broken-refs/test-character-config.yaml
tests/fixtures/content/broken-refs/test-game.yaml
tests/fixtures/content/broken-refs/test-location-broken.yaml
tests/fixtures/content/broken-refs/test-region-root.yaml
tests/fixtures/content/buff-blocking/test-buff-high.yaml
tests/fixtures/content/buff-blocking/test-buff-low.yaml
tests/fixtures/content/combat-pipeline/test-character-config.yaml
tests/fixtures/content/combat-pipeline/test-combat.yaml
tests/fixtures/content/combat-pipeline/test-enemy.yaml
tests/fixtures/content/combat-pipeline/test-game.yaml
tests/fixtures/content/combat-pipeline/test-location.yaml
tests/fixtures/content/combat-pipeline/test-region-root.yaml
tests/fixtures/content/condition-gates/test-all-gate.yaml
tests/fixtures/content/condition-gates/test-any-gate.yaml
tests/fixtures/content/condition-gates/test-character-config.yaml
tests/fixtures/content/condition-gates/test-game.yaml
tests/fixtures/content/condition-gates/test-item-gate.yaml
tests/fixtures/content/condition-gates/test-item.yaml
tests/fixtures/content/condition-gates/test-level-gate.yaml
tests/fixtures/content/condition-gates/test-location.yaml
tests/fixtures/content/condition-gates/test-milestone-gate.yaml
tests/fixtures/content/condition-gates/test-region-root.yaml
tests/fixtures/content/condition-gates/test-stat-gate.yaml
tests/fixtures/content/condition-gates/test-ungated.yaml
tests/fixtures/content/derived-stats/test-character-config.yaml
tests/fixtures/content/derived-stats/test-derived-adventure.yaml
tests/fixtures/content/derived-stats/test-game.yaml
tests/fixtures/content/derived-stats/test-location.yaml
tests/fixtures/content/derived-stats/test-region-root.yaml
tests/fixtures/content/ingame-time/test-character-config.yaml
tests/fixtures/content/ingame-time/test-game.yaml
tests/fixtures/content/ingame-time/test-location.yaml
tests/fixtures/content/ingame-time/test-narrative.yaml
tests/fixtures/content/ingame-time/test-region-root.yaml
tests/fixtures/content/item-enhancements/test-adventure.yaml
tests/fixtures/content/item-enhancements/test-character-config.yaml
tests/fixtures/content/item-enhancements/test-charged-item.yaml
tests/fixtures/content/item-enhancements/test-game.yaml
tests/fixtures/content/item-enhancements/test-item.yaml
tests/fixtures/content/item-enhancements/test-location.yaml
tests/fixtures/content/item-enhancements/test-passive-skill.yaml
tests/fixtures/content/item-enhancements/test-quest-item.yaml
tests/fixtures/content/item-enhancements/test-rare-item.yaml
tests/fixtures/content/item-enhancements/test-region-root.yaml
tests/fixtures/content/item-enhancements/test-requires-item.yaml
tests/fixtures/content/item-enhancements/test-undeclared-label-item.yaml
tests/fixtures/content/loot-tables/test-bonus-item.yaml
tests/fixtures/content/loot-tables/test-character-config.yaml
tests/fixtures/content/loot-tables/test-combat-loot.yaml
tests/fixtures/content/loot-tables/test-game.yaml
tests/fixtures/content/loot-tables/test-inline-loot.yaml
tests/fixtures/content/loot-tables/test-item.yaml
tests/fixtures/content/loot-tables/test-location.yaml
tests/fixtures/content/loot-tables/test-loot-enemy.yaml
tests/fixtures/content/loot-tables/test-loot-ref.yaml
tests/fixtures/content/loot-tables/test-loot-table.yaml
tests/fixtures/content/loot-tables/test-region-root.yaml
tests/fixtures/content/minimal/test-character-config.yaml
tests/fixtures/content/minimal/test-enemy.yaml
tests/fixtures/content/minimal/test-game.yaml
tests/fixtures/content/minimal/test-item.yaml
tests/fixtures/content/minimal/test-location.yaml
tests/fixtures/content/minimal/test-narrative.yaml
tests/fixtures/content/minimal/test-region-root.yaml
tests/fixtures/content/multi-game-library/extras/README.md
tests/fixtures/content/multi-game-library/test-alpha/game.yaml
tests/fixtures/content/multi-game-library/test-alpha/test-character-config.yaml
tests/fixtures/content/multi-game-library/test-alpha/test-location.yaml
tests/fixtures/content/multi-game-library/test-alpha/test-narrative.yaml
tests/fixtures/content/multi-game-library/test-alpha/test-region-root.yaml
tests/fixtures/content/multi-game-library/test-beta/game.yaml
tests/fixtures/content/multi-game-library/test-beta/test-character-config.yaml
tests/fixtures/content/multi-game-library/test-beta/test-location.yaml
tests/fixtures/content/multi-game-library/test-beta/test-narrative.yaml
tests/fixtures/content/multi-game-library/test-beta/test-region-root.yaml
tests/fixtures/content/persistent-buff/test-character-config.yaml
tests/fixtures/content/persistent-buff/test-encounter-buff.yaml
tests/fixtures/content/persistent-buff/test-enemy.yaml
tests/fixtures/content/persistent-buff/test-game.yaml
tests/fixtures/content/persistent-buff/test-persistent-buff.yaml
tests/fixtures/content/play-api/test-character-config.yaml
tests/fixtures/content/play-api/test-choice.yaml
tests/fixtures/content/play-api/test-game.yaml
tests/fixtures/content/play-api/test-location-choice-only.yaml
tests/fixtures/content/play-api/test-location-secondary.yaml
tests/fixtures/content/play-api/test-location.yaml
tests/fixtures/content/play-api/test-narrative.yaml
tests/fixtures/content/play-api/test-region-root.yaml
tests/fixtures/content/region-chain/test-character-config.yaml
tests/fixtures/content/region-chain/test-game.yaml
tests/fixtures/content/region-chain/test-location-deep.yaml
tests/fixtures/content/region-chain/test-narrative.yaml
tests/fixtures/content/region-chain/test-region-deep.yaml
tests/fixtures/content/region-chain/test-region-mid.yaml
tests/fixtures/content/region-chain/test-region-root.yaml
tests/fixtures/content/skill-combat/test-buff-dot.yaml
tests/fixtures/content/skill-combat/test-buff-rage.yaml
tests/fixtures/content/skill-combat/test-buff-shield.yaml
tests/fixtures/content/skill-combat/test-buff-thorns.yaml
tests/fixtures/content/skill-combat/test-character-config.yaml
tests/fixtures/content/skill-combat/test-combat.yaml
tests/fixtures/content/skill-combat/test-enemy.yaml
tests/fixtures/content/skill-combat/test-game.yaml
tests/fixtures/content/skill-combat/test-location.yaml
tests/fixtures/content/skill-combat/test-region-root.yaml
tests/fixtures/content/skill-combat/test-skill-curse.yaml
tests/fixtures/content/skill-combat/test-skill-fireball.yaml
tests/fixtures/content/skill-combat/test-skill-overworld.yaml
tests/fixtures/content/skill-combat/test-skill-poison.yaml
tests/fixtures/content/skill-combat/test-skill-shield.yaml
tests/fixtures/content/stat-effects/adventure.yaml
tests/fixtures/content/stat-effects/character-config.yaml
tests/fixtures/content/stat-effects/game.yaml
tests/fixtures/content/stat-effects/location.yaml
tests/fixtures/content/stat-effects/region.yaml
tests/fixtures/content/template-system/test-character-config.yaml
tests/fixtures/content/template-system/test-game.yaml
tests/fixtures/content/template-system/test-location.yaml
tests/fixtures/content/template-system/test-region-root.yaml
tests/fixtures/content/template-system/test-template-narrative.yaml
tests/fixtures/content/template-system/test-template-stat-change.yaml
tests/fixtures/content/template-system/test-template-xp-roll.yaml
tests/fixtures/content/trigger_tests/__init__.py
tests/fixtures/content/trigger_tests/test-character-config.yaml
tests/fixtures/content/trigger_tests/test-custom-trigger-adventure.yaml
tests/fixtures/content/trigger_tests/test-defeat-outcome-adventure.yaml
tests/fixtures/content/trigger_tests/test-defeat-recovery-adventure.yaml
tests/fixtures/content/trigger_tests/test-emit-adventure.yaml
tests/fixtures/content/trigger_tests/test-game.yaml
tests/fixtures/content/trigger_tests/test-level-up-adventure.yaml
tests/fixtures/content/trigger_tests/test-location.yaml
tests/fixtures/content/trigger_tests/test-region.yaml
tests/fixtures/content/trigger_tests/test-rejoin-adventure.yaml
tests/fixtures/content/trigger_tests/test-stat-boost-adventure.yaml
tests/fixtures/content/trigger_tests/test-threshold-reached-adventure.yaml
tests/fixtures/content/trigger_tests/test-welcome-adventure.yaml
tests/fixtures/content/trigger_tests/test-xp-grant-adventure.yaml
tests/middleware/__init__.py
tests/middleware/test_cors.py
tests/middleware/test_request_logging.py
tests/middleware/test_security_headers.py
tests/routers/__init__.py
tests/routers/test_auth.py
tests/routers/test_auth_audit.py
tests/routers/test_auth_rate_limit.py
tests/routers/test_characters.py
tests/routers/test_games.py
tests/routers/test_health.py
tests/routers/test_overworld.py
tests/routers/test_play.py
tests/services/__init__.py
tests/services/test_auth.py
tests/services/test_cache.py
tests/services/test_character_service.py
tests/services/test_character_session.py
tests/services/test_crash.py
tests/services/test_db.py
tests/services/test_email.py
tests/services/test_jinja.py
tests/services/test_lockout.py
tests/services/test_password_strength.py
tests/services/test_rate_limit.py
tests/services/test_user_service.py