In a similar situation, I defined one Property to represent both your Required
(A, B, C) and User-defined properties, and wrote some business logic to ensure
that the Required properties were always present. A variation would be that
this user-interfacing Property is a dependent property,
I have a core data document-based app at the document level is a Core Data
type called Library, with a one to many relationship to type Element.
Element has a few properties but I want to allow the user to add others (of
type string only at this point).
So I have Element:
String name
String