The decoded arguments a run is handed — an accessor rather than the plain record, because
"every declared key is present" is a fact the mold ENFORCES (PARAM_MISSING refuses the fire
otherwise) and TypeScript cannot prove about a record built key by key. The alternative is a
cast over the whole object, which the house forbids for exactly the reason it would bite here:
it would keep compiling if a key stopped being decoded.
The decoded value of a declared parameter. Throws only on a MOLD defect — the fire refuses
PARAM_MISSING before reaching start, so no caller can provoke it.
The decoded arguments a run is handed — an accessor rather than the plain record, because "every declared key is present" is a fact the mold ENFORCES (
PARAM_MISSINGrefuses the fire otherwise) and TypeScript cannot prove about a record built key by key. The alternative is a cast over the whole object, which the house forbids for exactly the reason it would bite here: it would keep compiling if a key stopped being decoded.