# integration（子模块规范）

## 子模块名称

integration（Home / Widget 接入）

## 目标描述

把 `wrapText()` 模块以一致参数口径接入到两端渲染链路中，并定义 UI 侧对 meta 的处理规则，确保：

- Home 与 Widget 使用同一套配置/词库/版本号（`configVersion`）
- 同场景下输出一致；不同测量能力导致差异时“可解释且可治理”
- SYSTEM_DEFAULT 的语义不被 UI 误用

## 输入/输出定义

### 输入

- Home（APP）侧输入：
  - `text/lang/availableWidth/maxLines/fontSpec/context='APP'`
  - 可选：`constraints/overflowMode/lineMode/configVersion/debug`
- Widget（WIDGET）侧输入：
  - `text/lang/availableWidth(profile)/maxLines/context='WIDGET'`
  - 可选：`constraints/overflowMode/configVersion/debug`

### 输出

- UI 渲染消费：
  - `lines[]`：逐行渲染或插入 `\n`
  - `wrappedText`：用于一次性渲染或日志/缓存
  - `meta`：用于调试、打点、兜底策略选择

## 验收标准（可验证）

- **参数映射一致**：
  - 两端对 `lang/context/availableWidth/maxLines/overflowMode/lineMode` 的默认值与映射一致
  - `configVersion` 必须随结果一起回传到 meta 或打点
- **UI 兜底语义正确**：
  - 当 `meta.fallback_type=SYSTEM_DEFAULT` 时：
    - UI 允许选择“交给系统排版”（例如不插入 `\n` 或忽略 `lines[]`）
    - 但不改变算法层返回值
- **缓存与复用**：
  - Home 可对同文案同参数缓存 `wrappedText/lines/breaks`
  - Widget 可对固定 profile 文案缓存结果（避免频繁计算）
- **回归可对齐**：
  - Golden Cases 在 Home 与 Widget（固定 profile）下可跑通并对齐预期

## 依赖与关联

- **依赖**：全部核心模块（`core-contract`、`breakpoint-candidates`、`search-engine-*`、`scoring-tiebreak`、`overflow-fallback`、`golden-tests`）
- **被依赖**：无（最终落地层）

