Accessing blind data in a base object via external view objects

This is probably more of a philosophical discussion kick-off / bikeshed problem than an actual question, but here goes:

I've got an fairly generic QML object that acts as a base class for more complex nodes (both C++ and QML). This object is called "Node" and has a QJSValue property called "details" that is used for blind data. The only thing Node knows about its details property is that it is a list (QJSValue.isList() == true). Derived classes generate and store data in the details property. While Node doesn't know anything else about the data stored in details, derived nodes must be able to communicate with each other, so there are schemas which they follow. For example, a node dealing with files expects each element in details to have "pattern" and (optionally) "frames" properties, e.g.