Files

35 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# module-story 剧情领域模块说明
日期:`2026-04-29`
## 1. package 职责
`module-story` 是 RPG story session 的纯领域模块,当前负责:
1. `StorySessionSnapshot``StoryEventSnapshot` 等故事会话与事件快照。
2. `begin / continue / state query` 相关输入命令的字段归一化与基础校验。
3. 剧情会话开局、续写事件追加、版本推进和只读记录投影。
4. RPG gameplay 跨域结算计划:战斗胜利、任务交付和宝箱奖励先生成纯领域计划,再由 adapter 事务执行。
5.`spacetime-module``spacetime-client``api-server` 提供可复用的纯 Rust 规则。
## 2. 当前阶段说明
当前模块已经完成 DDD 薄层物理拆分,不再是目录占位:
1. `src/domain.rs`:会话领域快照、状态和值对象。
2. `src/commands.rs`story session scoped 输入命令与校验。
3. `src/events.rs`:剧情事件类型、事件快照和事件 ID 生成。
4. `src/application.rs`:快照构造、续写应用服务、读模型记录映射和 RPG gameplay 结算计划。
5. `src/errors.rs`:剧情字段错误与中文错误文案。
6. `src/lib.rs`:只保留模块公开导出,保持 `module_story::*` 对外 API 稳定。
当前 `WP-RPG Gameplay 域` 已完成领域侧收口:战斗胜利、任务交付和宝箱奖励的背包、成长、章节账本组合规则不再由 `spacetime-module` 临时拼装。完整 runtime story 动作入口、前端写侧迁移和旧 contract 删除仍归 `WP-RS / WP-FE / WP-DEL`
## 3. 边界约束
1. `module-story` 不调用 LLM、OSS、HTTP、SpacetimeDB client 或旧 Node 服务。
2. `module-story` 不恢复旧 `/api/runtime/story/*` 兼容路由HTTP 主链固定走 G1 冻结的 `/api/story/*` session scoped route。
3. SpacetimeDB 表、reducer、procedure 和 row mapper 只在 `spacetime-module` adapter 中落地。
4. `api-server` 只负责 BFF、鉴权、SSE、DTO 映射和平台能力编排,不复制本模块的领域规则。
5. 前端只消费后端投影和新 contract不在 UI 或 hooks 中重建 story session 真相。