register_instance
Link a product node to a canonical registry entity by creating an `instance_of` cross-edge (product entity → `registry/{id}`). This is the only path that creates `instance_of` edges: it requires the canonical to exist and enforces the same-type constraint (a persona instance_of a persona). Idempotent: re-registering the same instance returns the existing edge. Set `alias: true` to sanction a deliberate title divergence (an informative product-local name) so registry drift detection ignores it. Use after `define_canonical_entity` to attach each product's local copy to the shared definition.
Arguments
node_idstringrequiredThe product instance node. Bare id resolves against the active product (or source_product_id); a qualified {product_id}/{node_id} targets any workspace product.
canonical_idstringrequiredThe registry entity id (bare, or registry/{id}).
source_product_idstringoptionalProduct ID owning the instance, when node_id is a bare id not in the active product.
aliasbooleanoptionalMark a deliberate title divergence from the canonical as sanctioned, excluding it from registry drift. Can be toggled on an existing instance_of edge.
Returns
{ edge, instance, canonical, portfolio_file, already_existed? }