diff --git a/docs/presentation/AUDIO_MUSIC_AND_VOICE_CATALOG.md b/docs/presentation/AUDIO_MUSIC_AND_VOICE_CATALOG.md index 4ea556d9..d985ee3a 100644 --- a/docs/presentation/AUDIO_MUSIC_AND_VOICE_CATALOG.md +++ b/docs/presentation/AUDIO_MUSIC_AND_VOICE_CATALOG.md @@ -1,6 +1,6 @@ # Aetherbound Guild: Audio, Music, And Voice Catalog -> Revision: `audio-direction-v2-r3` +> Revision: `audio-direction-v2-r4` > > Authority: music, ambience, SFX, voice, mix, caption, accessibility, audio > lifecycle, production count, and audio acceptance rules. @@ -84,7 +84,7 @@ remain in the cited authority. | Voice locales | `docs/product/GAME_PRODUCT_CONTRACT.md`, Commercial And Platform Boundary and Localization Rules; `docs/presentation/SCREEN_AND_STATE_MAP.md`, accessibility matrix: English (`en`) and Simplified Chinese (`zh_CN`) | ship the 32 semantic intents in both launch locales; language-neutral efforts remain shared | | Background simulation | `docs/product/SAVE_AND_FAILURE_CONTRACT.md`, Battle Interruption And Deterministic Resume; `docs/presentation/SCREEN_AND_STATE_MAP.md`, Interruption And Save | complete the current priority batch, snapshot, advance no obscured time, return battle through `BAT-006`, and reconcile non-battle receipts | | Headphone unplug | `docs/presentation/UI_AND_VISUAL_SYSTEM.md`, Audio-Independent And Visual Accessibility; `docs/presentation/SCREEN_AND_STATE_MAP.md` row `SET-004` | treat as output loss: stop private output before speaker reopen, raise one nonblocking notice, keep captions/geometry, pause audio tests, and continue the current screen without automatic speaker playback | -| Screen and action IDs | `docs/presentation/SCREEN_AND_STATE_MAP.md`, Input Profiles and Complete Screen Inventory: `NAV`, `LIST`, `SELECT`, `ORDER`, `BATTLE`, `MODAL`, `SETTINGS`; `SYS-001..008`, `HUB-001..002`, `SHP-001..003`, `REC-001..003`, `EQP-001..002`, `ART-001`, `PTY-001..002`, `RSK-001..002`, `BAT-001..006`, `OUT-001..005`, `PRO-001..003`, `PST-001..003`, `SET-001..009`; `docs/product/GAME_PRODUCT_CONTRACT.md`, Input Semantics: focus, inspect, compare, buy, sell, lock, refresh, equip, reorder, confirm, cancel, start, pause, speed, retreat, open event log | bind shared events to all 49 final screens, seven input profiles, and semantic actions | +| Screen and action IDs | `docs/presentation/SCREEN_AND_STATE_MAP.md`, Input Profiles and Complete Screen Inventory: `NAV`, `LIST`, `SELECT`, `ORDER`, `BATTLE`, `MODAL`, `SETTINGS`; `SYS-001..008`, `HUB-001..002`, `SHP-001..003`, `REC-001..003`, `EQP-001..002`, `ART-001`, `PTY-001..002`, `RSK-001..002`, `BAT-001..006`, `OUT-001..006`, `PRO-001..003`, `PST-001..003`, `SET-001..009`; `docs/product/GAME_PRODUCT_CONTRACT.md`, Input Semantics: focus, inspect, compare, buy, sell, lock, refresh, equip, reorder, confirm, cancel, start, pause, speed, retreat, open event log | bind shared events to all 50 final screens, seven input profiles, and semantic actions | A missing cited ID, event, receipt, or policy is an integration error in the audio manifest. It cannot silently fall back to a different semantic event. @@ -680,6 +680,26 @@ SFX-RUN-027 clock_rollback_detected SFX-RUN-028 offline_state_changed ``` +#### `OUT-006` Run Abandonment Transaction + +Run abandonment is a voluntary run-close transaction, not Recruit dismissal, +casualty, forced run end, or a generic Back action. It reuses existing shared +events and adds no SFX identity or rendered master. + +| `OUT-006` state | Existing audio event | Required caption and receipt behavior | +|---|---|---| +| review armed | `SFX-UI-017 confirm_arm`; `SFX-UI-020 destructive_hold_tick` only while the configured destructive gesture advances | Caption names the run, cleared run-only state, retained history/progression, destination, and irreversibility; default focus remains Cancel. No close cue plays. | +| cancel | `SFX-UI-019 confirm_cancel` | `Abandonment cancelled; run unchanged`; return to the invoking Guild desk or Result state. | +| rejected or illegal | `SFX-UI-016 action_blocked`; use `SFX-UI-023 error_recoverable` only for a recoverable operation failure | Caption gives the authoritative rejection reason and safe return; no resource, Recruit, or run state is presented as changed. | +| stale review | `SFX-UI-022 stale_state` | `Abandonment consequences changed; review again`; replace the old consequence list and require a new explicit confirm. | +| committed receipt | `SFX-RUN-011 run_end_voluntary` after the sourced closure receipt commits | Caption states run closed, cleared run-only state, retained history/progression, destination, and operation ID. The event log retains the receipt. | +| duplicate operation | no new transient; transaction-ID replay guard returns the original receipt | Re-present the original committed caption and receipt; never replay the close cue or partially close the run. | + +`SFX-SHP-020 dismiss_commit`, `SFX-RES-005 permanent_loss_confirmed`, and +`SFX-RUN-012 run_end_forced` never fire for `OUT-006`. Suspend before commit +changes nothing; suspend after commit verifies the same closure receipt before +any audio resumes. + `save_commit` follows durable commit acknowledgment, never the start of a write. Failed, deferred, recovered, migrated, conflicted, rolled back, and offline states have distinct captions and cannot reuse the success receipt. @@ -887,6 +907,7 @@ loss, or save-success cue. | casualty and replacement | consequence handoff/result ambience | casualty and replacement events | casualty caption is mandatory; optional announcer once | committed permanent loss differs from temporary danger and replacement arrival | | reward and progression | success bed or run suite | reward, ownership, and progression events | ownership caption only after commit | reveal, focus, compare, accept, blocked, and owned states remain distinct | | recovery after failure | loss bed/safe recovery ambience | recovery and run-end events | neutral system language; no blame performance | player hears consequence, legal recovery options, and return handoff without a celebratory cue | +| voluntary run abandonment | current safe-state bed continues through review; run-close handoff starts only after receipt | `OUT-006` matrix: confirm arm/hold, cancel, rejected/stale, and `SFX-RUN-011` committed receipt | every state has a localized caption; duplicate operation reuses the original receipt without another cue | abandonment remains distinct from Recruit dismissal, casualty, forced run end, and ordinary Back | | save and restore | current music continues unless blocked | save, migration, conflict, rollback, and offline events | critical states captioned; system voice optional | success, failure, defer, conflict, rollback, corruption, duplicate claim, and offline state cannot be confused | | eight-region progression | matching route/battle/boss suite and one of 64 regional configurations | regional shared family and bound content packages | localized region name resolves from the `RG-01..RG-08` Region Matrix row | all eight soundmarks are identifiable in mono and progress states change a persistent layer |