Files
Genarrative/server-rs/crates/module-quest/README.md
2026-04-22 12:34:49 +08:00

56 lines
2.5 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-quest 任务运行时模块说明
日期:`2026-04-21`
## 1. package 职责
`module-quest` 是任务运行时模块 package当前已经承接下面 4 类纯领域能力:
1. `QuestRecord / QuestStep / QuestReward / QuestProgressSignal` 等任务状态模型
2. 任务 step 归一化、active step 选择、状态收口规则
3. `accept -> apply signal -> acknowledge completion -> turn in` 的最小任务状态流转 helper
4.`crates/spacetime-module` 聚合表与 reducer 复用的纯 Rust 规则函数
## 2. 当前已落地的真实范围
当前 crate 已经提供:
1. `QuestRecordInput / QuestRecordSnapshot`
2. `QuestProgressSignal / QuestSignalApplyInput / QuestSignalApplyOutcome`
3. `QuestCompletionAckInput / QuestTurnInInput`
4. `build_quest_record_snapshot`
5. `apply_quest_signal`
6. `acknowledge_quest_completion`
7. `turn_in_quest_record`
8. `generate_quest_log_id`
补充说明:
1. 当前 crate 仍保持“纯领域规则”定位,不直接依赖 Axum、SpacetimeDB reducer context 或外部平台。
2. `spacetime-types` feature 只用于在 `spacetime-module` 中复用这些类型做表字段和 reducer 输入。
## 3. 当前未落地的范围
本 crate 当前明确还没有承接:
1. AI 任务意图生成
2. 奖励中的货币、好感、情报统一发放
3. runtime snapshot 投影
4. story action 跨域编排
5. Axum 兼容接口 DTO
补充说明:
1. 当前 `QuestRewardItem` 的字段已经升级到可无损映射 `inventory_slot` 的粒度,包含 `description / stackable / stack_key / equipment_slot_id`
2. 当前 `turn_in_quest` 已在 `crates/spacetime-module` 中完成经验奖励到 `player_progression / chapter_progression` 的最小联动。
3. 当前 `turn_in_quest` 已在 `crates/spacetime-module` 中完成物品奖励写入 `inventory_slot``module-quest` 本身仍只冻结奖励 contract真实聚合写入继续由 `crates/spacetime-module` 负责。
这些能力后续分别由 `module-ai``module-runtime``module-story``api-server` 衔接,不在这里堆成大而全服务。
## 4. 边界约束
1. `module-quest` 负责任务状态真相与任务规则,生成型任务草案与外部 AI 编排不直接塞进模块内部。
2. 任务状态最终回写到 `crates/spacetime-module` 聚合的状态模型中,前端兼容接口由 `crates/api-server` 暴露。
3. 任务不能再次散落到 story service、runtime service 或前端临时状态里分别维护。
4. 当前真实工程口径以 `docs/technical/M4_RPG_RUNTIME_QUEST_SPACETIMEDB_BASELINE_2026-04-21.md` 为准。