《時痕》場景配樂對照與事件介面（v16）

目前共有 15 首不同的 CC0 錄音配樂：保留原 6 首，新增 9 首。
每一首都有原作者授權頁、下載網址、SHA-256、完整來源時長、轉碼處理紀錄。
來源與處理見 provenance.json，面向玩家的作者資料見 CREDITS.zh-TW.txt。

實際探索房間：
  tunnel_exit       → tunnel     寒暗隧道；低頻、洞穴回聲與陰森環境
  clockrain_town    → hearth     鐘雨燈下；獨奏豎琴，城鎮尋人與歇息
  past_pump         → pump       齒輪沉吟；工業機械環境
  present_canal     → canal      幽水深處；深暗水道環境
  past_mirror       → mirror     鏡庫殘響；弦樂、合唱與神秘感
  present_gatehouse → gate       閘影尋途；漸進合成器、鋼琴探索

頭目交戰：
  present_gatehouse + bossActive:true → gate_boss 守閘者之誓，完整管弦戰鬥循環
  其他房間 + bossActive:true → boss；可用 bossMusicId 指定已登錄的頭目曲
  只走進閘廳不切王戰曲；警戒區／交戰狀態由遊戲世界判定。

劇情提示 narrativeCue：
  opening_market                 → town（既有夜市民俗編制）
  opening_rain                   → hearth
  opening_tunnel                 → tunnel
  opening_resonance、separation  → fracture
  brother_alone、first_letter、letter、reunion、chapter_end、title → aftermath
  memory_reveal                  → mirror
  victory                        → victory（既有完整勝利段）

使用介面：
  audio.setContext({ roomId, narrativeCue:null, bossActive:false })
  audio.setContext({ bossActive:true })
  audio.setContext({ bossActive:false, narrativeCue:'victory' })

setContext 是部分合併。沒有傳入的欄位保留前值；character/weapon 等 HUD 欄位不會
抹去故事房間。要結束劇情曲必須明傳 narrativeCue:null；換房間時遊戲應傳入新的
roomId、正確 bossActive 與 narrativeCue。當音樂關閉時，此介面只記錄情境。

優先順序：手動試聽 > 已交戰頭目 > 劇情提示 > 實際房間 > 原圖鑑章節映射。
劇情與勝利的一次性段落播完會回到當下房間配樂，音樂開關保持開啟。
同一個已播完的提示不會因 HUD 更新重複播放；先清除提示後才能重新觸發。

暫停與背景：
  audio.suspend('hidden'); audio.resume('hidden');
  audio.suspend('pause');  audio.resume('pause');

suspend/resume 保留使用者配樂及音效開關，暫停 Web Audio 時鐘以保存播放位置。
多個原因同時存在時，全部解除才復原。音樂若在暫停時被關閉，resume 不會重新開啟。
切場載入不會先切斷原曲；新曲準備好後作 0.45 秒交叉淡化。同首曲不重啟、不重抓。
音樂最多保留兩首解碼快取，最多兩個音樂音源交疊。音效仍保留 16 個暖快取，最多
12 個同時音效；普通攻擊不會觸發配樂下載。

音質與驗證：
新增完整錄音採 MP3 可變影格 ABR，立體聲目標 96 kbit/s、32 kHz；Deep Humidity
原作本身為單聲道，保留原單聲道，以 64 kbit/s 編碼，不假製立體聲。
非原生循環曲只重疊原曲首尾 1–1.5 秒，不拼接短片段假裝長曲。完整樂句保留。
validation-v16.json 記錄所有檔案實際解碼、長度、雜湊、峰值與情境／暫停回歸檢查。
沒有宣稱人工耳聽驗收，也沒有將模擬測試當成真機音響或手機 FPS 測試。
