# RefCaption

object type

One server-composed reference caption (the referenced-caption rule): the caption of a record THIS record references via a declared ID-class field. A list field answers one row per entry. caption is null when the reference cannot be composed (a foreign-root record — no cross-tenant leak; a dangling id). Provider/system identifiers (Stripe refs, saga locks) never appear — they are declared external.

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `field` | [String](/types/#scalars) `String!` | The referencing field name on the carrying record (e.g. brandId, owners). |
| `id` | [ID](/types/#scalars) `ID!` | The referenced id VERBATIM as the record carries it (a id; the org costCentre answers its sysId). |
| `caption` | [String](/types/#scalars) | The referenced record's caption — null when not composable (foreign root · dangling). |
| `refType` | [String](/types/#scalars) | The DECLARED target construct type of the reference: fixed refs verbatim; a polymorphic ref answers the sibling-resolved type, null when the sibling names nothing. Schema-level knowledge — never data. |
| `refId` | [ID](/types/#scalars) | The referenced construct's id when it DIFFERS from id (a SYSID-storing field — the org costCentre), answered only when the record is readable under your root; null everywhere else (id IS the construct id). Fetch the record by refId when present, else by id. |
| `reason` | [String](/types/#scalars) | WHY caption is null: dangling = the referenced record does not exist (purged, or never did); unreadable = it exists but this session cannot read it (a foreign root — the word never says which). null on a captioned row. |
