create_registry_edge
Create a canonical-internal edge between two registry entities: the authoring path for `registry.edges`. Canonical entities relate to one another (a registry specification governed_by a registry organization, a primitive defined_by a specification, a specification that extends another specification). These edges live in the portfolio registry and never touch product graphs. Validates that both endpoints exist in the registry, the type is a real `UPG_EDGE_CATALOG` edge, and the catalog source_type/target_type match the two nodes (the canonical edge for the pair). Idempotent: an identical edge (same source/target/type) already present is returned, not duplicated.
Arguments
source_idstringrequiredSource registry entity id (bare or registry/{id}).
target_idstringrequiredTarget registry entity id (bare or registry/{id}).
typestringrequiredA UPG_EDGE_CATALOG edge type whose endpoint types match the two registry nodes (see resolve_edge_for_pair).
Returns
{ edge, source, target, portfolio_file, already_existed? }