GiftRegistry
object type
A GiftRegistry — ONE consumer-OWNED curated product list with purchase tracking (org-group-parented document): structurally a cousin of the Collection but consumer-owned + purchase-tracked. ownerConsumerId is a registered Consumer, IMMUTABLE at birth (ruling — the REGBOOK derived-index row minted in the create txn is thereby write-once; guests cannot own; transfer = deferral 14). registryType ∈ {wedding, baby, birthday, anniversary, holiday, wishlist, custom} (the seven VERBATIM — canned + AT-extensible, the caseType registry class; MUTABLE via update, a mislabel is routine correction). privacy ∈ {public | unlisted | private}, DEFAULT 'private' (strict — the owner opts INTO sharing); ⚠ the cross-consumer READ lanes that consume the gate are the storefront wave (ruling /deferrals 1–3) — until then privacy is enforced STRUCTURALLY (the consumer lane is owner-only). eventDate OPTIONAL — present ⇒ arms the scheduled active → expired (ruling — LIVE machinery, due == eventDate EXACTLY; the ExemptionCertificate optional-field class; grace/policy = deferral 7). FSM: active(i) → closed (caller_op:close · authority:own_registry) · active → expired (scheduled:scheduler — a LIVE non-terminal state: items stay readable, fulfillments still record [ruling], the owner can still doom) · closed|expired → doomed (caller_op:doom · authority:own_registry + referential_integrity — the inbound-ref set is EMPTY by design, subordinates are FAMILY [the CollectionMember vacuous-gate class]). Forbidden: active → doomed (close or let expire first). Ceilings: 16 ACTIVE registries/consumer · 200 ACTIVE items/registry. NOT searchable (consumer-owned, reached via its owner — the book law covers WHO, not their lists).
Fields
| Field | Type | Notes |
|---|---|---|
id | ID ID! | The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it. |
sysId | String String! | The group-scoped human-facing system id (GR-…). |
type | String String! | The kind of record — always GiftRegistry here. |
caption | String String! | The record’s display name — what people see it called. |
status | String String! | The FSM state: active | closed | expired | doomed. |
parentId | ID ID! | The parent org group; for a GiftRegistry parentId === rootId. |
rootId | ID ID! | The org-group family root. |
createdAt | String String! | When the record was created, as a UTC timestamp. |
updatedAt | String String! | When the record last changed, as a UTC timestamp. |
revisionNum | Int Int! | How many times this record has been edited; the first save is 0. |
revision | ID ID! | The OCC revision token — supply it on every mutation of this record; rotates on every write. |
refCaptions | RefCaption [RefCaption!]! | The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption. |
ownerConsumerId | ID ID! | The OWNING registered Consumer. ⚠ IMMUTABLE at birth (ruling — the REGBOOK index row is write-once; ownership transfer = deferral 14). |
registryType | String String! | wedding | baby | birthday | anniversary | holiday | wishlist | custom — the canned registry (AT-extensible, never merchant free-form). MUTABLE via update. |
privacy | String String! | public | unlisted | private — born 'private' when the caller names none (strict). ⚠ Structurally DORMANT until gives it a cross-consumer reader (ruling — the consumer lane is owner-only). |
eventDate | String | The event instant (ISO-8601, a FULL instant — the slaDueAt convention). Present ⇒ arms the scheduled expiry (ruling — due == eventDate EXACTLY; edits re-arm/disarm on write). |
shipTo | RegistryShipTo | The registry-specific ship-to override. |