# M4:story action 与 gameplay reducer 任务清单 ## 1. SpacetimeDB gameplay 表 - [ ] 设计 `story_session` - [ ] 设计 `story_event` - [ ] 设计 `npc_state` - [ ] 设计 `quest_record` - [ ] 设计 `inventory_slot` - [ ] 设计 `treasure_record` - [ ] 设计 `battle_state` - [ ] 设计 `player_progression` - [ ] 设计 `chapter_progression` ## 2. 核心 reducer - [ ] 设计 `resolve_story_action` - [ ] 设计 `continue_story` - [ ] 设计 `begin_story_session` - [ ] 设计 `sync_runtime_snapshot_projection` - [ ] 设计 `apply_quest_signal` - [ ] 设计 `apply_inventory_mutation` - [ ] 设计 `resolve_npc_interaction` - [ ] 设计 `resolve_treasure_interaction` - [ ] 设计 `resolve_combat_action` - [ ] 设计 `update_progression_state` ## 3. 迁移模块规则 - [ ] 迁移 `story` - [ ] 迁移 `combat` - [ ] 迁移 `inventory` - [ ] 迁移 `npc` - [ ] 迁移 `progression` - [ ] 迁移 `quest` - [ ] 迁移 `runtime-item` - [ ] 迁移 `runtime` 的状态归一化规则 ## 4. 兼容接口 - [ ] 兼容 `POST /api/runtime/story/actions/resolve` - [ ] 兼容 `GET /api/runtime/story/state/:sessionId` - [ ] 兼容 `POST /api/runtime/story/initial` - [ ] 兼容 `POST /api/runtime/story/continue` ## 5. ViewModel 兼容 - [ ] 兼容当前 `RuntimeStoryActionResponse` - [ ] 兼容当前 `RuntimeStoryOptionView` - [ ] 兼容当前 `interaction` 元数据 - [ ] 兼容当前 battle / toast / patch 响应结构 - [ ] 兼容当前 `currentStory` 回填逻辑 ## 6. 阶段验收 - [ ] 当前前端 story 选项点击后可走新后端闭环 - [ ] NPC / quest / treasure / combat 主循环行为不回退 - [ ] `story state` 恢复链可用 - [ ] 旧 Node 版 story route 回归用例完成平移