Files
Genarrative/server-rs/crates/module-story/README.md

34 lines
1.8 KiB
Markdown
Raw 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.`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`:快照构造、续写应用服务和读模型记录映射。
5. `src/errors.rs`:剧情字段错误与中文错误文案。
6. `src/lib.rs`:只保留模块公开导出,保持 `module_story::*` 对外 API 稳定。
当前仍未扩到完整运行态动作结算。`inventory action`、NPC interaction、forge、battle、quest 等写侧闭环继续归入 `WP-RS Runtime Story 去兼容层``WP-RPG Gameplay 域` 后续切片。
## 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 真相。