- Shipped
- July 16, 2026 at 7:35 AM UTC
- Author
- Kamo
- Commit
- 8f1da8d
The pure, additive foundation of period-aware collection (doc 06 §4) — the first slice of the bank-statement "collect only the months I don't have yet" fix. Zero behavior change, no consumer wired. - RequirementQuantity: immutable spec {count, periodMonths, cadence, perAccount, perParty} parsed from quantity_json; fails open to SINGLE so an unspecified requirement keeps today's whole-document behavior. - PeriodCoverageEvaluator: pure @Component (mirrors ConditionClearabilityResolver) computing required/covered/uncovered periods + derived status from a spec, the accepted satisfiers, and an anchor date — the "1 of 2, missing 2026-06" logic, with a stale out-of-window month ignored (carried forward, not re-asked). - RequirementSatisfier: four additive NULLABLE columns (period_end, effective_date, period_key, account_key) + index; WORM @PreUpdate preserved. - PARTIALLY_RECEIVED (already in the enum, isOpen()=true) simply becomes reachable. Columns apply additively via KamoInitializer (batched with the M1 write-path run); services stay ddl-auto:none; no shared-lib version bump.