Review follow-up: nothing consumed the field. The reserve stays an input to `resolveCompactSpec`, whose returned budgets already express its effect, so `ResolvedCompactSpec` keeps its exported shape. Note the name collision a consumer would have hit: `ResolvedTargetPolicy.maxTokens` is the compaction *summarization* output cap (default 8192), not the routed request's cap reserved from the same window.