1.9 KiB
1.9 KiB
Universal Reference Contracts
Reference contracts only. Stable IDs for all commercial registry objects.
Contract version:universal-reference.v1
1. Purpose
Every Commercial Foundation registry object receives a stable universal ID so cross-registry references never depend on service-specific database identifiers.
2. RegistryObjectId
| Field | Type | Meaning |
|---|---|---|
registry_object_id |
uuid | Globally unique within commercial domain |
object_kind |
string | Open kind — §3 |
stable_code |
string? | Human-stable code (product_code, asset_code, …) |
version_code |
string? | When pinning a version |
uri |
string? | Logical URI form |
Logical URI form (documentation)
commercial://{object_kind}/{registry_object_id}[@{version_code}]
Example: commercial://asset/3fa85f64-...@2026.07.1
3. Object kinds (open)
product · bundle · capability · extension · automation_pack · automation_type · asset · policy · metadata · pricing_item · subscription · subscription_plan · license · dependency_edge · (future)
4. UniversalReference
| Field | Type | Meaning |
|---|---|---|
ref |
RegistryObjectId | uri string | |
relation |
string? | Optional semantic (uses, installs, prices, …) |
Used by bundles, products, policies, assets, activation payloads, and dependency edges.
5. Rules
- No service-specific identifiers as commercial cross-refs (no Experience
page_id, Payment internal PK, etc. as commercial SoT). - Services MAY map locally via opaque correlation tables — commercial contracts speak only
registry_object_id/stable_code. - Aligns with ADR-022
publish_idfor public surfaces; commercial refs remain distinct (commercial://vs publish_id). - Unlimited references — architecture unchanged.