The budget engine has grown labor lines one at a time: siding and house wrap, trim, eaves, gutters, wall sheathing, hold-downs. The page's price box only listed the first six, so a builder reading it had no way to know the others existed. The box accepts any name, so typing them worked; finding them did not.
The hint now names all thirteen labor* rates, and page.test.mjs reads budget.mjs, collects every labor name the engine asks for, and fails if the page's hint leaves one out. Still true: no price or rate ships with the tool, and an untyped rate leaves its line listed as unpriced, never guessed.