Change the way we detect links that are handled with ReferenceMacro (once RM is handled, the reference for the same link shall be ignored). As we walk children (including RM) anyway, it's just an extra work to look for RM attributes while processing references.
Unique names shall be truly unique in the given context, not up to hashCode>>>1 value of the topmostNamed' name.
Use of SNodeReference as map keys instead of SNode is presumably the right way to go, and it's nice of SNodePointer to be explicit about its immutable nature.
Do not trust supplied context node too much - chances are context node is way too narrow.
EditorDescriptor has two child links, one for editor, another for inspector. uniqueNodeId for a collection in either of them is the same, 'a' - they are first in the role.
If contextNode is the same as inputNode, set of unique names is different for each, and editor class get two identical methods.
unique name within a context shall respect the context, not the fact same name is in some other context.