For AI agents: the complete documentation index is available at /en/llms.txt, the full documentation bundle is available at /en/llms-full.txt, and this page is available as Markdown at /en/reference/sdk/module-loader/index.md.
  • English
  • module-loader

    Functions

    FunctionDescription
    formatManifestIssue@sfmc-bds/sdk/module-loader — 模块装载器与契约校验核心导出
    validateManifest模块 manifest 校验对外统一总入口。
    validateManifestV2针对 schemaVersion = 2 的版本锁定校验函数。 校验规则与 schemas/sapi-manifest.v2.schema.json 规范定义完全对齐。
    validateManifestV3针对 schemaVersion = 3 的版本锁定校验函数。
    migrateV2toV3v2 → v3 迁移。保守策略: - 所有 v2 必需字段原样复制; - semantic 全部默认空(不强填臆造值),依赖用户在下一轮手动补全; - 输入缺失字段(requires/permissions 缺失)默认空数组——沙箱里跑测的临时模块常常 只写 id/name,运行时兼容;catalog 投影路径仍以 schemaVersion 校验为准。 - 允许 readonly 输入。
    mergeSemanticV3合并两份 semantic:以 base 字段为底层,逐字段用 patch 覆盖。 数组字段:去重合并(base ∪ patch),保证顺序 base → patch。 对象字段(events / dbTables / publicApi 单元素):patch 非空时整体替换。 缺失值(undefined / 空数组 / 空对象)视为「不覆盖」。
    bindModuleAuthHooks由 installHostBootstrap 注入 db/config/service 身份钩子(DIP)。
    announceLoaded控制台打印当前已启动模块列表。

    Classes

    ClassDescription
    ConfigManagerBP 启动时一次性拉取并缓存的平台配置(无热重载)。
    ModuleRegistry模块注册表:冷启动生命周期与 shutdown cleanup。

    Interfaces

    InterfaceDescription
    DataAdapterdb-server IO 抽象。ConfigManager 通过此接口拉取配置。

    Type Aliases

    Type AliasDescription
    ManifestExpectedLabel-
    ManifestV2模块 manifest schema — v2 + v3 语义字段。
    ServiceEntryservices.provides / services.requires 单条。
    ServiceIOservice io 的最小骨架:JSON Schema 风格的轻描述。
    ManifestV3Events公共事件契约:emits / listens 的路径名。
    ManifestV3DbTable单条 DB 表声明。
    ManifestV3PublicApi模块对外 API 单条声明。
    ManifestV3Semanticv3 语义字段——沙箱读模块「在做什么」的依据。 全部可选;缺失表示 v2 模块(自动从 v2 迁移默认填充)。
    ManifestV3v3 manifest = v2 + 可选 semantic。 关键兼容点: - schemaVersion 在 v3 时必须为 3; - 其余 v2 字段全部沿用 v2 校验; - semantic 全部可选:不写也能 boot。
    AnyManifest任意 v2 / v3 manifest。
    ValidationResult统一校验结果泛型联合体。 失败时同时提供人类可读 errors 与机器可读 issues。
    ModuleIdcatalog/manifest 模块 id(如 feature-afk)。
    BdsSystemBDS SAPI host 抽象(由 install.ts 在 BDS 进程里注入)。 模块 loader 只调用 stub 接口,不直接 import @minecraft/server—— 让模块 entry 在非 BDS 环境里也能 import module-loader。
    ModuleServices模块作用域运行时客户端(由 installHostBootstrap 在 apply 时装配)。 生命周期钩子应闭包捕获此处的 db/config/service,避免使用进程级单例串身份。
    ModuleAuthHooks模块身份注入钩子(db/config/service client)。 由 module-loader/install 绑定真实实现;测试环境可 noop 或不绑。 apply 可返回 ModuleServices,供 lifecycle 闭包捕获(方案 A)。
    ModuleLifecycle模块生命周期钩子(各阶段可选)。services 为作用域客户端。命令须在模块顶层声明。
    ModuleDescriptor模块注册描述符(由 ModuleRegistry.register 提交)。

    Variables

    References

    ManifestIssue

    Renames and re-exports ShapeIssue


    ManifestIssueKind

    Renames and re-exports ShapeIssueKind