Alt-design (trying the hyphen for a while) takes different approaches at different times. While building the subtree of any node, all of the properties are maintained in a HashMap, along with a BitSet of specified properties.
When the subtree construction is complete, the HashMap and BitSet are used to build the sparse array of only the relevant *resolved* property values
If I understand the Alt-design code correctly, the function calls, like from-parent(), are resolved but percentage are not resolved at this point, but still saved as an IndirectValue, right? The percentage will be resolved at a later stage?
(not properties - one of the differences with HEAD)
I think you have mentioned this before, but is it such a big difference? HEAD wraps its datavalues in a very thin Property wrapper, but otherwise there is a one-to-one binding between a HEAD Property and its value.