The trickiest units to support may surprisingly be percentages! Since that has a cyclic data dependency to break.
During initially computing min size & padding the spec says I should treat the parent as being 0 wide. max & preferred size would be based on the natural width.
Oh, for autolayout I'd need a postorder traversal to sum fixed/finalized heights.
---
With a minor change to underlying datastructures, I could write accessors for computing min, max, natural, & final width & height!
2/2