Geometry name for the log lines (e.g. 'Points').
The phase's eligible-loader snapshot (resolveLoadEligibleLoaders),
re-read after every pass for anyHasMoreLODs.
OptionalresidencyBudget: RefinementResidencyBudget
Shared residency ceiling; absent means unbounded.
OptionalisPathVisible: (path: string) => boolean
Live culling/layer-visibility predicate.
The callbacks, ready to spread into the loop context.
Build the four loop-progress callbacks for one geometry.
The exclusion set here (exhausted OR budget-declined OR no more levels) must stay identical to admitRefinementCandidate's. A budget-declined loader still reports
hasMoreLODs, so omitting it fromanyHasMoreLODsis not a cosmetic bug — the loop never terminates.