This would go nicely with [FR] Default UndoManager arguments to nullptr in all ValueTree methods - #6 by ImJimmi to make constructing value trees this way even cleaner:
juce::ValueTree {"Root"}
.setProperty("foo", 10)
.setProperty("bar", 20)
.appendChild (juce::ValueTree {"Branch"}
.setProperty ("x", y)
.appendChild (juce::ValueTree {"Leaf"}))
.addChild (juce::ValueTree {"Branch"}, 0);