役次元 Yokonex Hub 开发文档

#版本与兼容

平台有四条各自独立演进的版本线。搞清楚哪条影响你,比记住某个具体版本号有用。


#四条版本线

版本线 谁在用 变更节奏 兼容承诺
网关协议 插件 ↔ 客户端 极慢 只增不改。已有字段永不删除、永不改语义
客户端 API (/v1/) 客户端 ↔ 云端 同一大版本内向后兼容;破坏性变更走 /v2/
开发者 API 开发工具 ↔ 云端 变更提前在文档标注
客户端本体 玩家 自更新,minSupported 以下强制升级

为什么要拆开:客户端要在用户机器上跑很久,装了不更新的用户永远存在。 如果 API 和网站共用一条版本线,网站改版就会打死老客户端。 拆开之后,网站可以随便改,客户端 API 保持稳定。


#网关协议的兼容承诺

这是整个生态的地基,也是最不该动的一层。

承诺

这意味着什么

现有 Gamehub 生态里的插件(截至目前 53 个)不用改一个字节就能配本平台的客户端使用, 反之亦然。独立的是平台和运营,不是协议。

如果哪天真要破坏性变更,会:

  1. 新端点与老端点并存至少 12 个月
  2. 客户端同时支持两套
  3. 老端点返回 Deprecation 响应头

#客户端 API 版本

当前是 /v1/

属于向后兼容、随时可能发生的变更

所以客户端解析响应时必须忽略未知字段,不要用严格模式反序列化。

属于破坏性、会走 /v2/ 的变更


#插件的版本号

manifest.json 里的 version 用宽松语义化版本:主.次.修订, 可带预发布后缀,如 1.0.0-beta.1

平台强制的规则

规则 原因
同一版本号不可重复发布 已发布的包永远不覆盖,否则 SHA-256 校验失去意义
新版本必须严格大于所有历史版本 包括被拒审的版本
同内容(同 SHA-256)不可重复上传 内容没变就不需要新版本
正式版 > 同号预发布版 1.0.0 > 1.0.0-beta.1

建议的语义

eventKey 是破坏性变更 —— 用户在客户端里绑好的映射会失效。 如果只是想改显示名,改 name 不要动 eventKey


#游戏版本兼容

插件应该在 USAGE.md 里写清支持的游戏版本范围。

建议

游戏更新导致插件失效时,发一个新的修订版本,并在 USAGE.md 里更新版本范围。 不要留着旧版本让用户装了发现不能用。



#变更记录

#平台 v0.1.0 · 2026-09

首个版本。