# 生态定位与差异

MoonBTKit 是面向行为树资产管理、确定性回归和质量分析的 MoonBit 工具包。它不仅执行行为树，还让行为逻辑能够文本化、版本化、批量验证并导出审计结果。项目的核心对象是可序列化、可比较、可在 CI 中复现的决策资产，而不是宿主进程中的闭包回调和调度任务。

## 处理链与交付物

| 阶段 | 输入 | MoonBTKit 处理 | 输出 |
| --- | --- | --- | --- |
| 建模 | 行式 DSL 或 MoonBit Builder | 生成显式 `BehaviorTree` 与 `Blackboard` | 可序列化决策模型 |
| 静态质量 | 节点和子节点关系 | 重复 ID、缺失引用、环检测、结构校验、lint | 可解释的问题报告 |
| 确定性执行 | 决策模型、黑板、tick 上限 | 跨帧节点状态和可复现 tick | 最终状态、blackboard、trace digest |
| 版本治理 | 两个 DSL/树版本 | 结构 diff、兼容性分级、规范化、稳定指纹 | breaking 变化、规范资产身份 |
| 回归验证 | fixture、recipe、baseline、输入变量组合 | case runner、coverage、matrix、profile | 分支覆盖、结果矩阵、热点和回归证据 |
| 验收导出 | 单个资产、资产目录与 trace | catalog audit、DOT、Mermaid、Markdown | 可进入 CI 和评审材料的报告 |

## 与现有行为树包的区别

Mooncakes 已有 [`mhh12345678/behavior_tree`](https://github.com/mhh12345678/moonbit-behavior-tree)。该项目公开 README 展示的重点是闭包式节点、事件路由、多树调度、预算调度和运行时安全策略。MoonBTKit 与其没有代码或依赖关系，功能边界如下：

| 能力 | MoonBTKit | `mhh12345678/behavior_tree` |
| --- | --- | --- |
| 主要定位 | 可序列化行为树资产与回归分析工具链 | 行为树运行时与多树调度 |
| 核心用户 | 维护决策资产、测试基线和验收报告的工具开发者 | 在宿主程序中直接组装、执行节点的应用开发者 |
| 建模方式 | 行式 DSL、MoonBit Builder、显式数据模型 | MoonBit Builder、闭包节点 |
| 可交换性 | DSL 解析、序列化和 roundtrip 测试 | 以运行时 API 和宿主对象为主 |
| 确定性证据 | trace digest、timeline、固定 fixture、跨目标测试 | 可重复场景、metrics、trace、benchmark |
| 质量工具 | diff、baseline、catalog、fingerprint、coverage、matrix、profile、lint、audit | telemetry、health、safety、benchmark |
| 图形输出 | Graphviz DOT、Mermaid flowchart、sequence diagram | 公开 README 未将多格式图形导出列为核心能力 |
| 运行边界 | 单树内存执行，不做事件总线和多树调度 | EventBus、EventRouter、Scheduler、BudgetScheduler |

MoonBTKit 适合需要把决策逻辑作为文本资产维护，并在 CI 中验证分支覆盖、输入矩阵和执行热点的项目；需要事件驱动、多 NPC 调度和宿主闭包动作时，可选择偏运行时的实现。两者可以服务于不同层次：MoonBTKit 负责资产和验证，运行时项目负责宿主调度，但 MoonBTKit 本身不依赖后者。

## 独立实现说明

- 核心、DSL、分析、fixture、测试和文档均在本仓库独立完成。
- 项目没有引入第三方 MoonBit 依赖，也没有复制其他行为树仓库的代码、fixture 或文档。
- 行为树的 Sequence、Selector、Decorator、Blackboard 等概念属于游戏 AI 与机器人领域的公开通用技术。
- 对比项目链接仅用于生态去重说明，不构成移植或源码参考关系。
