Some thoughts about code structure, as I read code, and find some things harder to follow than others.
❌
void someMethod(const DataOwner& owner) { ...; owner.data.doSomething(); owner.data.somethingElse(); ... }✅
void someMethod(const Data& owner) { ...; data.doSomething(); data.somethingElse(); ... }