Given the order of diffs, it's hard to tell what you've done to create a uuid/cache for in memory usage_ids; so, I'll assume that's handled.

Probably beyond the scope of this PR, but we need a new repr for children addresses which allow structure spanning: pointing to elements in other structures. As a shortcut, we could say that a simple ID implies w/in same structure and have a different repr and logic for pointers into other structures.