Scenario identity — MlosLoanScenario + MlosScenarioBorrower (Phase-2 Slice 12a)

Featurekamo-shared-library
Shipped
June 26, 2026 at 11:31 PM UTC
Author
Kamo
Commit
7d1d09a

Opens the doc-02 §6.3/§7 scenario/pricing layer (first of 3 sub-slices). The priceable-scenario aggregate root the PPE hangs off + its borrowers. - FK-don't-recopy (§6.4): scenario stores ONLY derived-for-reproducibility values **************** + an aus_recommendation cache); raw URLA attrs read THROUGH loan_file_uid, never stored. An allowlist reflection test locks this in structurally. - FK locked core BY ID: loan_file_uid + borrower_uid are plain Long columns (code-verified LoanFile.uid/Borrower.uid = Long unique_rowid; doc's UUID wrong) **************** NO @ManyToOne. loan_scenario_id = internal UUID FK. - (loan_scenario_id, borrower_uid) DB-unique natural key (one borrower per scenario; entity-declared, no raw DDL). - Derived ratios/scores DECIMAL(18,6) matching **************** county dollar limit DECIMAL(18,2). Both MUTABLE (no WORM — reproducibility is frozen later on the immutable PricingRun/Result). - All indexes entity-declared (no KamoInitializer SchemaCleanupRunner DDL). - 4 tests green (Long-id String serialization + FK-don't-recopy allowlist). Grounded by a research Workflow (code-verified locked FK types) + adversarial 2-agent review (SHIP-AS-IS; applied the allowlist-test + docstring fixes).

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing