Skip to content

CreativeState

Defined in: state.ts:80

backgroundImage: string | null

Defined in: state.ts:86


contentSource: "generated" | "cached" | "static"

Defined in: state.ts:94

Strongest provenance this stream declared. Drives trust chrome.


ctaAction: string | null

Defined in: state.ts:90


ctaStyle: unknown

Defined in: state.ts:89


degraded: string | null

Defined in: state.ts:96

W8 — set when the server served a deterministic winner instead.


error: string | null

Defined in: state.ts:100

Human-readable failure, if any. Never blanks painted copy.


experienceManifest: unknown

Defined in: state.ts:85


fields: Record<CopyField, FieldState>

Defined in: state.ts:82


optional held?: Partial<Record<CopyField, string>> | null

Defined in: state.ts:113

What the hold pulled off the canvas, per field — the copy that WAS painted at first paint (/content copy or the consumer’s fallback), exposed so a renderer can reserve its exact geometry while the field is blank (LAYOUT-DOCTRINE.md layer 1). The choreographer stays DOM-pure: it reports what was held; drawing the reservation is the renderer’s job. Null when no hold armed this page view.

Optional so a CreativeState built by hand — a test mock, a Storybook fixture — written against 0.3.0 still compiles: every reader goes through state.held?., so absent and null are the same fact.


layout: string | null

Defined in: state.ts:84


meta: Record<string, unknown> | null

Defined in: state.ts:92

Terminal done.meta, verbatim.


phase: Phase

Defined in: state.ts:81


rewrites: number

Defined in: state.ts:119

Rewrite counter. 0 = still showing first paint. 1 = the stream’s single permitted rewrite has landed. Anything above 1 is a doctrine violation and is asserted against in the tests rather than merely hoped for.


sequence: { fps: number; frames: string[]; heroIndex: number; } | null

Defined in: state.ts:87


theme: { colors: Record<string, string>; sources: Record<string, string>; } | null

Defined in: state.ts:83


variantId: string | null

Defined in: state.ts:98

Resolved variant, for pinning subsequent calls in this page view.


videoUrl: string | null

Defined in: state.ts:88