Geometry name for the log lines (e.g. 'Points').
The geometry's loader map, read live 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.