# Domain model and rule semantics

## Facts

`Product` 是待判定成品，包含税则编码、金额单位、原产地状态和生产区域。`MaterialNode` 是 BOM 材料，增加数量、供应商、声明编号和区域。`ProcessStep` 记录工序、发生国、顺序和可选工时。`AgreementVersion` 记录协定、版本、生效日期、成员区域和累积模式。`Evidence` 是声明、发票、生产记录、归类裁定或人工备注的可追溯引用。

金额统一使用整数 `value_units`；百分比使用 0 到 10000 的基点。这样 60.00% 表示 6000，不发生浮点舍入漂移。

## Rules

- CTC/CTH/CTS：分别比较税则编码的 2、4、6 位数字；在例外位开启时，该位不触发改变。
- RVC：按整数基点比较 originating value 与 total value。调用方应根据具体协定选择 build-down 或 build-up 所需的输入口径。
- Complete acquisition：所有相关材料必须有可判定的原产地事实；未知事实输出信息不足。
- Processing：指定区域内的全部必需工序都要出现。
- Minimal processing：出现禁止的简单工序即不满足该规则。
- Accumulation：无累积要求同区域；双边、区域和跨境加工要求生产国与供应商区域均在协定成员中。

## Decision precedence

规则结果按以下优先级汇总：任一规则失败为 `NotQualified`；没有失败但存在缺失事实为 `InsufficientInformation`；所有规则通过才为 `Qualified`。判定同时返回规则级状态、原因、材料证据引用和缺失字段。

## Deliberate boundaries

当前模型不替代海关裁定，不自动解释协定附件中的复杂例外表，也不抓取外部税则数据库。规则版本字段用于复盘和后续差异比较；外部数据连接应通过未来的适配器接入，并在进入核心前完成来源和有效期校验。
