ir.interactive = max(rootRenderCommit, reportReady) (LP2-3). An app-called
reportReady() may only DELAY interactive — never advance it before the root
render commits. A reportReady() that fires early is recorded but takes effect
at the commit; if the app never reports, the commit alone stands. Budgets bind to
the later of the two, so an app can't game its budget by declaring itself ready
before it has rendered anything. PURE.
ir.interactive = max(rootRenderCommit, reportReady)(LP2-3). An app-calledreportReady()may only DELAY interactive — never advance it before the root render commits. AreportReady()that fires early is recorded but takes effect at the commit; if the app never reports, the commit alone stands. Budgets bind to the later of the two, so an app can't game its budget by declaring itself ready before it has rendered anything. PURE.