ADR-0009 The content-pixels rule
#Context
The emission budget is computed by summing rendered luminance above the substrate floor, per Scope. Real products contain pixels the system does not author: avatars, photographs, charts, user-written text, embedded media. A single photo in a card can exceed an entire Scope's luminance ceiling on its own. The budget must decide whether it governs those pixels, and the decision determines whether the budget is honorable or theater.
#Decision
The budget governs chrome, not content. Content is attention the product carries; chrome is attention the system spends; only the latter is budgeted. Mechanically, components declare content regions through the same slot contracts that govern composition — a content slot is exempt by construction — and the budget engine masks those regions before summing. The frame around content remains chrome and is counted: the container, its border, and any overlay the system draws on a content region (badges, scrims, selection states) are inside the budget.
One source of truth: the mask derives from the slot contracts. There is no hand-maintained exclusion list anywhere in the system.
#Rejected options
Count everything, raise the ceilings. The purist reading — all light is attention, so budget all of it. Rejected because ceilings high enough to accommodate arbitrary photography are ceilings that constrain nothing; the check would pass everything, and a budget that cannot fail is not a budget. It would also make the emission number meaningless as a comparison across scenes, since it would track content choice rather than design decisions.
Hand-maintained exclusion masks. Flexible and precise per-scene. Rejected because manual masks drift the moment layouts change, and a stale mask silently corrupts every receipt downstream. The whole enforcement story rests on generated artifacts that cannot drift from source; a hand-edited mask reintroduces the drift the system exists to eliminate.
Statistical discounting of content regions (weight content pixels at some fraction rather than zero). Superficially fair. Rejected because any nonzero weight recreates the photo problem at a smaller scale, and the fraction itself would be an unprincipled constant with no defensible derivation — exactly the kind of magic number an interviewer pulls on.
#Consequences
The slot-contract layer becomes load-bearing for the budget engine, which strengthens the case for building contracts as types (Phase 3) rather than conventions. The spike (Phase 0) must validate the masking approach against a fixture scene containing a photograph and a chart. Edge to watch: content that visually *is* chrome (a user-chosen accent color applied to a system component) — current position is that system-rendered surfaces are chrome regardless of who chose their color; revisit only if the spike surfaces a counterexample.