- Shipped
- June 26, 2026 at 3:25 PM UTC
- Author
- Kamo
- Commit
- fb36d4a
The deterministic most-restrictive resolver (doc 04 §8) — Product x Channel x Investor -> {ALLOWED|DISALLOWED, executionPath, authorityModel, fundingBehavior}. - ChannelApplicabilityRule entity: **************** conditionExpression(JSONB String, Program.rulesetJson precedent)/outcome/ **************** dates + EmbRecordState. priority DERIVED from scope (not stored). Same config base pattern. - 5 enums: RuleScope(+priority() Investor=0..Tenant=3), Channel, Applicability, **************** (HYBRID resolved per-loan to these), FundingBehavior(5, incl PORTFOLIO_HOLD — DeliveryRule's 4-value unify deferred). - ChannelApplicabilityResolver @Component (ungated, stateless): empty/any-DISALLOWED => DISALLOWED (safe most-restrictive reading of the §8.2 ambiguity); else ALLOWED with attrs from the strongest scope. ChannelResolution record. 5 **************** green (17 mlos.config tests). conditionExpression predicate evaluator + effective-dating filter + AiDecision pinning + MlosActivationService deferred. mlos.config already in KamoInitializer scan — re-run only. Plan: ****************