来源:
CONTRIBUTING.md
doc/MOD_COMPATIBILITY.md
src/mod_manager.cpp
src/worldfactory.cpp
tests/worldfactory_test.cpp
commit d32b9cc880a8
source-and-tests
Mod 兼容¶
Mod 兼容包含标识符、依赖、加载顺序、可选交互、存档数据和公共脚本契约,不只是 “JSON 能解析一次”。
稳定边界¶
- 已发布 type/object ID 应保持稳定,否则提供受支持的 migration/obsoletion 数据。
- 在 Mod 元数据中声明依赖,不依赖文件名字母顺序或另一个 Mod 偶然存在。
- 针对另一已加载 Mod 的条件内容放在
mod_interactions/<other-mod-id>/。交互内容在普通内容之后加载;目录 ID 区分 大小写,verified 实现不支持嵌套的多 Mod 组合。 - EOC talker、变量和 context 属于行为契约。
- Lua manifest 版本、capability、permission 与公开 v5 符号属于 API 契约。
验证¶
先用声明的依赖单独加载 Mod,再测试每个受支持交互组合。创建世界、执行变更内容、 保存、重载并检查第一个 loader error。完整示例 Mod 应由 CI 加载,不能只逐个解析 孤立 JSON 文件。
兼容性结论必须注明 CCB commit、Mod 版本、依赖集合与平台。注册、数据和 Lua 表面 可能分歧,因此上游兼容不自动等于 CCB 兼容。