Lease and Rules topics: Clara quotes them

PR #18050, core topics batch 3 part 1. Each row was run 3 times on origin/main 90da824f194 and 3 times on the branch 1f46fc06798 (rebased onto #18055, renter's insurance split out). Both runs used the same bridge and rows, the subscription runner, and synthetic companies only.

The new rows

All nine new rows pass 3/3 on the branch. Eight fail 3/3 on main.

The ninth, Sample Row smoking, passed 1 of 3 on main: without the topic, Clara sometimes guesses "not permitted" and the row cannot tell a guess from a fact. On the branch she reads the building's answer and passes 3/3.

Rowmainbranch
LEASE LENGTHS, sms — 6 or 12 months, from the Lease lengths answer0/33/3
MONTH-TO-MONTH, voice — offered, 60 days notice0/33/3
NOTICE TO MOVE OUT, sms — 45 days at the end of a fixed-term lease0/33/3
EARLY TERMINATION, sms — allowed: 2 months of rent and 60 days notice0/33/3
SMOKING, sms — not inside; outside only in the designated area by the side gate0/33/3
SMOKING, building override, sms — Sample Row allows no smoking outside either1/33/3
MONTH-TO-MONTH, older building record, sms — Placeholder Flats: its $75 MTM fee, and the company's 60 days notice0/33/3
EARLY TERMINATION, older building record, sms — Placeholder Flats: 3x monthly rent (never the company's 2 months), the company's 60 days notice0/33/3
EARLY TERMINATION, building's own answer over its older record, sms — Stub Lofts: 1 month of rent, never the older 3x0/33/3
What the Placeholder Flats rows test

Placeholder Flats has an older pricing record: a month-to-month fee and early termination at 3 times the monthly rent. Each record wins over the company's answer for the fields it answers, and the company still answers the fields the record does not. So at that building Clara quotes 3 times the rent, never the company's 2 months, and still quotes the company's 60 days notice. The month-to-month and early-termination rows need that company notice, so they fail on main.

Stub Lofts has an older early-termination multiple of 3 and its own answer (1 month of rent). Its own answer wins, and the 3× pricing line steps aside on every surface, so Clara quotes 1 month only. On main she quotes the 3× line.

The existing rows

Rowmainbranch
PETS, sms — a 65 lb dog: the 50 lb limit and manager approval, from the one Pets answer3/33/3
PETS, voice — a 65 lb dog: the 50 lb limit and manager approval3/33/3
PETS follow-up, sms — after 'cats and dogs are welcome': how many and the monthly charge3/33/3
PETS, building override, sms — Sample Row allows no pets, whatever the company allows3/33/3
PETS, building override, voice — no pets at Sample Row3/33/3
PETS, field-level (1c-1), sms — the company says no pets; Mock Gardens' older record holds only a weight limit, so it is still no pets2/32/3
PETS, one statement (1c-1), sms — Fixture Commons: the older 'up to three' entry was folded into the Pets answer (up to 2); Clara states 2 only3/33/3
CUSTOM POLICY, sms — pool hours from a titled custom entry (regression guard)3/33/3
NOTHING SET, sms — no invented smoking or pet rule; the team confirms (regression guard)3/33/3
About the PETS misses

On this run, the Mock Gardens row failed once on both sides. Clara said "no pets are allowed" and the grader's pattern matched the "pets are allowed" inside it. That is a grader false positive on an existing row, unchanged by this PR.

On the first head, in 1 of 3 branch runs, the sms row about a 65 lb dog called 65 lb the limit. The Pets entry Clara reads is unchanged: "Weight limit: 50 lb per pet. Dogs over 50 lb need manager approval." The row was re-run 10 more times on each side: branch 10/10, main 8/10. Main misses the same way, so this is the row's existing noise, not a regression.

PropFlow Docs