That's how the component started life (specific to that customer project).

That felt fragile, so I stripped it out and let the caller decide when `distributeEntities()` needs to be called. It's different again if the DMG is bucketizing the *members* of a group, rather than children of an entity, and if it's a `DynamicGroup` then there are additional steps to track member added and removed.

Could provide convenience factory methods or subclasses (subscribing in an overridden `init()`) if those are compelling enough use-cases.