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

2.1 KiB
Raw Blame History

module-story 剧情领域模块说明

日期:2026-04-29

1. package 职责

module-story 是 RPG story session 的纯领域模块,当前负责:

  1. StorySessionSnapshotStoryEventSnapshot 等故事会话与事件快照。
  2. begin / continue / state query 相关输入命令的字段归一化与基础校验。
  3. 剧情会话开局、续写事件追加、版本推进和只读记录投影。
  4. RPG gameplay 跨域结算计划:战斗胜利、任务交付和宝箱奖励先生成纯领域计划,再由 adapter 事务执行。
  5. spacetime-modulespacetime-clientapi-server 提供可复用的纯 Rust 规则。

2. 当前阶段说明

当前模块已经完成 DDD 薄层物理拆分,不再是目录占位:

  1. src/domain.rs:会话领域快照、状态和值对象。
  2. src/commands.rsstory 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 真相。