Most simple ValueObject
Using immutables with a tree structure (single hierarchy).
We're using a simple dsl for the builder style (see unit test).
Another tree structure, this one more convoluted
Edge relation (i.e. required attribute) modeled as a node inheritance.
IMO not very tasty.
Edge relation (i.e. required attribute) modeled as association.
Better.