ValueTrees and Ranges

Curious how people handle Range-type values with ValueTree. I’m talking about things like a selected range within a file where you care about the order.

If I treat them as two separate properties in a ValueTree it seems like some mischief could occur when both values get updated but one gets read before the other because of overlap issues with the existing range during the in-between state.

When I update the range, I want that operation to be as atomic as possible, and that range can be updated from a combination of sliders and text boxes. I thought about storing them in a child ValueTree that only contains the range values as properties and then just overwriting the child tree, using ValueTree::Listener::valueTreeRedirected to trigger the update, but wanted to see if someone had better idea.