In the previous article about my C++ event-planning reconstruction, I looked at the Group model: a surprisingly compact object that connects a collection of Guests with a shared name, shared contact information and some seating-related behaviour. One of those three pieces of Group state deserves a closer look of its own. Rather than storing addresses, telephone numbers and email directly inside the Group, the reconstructed architecture places all of that information into a separate Group Contact object. It is not a large class. It has no inheritance hierarchy, no graphical behaviour and no complicated external relationships. Its job is much narrower: represent the contact information associated with a Group as one coherent value . That makes it a useful example of something that can easily be overlooked in object-oriented design. Not every worthwhile class represents a large business entity. Sometimes a small value object provides a cleaner architecture precisely b...