Best way to access properties (with intent to possibly modify) within a node

Based on the nice example codepen @simon created here:

…my question is:
What is the best way to access all the different properties within the node once a user clicks on the node?

For example, suppose I wanted access to the text in the textBlocks, the stroke color and width, the margins, basically any part of the node, with the idea that once accessed, it could also be edited.

Hope the question makes sense.

Normally there are Bindings on all those properties to model data properties. So you can just look at the object to look at those properties. And you could change them by callling Model.set on the data object within a transaction, which will automatically update the GraphObjects in the Node.

Practically all of the samples use that architecture. Each sample has different properties on each of its node data objects.