A first step might be to create a new type with fixed public fields — just giving the group a name highlights the missing concept. Later we can migrate behavior to the new type, which might eventually allow us to hide its fields behind a cleaninterface, satisfying the “composite simpler than the sum of its parts” rule.