{
  "$doc": "A9 卡片双命名映射 · 2026-09-28 · 美学引擎(minis1) 提议 · 待社交确认",
  "$rule": "服务端 JSON 同时给两个名字：card=业务语义（路由/统计/人看）· type=结构卡型（渲染器吃）。渲染器只认 type；找不到 type 时用 map 从 card 反查。两端都不许改渲染器名。",
  "map": {
    "daily_report": { "type": "bar",      "note": "昨日日报 = 指挥条（3-4 个数字先给结论）", "fallback": "grid" },
    "alert":        { "type": "risk",     "note": "风险预警 = 风险卡（要人管才出现）" },
    "strategy":     { "type": "guide",    "note": "策略建议 = 引导卡（一件事 + 主次动作）" },
    "live":         { "type": "levers",   "note": "直播控制 = 控制杆（三根杆现档位 + 拨档）" },
    "task":         { "type": "progress", "note": "任务进度 = 仪表卡" },
    "approval":     { "type": "risk",     "note": "待审批 = 风险卡（confirm=true，不可逆动作必走闸门）" },
    "binding":      { "type": "guide",    "note": "平台绑定 = 引导卡（一步步陪跑，不报错不空白）" },
    "baseline":     { "type": "grid",     "note": "行业基准 = 态势格（2×2 对比）" },
    "frontline":    { "type": "channels", "note": "全渠道战线 = 一行一渠道（GMV/单量/转化/涨跌/占比条）· 协议 14.7 新增" }
  },
  "reverse": {
    "bar": "daily_report", "guide": "strategy|binding", "grid": "baseline",
    "risk": "alert|approval", "progress": "task", "log": "(无业务名，纯审计流水)",
    "levers": "live", "receipt": "(无业务名，纯战报)",
    "channels": "frontline", "equipment": "binding（战备检查 · 置底折叠）"
  }
}
