docs(contract): §5 修正贴纸 src 措辞矛盾 + 补 DIY 修正实现注记

- 引用块原写「禁止 wxfile://」与 design-data-contract-v1 约束#1/决策#4
  (R2 允许暂存本地图,R4 派单前持久化回写)矛盾,按冻结决策对齐
- 新增实现补充:stickers[].width/height 语义 = 画布显示像素(DIY 修正,
  非契约变更,不升版本)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-09-12 18:54:12 +08:00
co-authored by Claude
parent 3fc65e50bf
commit 93f7473ad7
+9 -2
View File
@@ -176,14 +176,21 @@
> **designData 结构遵循 `wechat_wc/docs/design-data-contract-v1.md`R2/R4 冻结契约)。**
> 该契约保证 R4 下单后能据此构造 `.wcd` 投递到词云平台。要点:
> 贴纸图 `src` 必须为 COS 持久 URL(禁止 `wxfile://`/`tmp`)、保留 `wordcloud` 分组、
> 保留 `category.mask`;后端该 JSON 白名单须放行 `version/background/wordcloud/rotation/zIndex`。
> 贴纸图 `src` 在**派单前**必须为 COS 持久 URLR2 保存/更新清单时允许暂存
> `wxfile://`/`tmp` 本地路径,由 R4 在下单/派单前上传 COS 并回写
> design-data-contract-v1.md 约束#1、决策#42026-08-12 冻结);
> 保留 `wordcloud` 分组、保留 `category.mask`;后端该 JSON 白名单须放行
> `version/background/wordcloud/rotation/zIndex`。
>`items` 为服务端 JSON,需做结构白名单与大小校验(单条 ≤ 1MB)。
>
> **实现补充(R2,非契约变更)**:服务端 JSON body 传输上限为 **2MB**`main.ts`Nest 默认 100KB
> 会使 1MB 业务限制不可达)。三层边界:≤1MB 正常受理;1MB~2MB 由 design-list service 返回
> 400「单条设计数据超过 1MB 上限」;>2MB 返回 413「请求体过大」。文件上传(R4 multipart
> 不走此限制,沿用各模块独立校验(如底图 ≤10MB)。
>
> **实现补充(DIY 修正,非契约变更)**`stickers[].width/height` 语义为「画布显示像素」
> (画布坐标空间 = `category.mask` 尺寸),渲染、碰撞检测、WCD 打包三方按同一语义消费;
> 历史数据中的原始像素值由读取端按 mask 归一化兼容。详见 design-data-contract-v1.md 注记。
### PATCH /api/design-list/:id