Resolve a lineage ref against a freshly rebuilt shape with no maintained
role table, re-deriving roles via assignRoles(shape, ref.origin). The ref's
origin must therefore be the role-assignment scheme (e.g. 'box'), and
stability is bounded by that scheme — 'box' names faces semantically
(rebuild-stable); other schemes fall back to positional face_N.
Resolve a lineage ref against a freshly rebuilt
shapewith no maintained role table, re-deriving roles viaassignRoles(shape, ref.origin). The ref'soriginmust therefore be the role-assignment scheme (e.g.'box'), and stability is bounded by that scheme —'box'names faces semantically (rebuild-stable); other schemes fall back to positionalface_N.