Skip to content

Playbook Field and Reference Map

A Playbook is a versioned document, not a flat list of entitlements. Its envelope identifies the artifact, tenant, environment, and schema version; its body holds policy, targeting, and presentation. This map describes the 29 top-level body keys in the schema pinned by SDK 0.12.4 documentation (0.1.520). Their key set also matches the scaffold source reviewed on October 23, 2026.

Arrows point from a record that contains a reference to the record it names. This overview groups related fields; the tables below provide their exact names.

Playbook policy and presentation reference mapEntitlement rules reference entitlements, plans and add-ons, and segments. Variations reference plans and add-ons and segments. Placements reference payloads and slots. Payloads reference message blocks, UI paths and promotions. Message blocks reference surface templates.Entitlement rulesVariationsEntitlementsPlans / add-onsSegmentsPlacementsPayloads / slotsMessage blocks / UI pathsand promotionsSurface templates

“Array” means a collection of records, not a promise that each record is an independent runtime entity. Optional fields may be absent. Compatibility and authoring-only fields are not instructions to build new integrations around them.

FieldShapePurpose
plansArrayBase plan definitions, identified by unique_handle.
addonsArrayAdd-on definitions referenced by entitlement targets.
entitlementsArrayNamed access or parameter capabilities and their kinds.
entitlement_rulesArrayRules binding an entitlement to plan/add-on targets and optional segments.
segmentsArrayNamed targeting predicates over context.
content_ui_pathsArrayAuthored CTA action definitions and routing parameters.
slot_configsArrayDeprecated compatibility field; activation/trigger state belongs to the SDK.
content_overridesObjectDeprecated compatibility map; author Message Block/Payload content instead.
themeObjectLegacy branding compatibility data; branding is independently owned.
placement_slotsArrayAuthored locations into which matching placements may render.
message_blocksArrayReusable content shaped for a surface template.
placement_payloadsArrayContent selections, targeting, actions, and presentation for placements.
placementsArrayPlacement category, triggers, targeting, and content associations.
content_promotionsArrayAuthored promotions that content and actions can reference.
personalization_tokensArrayNamed substitutions used in content.
surface_templatesArrayPresentation templates referenced by message blocks and slots.
free_trial_rulesArrayAuthoring definitions for opt-in/free trial behavior.
reverse_trial_rulesArrayAuthoring definitions for reverse trials and their fallback/conversion plans.
objectivesArrayAuthoring-only business labels; not runtime decision inputs.
plan_variationsArrayPlan-owned pricing variations, with optional segment eligibility.
addon_variationsArrayAdd-on-owned pricing variations, with optional segment eligibility.
extension_rulesArrayTagged extension payloads; unknown mandatory kinds must be rejected by readers.
seat_typesArraySeat-type policy definitions for account-scoped access.
enforcement_defaultsArrayConfigured enforcement defaults used by applicable policies.
placement_settingsArrayPlacement presentation and selection settings.
segment_dimensionsArraySegment-dimension declarations; field presence does not imply a normalized bundle table.
meter_bindingsArrayBindings connecting policy to meter definitions.
experimentsArrayReserved compatibility placeholder; the current schema requires an empty array.
signal_catalogObjectReserved compatibility placeholder; the current schema requires an empty strict object. Signal definitions remain on the control plane and are not shipped to the browser.

References use the target’s declared identity

Section titled “References use the target’s declared identity”

Do not assume a field ending in _id is a database UUID. Portable references often use handles. These examples follow the schema’s reference graph:

Referencing fieldTarget identityMeaning
Rule entitlement_idEntitlement unique_handleThe capability this rule configures.
Rule targets[].id, kind planPlan unique_handleApplicable plan.
Rule targets[].id, kind addonAdd-on unique_handleApplicable add-on.
Rule segment referencesSegment handleEligibility restriction.
Variation plan_handle / addon_handleParent unique_handleOwning plan or add-on.
Variation segment_handleSegment handleOptional price eligibility.
Trial plan, fallback, or conversion referencesPlan handleTrial entry/exit plan policy.
Placement trigger entitlement / slot referencesEntitlement handle / slot IDWhich event or location can activate the placement.
Payload segment-content entriesSegment handleConditional content selection.
Payload content/action referencesMessage block, UI path, promotion identitiesContent and action to resolve.
Message block template referenceSurface template IDRendering shape.
UI-path promotion / placement referencesReferenced promotion / placement identityDestination or offer for the action.

Variation-level rule target enum members exist for compatibility but are not a recommendation to author new variation-level entitlement targeting. Use the supported plan/add-on targeting model. Removing a segment constraint can widen access; do not silently drop a missing reference. Validate the whole document with the CLI before upload and review the diff before launch.

The compiler’s 13 normalized bundle tables are a projection of this document, not the complete list of Playbook body fields. A body field’s presence does not prove it is lowered into an independent table or read by every language port. See runtime and Playbook for the distinction between authored policy and the per-user facts evaluated with it.