The global ceiling shared across all models.
Bytes still reservable without eviction.
The global ceiling.
Bytes currently reserved across all models.
Try to reserve bytes against the shared ceiling. Succeeds (and charges
the budget) only if it fits without exceeding the total; otherwise makes
no change and returns false, leaving the caller to evict and retry.
The bytes to reserve (≥ 0).
True if reserved.
A byte budget shared across many models (M5 / design S3).
The federation invariant: budgets must be per browser, not per model, or opening N cross-referenced files re-introduces O(N) memory. This is the one accounting primitive that enforces it — every model's demand-geometry queue and window pool draws from a single SharedByteBudget, so the total resident footprint across all open models is bounded no matter how many are federated in.
It owns only the accounting (reserve / release / availability); the eviction policy that frees bytes when a reservation can't be met stays with each model's scheduler (M3's DemandGeometryQueue) — the budget just tells a caller how much it must evict first via overageFor.