The solution to your problem is probably the Decorator design pattern - which is similar to what you've done.
But Decorator formalizes the separation slightly, by having the extra properties in a collection that is referenced by your object. In other words, don't make your object itself into a collection by adding an indexer, but rather have your object expose a read-only property to provide a reference to your decorator collection.
Copyright (c) Marimer LLC