# 卡片双命名（business card type ↔ structural renderer type）· 2026-09-28
> 背景：投递清单要 8 个**业务卡型**（daily_report / alert / strategy / live / task / approval / binding / baseline）；
> 我这边已有 8 个**结构卡型**渲染器（bar / guide / grid / risk / progress / log / levers / receipt）。
> 两边都对，不用改渲染器 —— 用**双名并存**收口。

---

## 一、协议增补（加 1 个字段，不动老字段）

```json
{"type":"risk","card":"alert","level":"red","tag":"高危","title":"3 单要拦",
 "reason":"收货地址异常 + 首次下单 + 超 500 元","cost":"预计损失 ¥412",
 "primary":{"id":"block_high","label":"拦下这 3 单","style":"danger","confirm":true},
 "secondary":{"id":"clear_high","label":"放行但加防","style":"ghost"}}
```

| 字段 | 谁用 | 谁写 |
|---|---|---|
| `type` | **渲染器**（两端只认它） | 服务端 |
| `card` | **路由 / 统计 / 人看**（业务语义） | 服务端 |

**解析顺序**：`type` 命中结构卡型 → 直接渲染；`type` 缺失或写成业务名 → 查 `alias_map.json` 反查；都查不到 → 退化为文本（不崩、不白屏）。

---

## 二、映射表（1:1 或 1:2，无歧义）

| 业务卡型（清单要的） | 结构卡型（渲染器） | 说明 |
|---|---|---|
| `daily_report` 昨日日报 | **bar**（备 grid） | 3–4 个数字先给结论 |
| `alert` 风险预警 | **risk** | 要人管才出现 |
| `strategy` 策略建议 | **guide** | 一件事 + 主次动作 |
| `live` 直播控制 | **levers** | 三根杆：现档位 + 拨档 |
| `task` 任务进度 | **progress** | 仪表卡 |
| `approval` 待审批 | **risk** | `confirm:true`，不可逆必过闸门 |
| `binding` 平台绑定 | **guide** | 陪跑，不报错、不空白（D2 判据） |
| `baseline` 行业基准 | **grid** | 2×2 对比 |
| （纯审计流水） | `log` | 无业务名 —— 它是"流水卡"，不对外做经营卡片 |
| （纯战报） | `receipt` | 无业务名 —— 每次交付后钉结果 |

---

## 三、解析器最小改动（两端各 3 行，可选）

```kotlin
// Android · A9CardModels.kt  parseCard() 开头插 3 行
val t0 = o.optString("type")
val t  = if (t0 in A9Alias.map) A9Alias.map[t0]!! else t0   // 业务名 → 结构名
when (t) { ... }                                            // 其余不动
```
```swift
// iOS · A9UICardModels.swift 同理
let t0 = obj["type"] as? String ?? ""
let t = A9Alias.map[t0] ?? t0
```

> **不改也能跑**：服务端按第一节同时给 `type`(结构) + `card`(业务) 即可，客户端零改动。
> 这 3 行只是"容错"，防服务端偶尔只给业务名。

---

## 四、8 个业务卡型的标准载荷

见 `cards/business_cards.json`（8 条，可直接 POST 给客户端渲染，已逐张与渲染器字段对齐）。
公网取件：`http://124.220.191.216/s/cards/business_cards.json`

---

## 五、诚实说明

- 这张表是**我侧提议**，等社交确认即生效；未确认前按"服务端双字段"口径走，两端都不会坏。
- 渲染器 **一个没改**（8 个结构卡型就是那 8 个）；新增的只有映射表和 8 条业务载荷样例。

---

## 三、v1.1 增补（2026-09-29 · 指挥台布局纠正）

| 业务卡型 | 结构卡型 | 说明 |
|---|---|---|
| `frontline` 全渠道战线 | **channels**（新） | 一行一渠道：GMV / 单量 / 转化 / 涨跌 / 占比条 |
| `binding` 战备检查 | **equipment**（新，替代 guide 用法） | 链路与装备清单，**置底折叠、虚线卡** |

**布局铁律（同一份口径）**：装备类卡（接打印机 / 连平台 / 补资料）**不得进首屏第一视线**；首屏顺序恒为 ①今日战果 ②全渠道战线 ③此刻该干这一件 …… ⑧战备检查。详见 `docs/A9全渠道自动运营_卡片协议_14章.md` 14.6 / 14.7。
