I think this might not sound very new … but:
up until now the structure of an object is quite static.
Have you mentioned to implement a method to change the amount of Fields on a per object base?
Something like a “n-field” that can occur 1 to n times within an object to allow multiple values for a field along different objects of the same type.
n Phone-Numbers that are associated with an SIP account
n IP-Addresses that are associated to a Router
n VLANs that are associated to a Switch
n AV-Pairs in a Radius account