"""基金转换(convert)纯函数包(架构设计-基金转换交易 §2/§7)。 **本包硬约束**:只做金额/费率/份额/日期口径的计算与规则判定, **不查库、不碰 SQL、不读 settings、不写日志**——所有输入由调用方 (`repository` 取数后)显式传入,输出为不可变 dataclass。 这样做的目的: 1. 金额链路最易错,纯函数才能**穷举单测**(D1); 2. `plan_lots()` 必须"先规划再判上限",不能在事务里半途失败(§8.3 `TOO_MANY_LOTS`); 3. `lot_bootstrap.bootstrap_lots()` 被 `trade_gateway` 兜底补建与 `scripts/core/rebuild_lots.py` **同调**(D18),必须与 IO 解耦才能两侧一致。 """