@nextcommerce/campaigns-os 1.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +204 -0
- package/CHANGELOG.md +5002 -0
- package/CONTEXT.md +685 -0
- package/LICENSE +202 -0
- package/NOTICE +4 -0
- package/README.md +368 -0
- package/agents/claude/CLAUDE.md +32 -0
- package/agents/codex/AGENTS.md +27 -0
- package/agents/copilot/copilot-instructions.md +14 -0
- package/agents/cursor/campaigns-os.mdc +13 -0
- package/bin/campaigns-os.mjs +38 -0
- package/campaign-spec/README.md +138 -0
- package/campaign-spec/dist/analytics-vocabulary.d.ts +47 -0
- package/campaign-spec/dist/analytics-vocabulary.js +74 -0
- package/campaign-spec/dist/index.d.ts +40 -0
- package/campaign-spec/dist/index.js +77 -0
- package/campaign-spec/dist/normalize.d.ts +22 -0
- package/campaign-spec/dist/normalize.js +41 -0
- package/campaign-spec/dist/routing.d.ts +190 -0
- package/campaign-spec/dist/routing.js +263 -0
- package/campaign-spec/dist/rules/analytics-contract-shape.d.ts +42 -0
- package/campaign-spec/dist/rules/analytics-contract-shape.js +303 -0
- package/campaign-spec/dist/rules/assembly-hints-shape.d.ts +42 -0
- package/campaign-spec/dist/rules/assembly-hints-shape.js +191 -0
- package/campaign-spec/dist/rules/campaign-metadata.d.ts +14 -0
- package/campaign-spec/dist/rules/campaign-metadata.js +40 -0
- package/campaign-spec/dist/rules/checkout-has-success-url.d.ts +31 -0
- package/campaign-spec/dist/rules/checkout-has-success-url.js +66 -0
- package/campaign-spec/dist/rules/cycle-detection.d.ts +12 -0
- package/campaign-spec/dist/rules/cycle-detection.js +141 -0
- package/campaign-spec/dist/rules/design-source-shape.d.ts +29 -0
- package/campaign-spec/dist/rules/design-source-shape.js +142 -0
- package/campaign-spec/dist/rules/downsell-without-upsell.d.ts +11 -0
- package/campaign-spec/dist/rules/downsell-without-upsell.js +40 -0
- package/campaign-spec/dist/rules/exit-intent-validation.d.ts +23 -0
- package/campaign-spec/dist/rules/exit-intent-validation.js +147 -0
- package/campaign-spec/dist/rules/funnel-count.d.ts +9 -0
- package/campaign-spec/dist/rules/funnel-count.js +37 -0
- package/campaign-spec/dist/rules/funnel-hypothesis-length.d.ts +22 -0
- package/campaign-spec/dist/rules/funnel-hypothesis-length.js +60 -0
- package/campaign-spec/dist/rules/funnel-identity.d.ts +15 -0
- package/campaign-spec/dist/rules/funnel-identity.js +57 -0
- package/campaign-spec/dist/rules/funnel-weight-sum.d.ts +20 -0
- package/campaign-spec/dist/rules/funnel-weight-sum.js +66 -0
- package/campaign-spec/dist/rules/index.d.ts +69 -0
- package/campaign-spec/dist/rules/index.js +131 -0
- package/campaign-spec/dist/rules/offer-ref-integrity.d.ts +13 -0
- package/campaign-spec/dist/rules/offer-ref-integrity.js +59 -0
- package/campaign-spec/dist/rules/package-pricing-sanity.d.ts +12 -0
- package/campaign-spec/dist/rules/package-pricing-sanity.js +42 -0
- package/campaign-spec/dist/rules/page-count.d.ts +11 -0
- package/campaign-spec/dist/rules/page-count.js +31 -0
- package/campaign-spec/dist/rules/page-id-uniqueness.d.ts +14 -0
- package/campaign-spec/dist/rules/page-id-uniqueness.js +47 -0
- package/campaign-spec/dist/rules/promo-code-input-validation.d.ts +8 -0
- package/campaign-spec/dist/rules/promo-code-input-validation.js +126 -0
- package/campaign-spec/dist/rules/promo-codes-shape.d.ts +30 -0
- package/campaign-spec/dist/rules/promo-codes-shape.js +187 -0
- package/campaign-spec/dist/rules/route-field-ignored-for-page-type.d.ts +33 -0
- package/campaign-spec/dist/rules/route-field-ignored-for-page-type.js +81 -0
- package/campaign-spec/dist/rules/route-target-resolves.d.ts +32 -0
- package/campaign-spec/dist/rules/route-target-resolves.js +112 -0
- package/campaign-spec/dist/rules/schema-version.d.ts +21 -0
- package/campaign-spec/dist/rules/schema-version.js +53 -0
- package/campaign-spec/dist/rules/sdk-version.d.ts +26 -0
- package/campaign-spec/dist/rules/sdk-version.js +96 -0
- package/campaign-spec/dist/rules/shipping-countries-shape.d.ts +10 -0
- package/campaign-spec/dist/rules/shipping-countries-shape.js +30 -0
- package/campaign-spec/dist/rules/shipping-methods-present.d.ts +10 -0
- package/campaign-spec/dist/rules/shipping-methods-present.js +26 -0
- package/campaign-spec/dist/rules/store-profile-shape.d.ts +30 -0
- package/campaign-spec/dist/rules/store-profile-shape.js +127 -0
- package/campaign-spec/dist/rules/thank-you-requirement.d.ts +16 -0
- package/campaign-spec/dist/rules/thank-you-requirement.js +50 -0
- package/campaign-spec/dist/rules/unknown-top-level-fields.d.ts +28 -0
- package/campaign-spec/dist/rules/unknown-top-level-fields.js +114 -0
- package/campaign-spec/dist/rules/upsell-has-packages.d.ts +9 -0
- package/campaign-spec/dist/rules/upsell-has-packages.js +35 -0
- package/campaign-spec/dist/rules/upsell-routing-complete.d.ts +10 -0
- package/campaign-spec/dist/rules/upsell-routing-complete.js +45 -0
- package/campaign-spec/dist/rules/upsell-without-checkout.d.ts +11 -0
- package/campaign-spec/dist/rules/upsell-without-checkout.js +44 -0
- package/campaign-spec/dist/rules/variant-labels-shape.d.ts +28 -0
- package/campaign-spec/dist/rules/variant-labels-shape.js +86 -0
- package/campaign-spec/dist/sdk-version-parse.d.ts +43 -0
- package/campaign-spec/dist/sdk-version-parse.js +62 -0
- package/campaign-spec/dist/types.d.ts +674 -0
- package/campaign-spec/dist/types.js +40 -0
- package/campaign-spec/package.json +12 -0
- package/compatibility.json +25 -0
- package/contracts/agent-relevant-change-policy.v1.json +111 -0
- package/contracts/brand-theme-source-defaults.figma-sections-export.v0.json +32 -0
- package/contracts/brand-theme-target-tokens.next-core.v0.json +65 -0
- package/contracts/campaign-cart-checkout-field-contract.v0.json +45 -0
- package/contracts/campaign-cart-sdk-support-policy.v0.json +11 -0
- package/contracts/commerce-surface-catalog.json +2452 -0
- package/contracts/fixtures/orientation/canonicalization/v1.json +34 -0
- package/contracts/fixtures/orientation/envelope/current.json +95 -0
- package/contracts/fixtures/orientation/envelope/freshness_unknown.json +97 -0
- package/contracts/fixtures/orientation/envelope/legacy_baseline.json +95 -0
- package/contracts/fixtures/orientation/envelope/orientation_available.json +136 -0
- package/contracts/fixtures/orientation/envelope/recovered_interrupted_update.json +136 -0
- package/contracts/fixtures/orientation/envelope/refused.json +100 -0
- package/contracts/fixtures/orientation/envelope/restart_required.json +137 -0
- package/contracts/fixtures/orientation/envelope/updated.json +135 -0
- package/contracts/fixtures/orientation/hostile-target/README.md +61 -0
- package/contracts/fixtures/orientation/hostile-target/manifest.json +82 -0
- package/contracts/fixtures/orientation/hostile-target/repo/CHANGELOG.md +18 -0
- package/contracts/fixtures/orientation/hostile-target/repo/bin/intended.mjs +12 -0
- package/contracts/fixtures/orientation/hostile-target/repo/bin/tripwire.mjs +15 -0
- package/contracts/fixtures/orientation/hostile-target/repo/contracts/release-ledger.json +48 -0
- package/contracts/fixtures/orientation/hostile-target/repo/contracts/supported-surface.json +17 -0
- package/contracts/fixtures/orientation/hostile-target/repo/docs/example-contract.md +13 -0
- package/contracts/fixtures/orientation/hostile-target/repo/hooks/post-checkout +5 -0
- package/contracts/fixtures/orientation/hostile-target/repo/hooks/post-merge +5 -0
- package/contracts/fixtures/orientation/hostile-target/repo/hooks/pre-commit +5 -0
- package/contracts/fixtures/orientation/hostile-target/repo/hostile-dependency-tripwire/package.json +15 -0
- package/contracts/fixtures/orientation/hostile-target/repo/hostile-dependency-tripwire/tripwire.mjs +9 -0
- package/contracts/fixtures/orientation/hostile-target/repo/package.json +20 -0
- package/contracts/fixtures/orientation/hostile-target/repo/schemas/example.v0.schema.json +15 -0
- package/contracts/fixtures/orientation/release-gate/cases.json +1073 -0
- package/contracts/fixtures/runtime-recipe/accept/current.json +299 -0
- package/contracts/fixtures/runtime-recipe/accept/minimal.json +294 -0
- package/contracts/fixtures/runtime-recipe/dist-states.json +51 -0
- package/contracts/fixtures/runtime-recipe/manifest.json +85 -0
- package/contracts/fixtures/runtime-recipe/reject/advisory-enforcement.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/allowlist-without-hosts.json +297 -0
- package/contracts/fixtures/runtime-recipe/reject/committed-output-claim.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/engines-disagreement-warns.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/lifecycle-scripts-enabled.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/missing-required-field.json +251 -0
- package/contracts/fixtures/runtime-recipe/reject/unknown-kind.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/unknown-network-policy.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/unknown-output-check.json +310 -0
- package/contracts/fixtures/runtime-recipe/reject/unknown-revision.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/unknown-step-id.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/unperformable-check-skipped.json +299 -0
- package/contracts/fixtures/runtime-recipe/reject/unpinned-lockfile.json +299 -0
- package/contracts/fixtures/sidecar-bundle/production-shaped/.campaign-runtime/assembly-report.json +180 -0
- package/contracts/fixtures/sidecar-bundle/production-shaped/.campaign-runtime/build-context.json +115 -0
- package/contracts/fixtures/sidecar-bundle/production-shaped/.campaign-runtime/doctor-output.json +29 -0
- package/contracts/fixtures/sidecar-bundle/production-shaped/.campaign-runtime/qa-verdict.json +27 -0
- package/contracts/fixtures/sidecar-bundle/production-shaped/campaign-runtime.build.json +141 -0
- package/contracts/migration-sidecar-bundle.v0.json +149 -0
- package/contracts/orientation-limits.v1.json +41 -0
- package/contracts/orientation-reason-codes.v1.json +196 -0
- package/contracts/private-template-sources.json +8 -0
- package/contracts/release-ledger.json +4598 -0
- package/contracts/reserved-skill-names.json +13 -0
- package/contracts/runtime-recipe.campaigns-os-node-v1.json +299 -0
- package/contracts/supported-surface.json +180 -0
- package/contracts/template-brand-contract.apollo-mv-single-step.v0.json +27 -0
- package/contracts/template-brand-contract.apollo.v0.json +27 -0
- package/contracts/template-brand-contract.demeter.v0.json +27 -0
- package/contracts/template-brand-contract.olympus-mv-single-step.v0.json +27 -0
- package/contracts/template-brand-contract.olympus-mv-two-step.v0.json +28 -0
- package/contracts/template-brand-contract.olympus.v0.json +27 -0
- package/contracts/template-brand-contract.shared-commerce.v0.json +190 -0
- package/contracts/template-brand-contract.shop-single-step.v0.json +27 -0
- package/contracts/template-brand-contract.shop-three-step.v0.json +29 -0
- package/contracts/template-slot-manifest.apollo-mv-single-step.v0.json +14 -0
- package/contracts/template-slot-manifest.apollo.v0.json +12 -0
- package/contracts/template-slot-manifest.demeter.v0.json +30 -0
- package/contracts/template-slot-manifest.olympus-mv-single-step.v0.json +14 -0
- package/contracts/template-slot-manifest.olympus-mv-two-step.v0.json +15 -0
- package/contracts/template-slot-manifest.olympus.v0.json +12 -0
- package/contracts/template-slot-manifest.shared-content-core.v0.json +4254 -0
- package/contracts/template-slot-manifest.shop-single-step.v0.json +47 -0
- package/contracts/template-slot-manifest.shop-three-step.v0.json +33 -0
- package/docs/brand-theme-bridge.md +159 -0
- package/docs/build-packet.md +1300 -0
- package/docs/campaign-build-brief.md +145 -0
- package/docs/campaign-standardization-report.md +329 -0
- package/docs/campaigns-os-build-flow.md +117 -0
- package/docs/design-source-package.md +784 -0
- package/docs/legacy-migration.md +58 -0
- package/docs/migration-sidecar-bundle.md +139 -0
- package/docs/orientation-contract-reference.md +1220 -0
- package/docs/polish-evidence.md +502 -0
- package/docs/qa-and-test-orders.md +1691 -0
- package/docs/release-ledger-authoring-guide.md +274 -0
- package/docs/runtime-readiness.md +211 -0
- package/docs/supported-surface.md +83 -0
- package/docs/versioning.md +55 -0
- package/docs/workflow-findings-sidecar.md +588 -0
- package/package.json +135 -0
- package/prompts/first-build.md +27 -0
- package/prompts/friction-log.md +30 -0
- package/schemas/campaign-build-brief.v1.schema.json +149 -0
- package/schemas/campaign-design-source-package.v0.schema.json +697 -0
- package/schemas/campaign-runtime-assembly-report.v0.schema.json +390 -0
- package/schemas/campaign-runtime-build-context.v0.schema.json +339 -0
- package/schemas/campaign-runtime-build-packet.v0.schema.json +452 -0
- package/schemas/campaign-spec.v4.schema.json +582 -0
- package/schemas/campaigns-os-doctor-output.v0.schema.json +43 -0
- package/schemas/campaigns-os-legacy-migration-inventory.v0.schema.json +112 -0
- package/schemas/campaigns-os-legacy-provisioning-plan.v0.schema.json +38 -0
- package/schemas/campaigns-os-legacy-provisioning-receipt.v0.schema.json +57 -0
- package/schemas/campaigns-os-qa-verdict-sidecar.v0.schema.json +150 -0
- package/schemas/campaigns-os-qa-verdict.v0.schema.json +438 -0
- package/schemas/campaigns-os-release-ledger.v1.schema.json +162 -0
- package/schemas/campaigns-os-run-record.v0.schema.json +343 -0
- package/schemas/campaigns-os-runtime-recipe.v1.schema.json +313 -0
- package/schemas/campaigns-os-sidecar-bundle-conformance.v0.schema.json +78 -0
- package/schemas/campaigns-os-tooling-orientation.v1.schema.json +381 -0
- package/schemas/campaigns-os-workflow-finding.v0.schema.json +134 -0
- package/schemas/source-html-manifest.v0.schema.json +252 -0
- package/skills/next-campaigns-build/SKILL.md +73 -0
- package/skills/next-campaigns-os/SKILL.md +101 -0
- package/skills/next-campaigns-os/references/session-intake.md +160 -0
- package/skills/next-campaigns-os-setup/SKILL.md +22 -0
- package/skills/next-campaigns-polish/SKILL.md +145 -0
- package/skills/next-campaigns-qa/SKILL.md +92 -0
- package/skills.json +56 -0
- package/skills.sh +64 -0
- package/src/adapter-decision-contract.mjs +333 -0
- package/src/brand-theme.mjs +1151 -0
- package/src/browser-launch.mjs +79 -0
- package/src/build-brief.mjs +781 -0
- package/src/built-site-scope.mjs +312 -0
- package/src/campaign-ecosystem.mjs +734 -0
- package/src/campaign-identity.mjs +405 -0
- package/src/campaign-workspace.mjs +127 -0
- package/src/checkpoint-waiver.mjs +302 -0
- package/src/cli.mjs +13442 -0
- package/src/commercial-journey.mjs +1119 -0
- package/src/commercial-parity.mjs +965 -0
- package/src/consent.mjs +347 -0
- package/src/content-residue.mjs +322 -0
- package/src/deadline.mjs +81 -0
- package/src/design-source-package.mjs +2604 -0
- package/src/deviation.mjs +107 -0
- package/src/doctor-check-registry.mjs +49 -0
- package/src/doctor-sidecar.mjs +106 -0
- package/src/finding-cause.mjs +557 -0
- package/src/findings.mjs +326 -0
- package/src/fs-identity.mjs +68 -0
- package/src/gate-actions.mjs +105 -0
- package/src/html-scan.mjs +53 -0
- package/src/install-mode.mjs +272 -0
- package/src/legacy-migration.d.ts +128 -0
- package/src/legacy-migration.mjs +510 -0
- package/src/lifecycle.mjs +338 -0
- package/src/local-proof.mjs +401 -0
- package/src/map-pin-writeback.mjs +210 -0
- package/src/orchestration-stage-contract.mjs +81 -0
- package/src/package-install-fixture.mjs +33 -0
- package/src/page-kit-build-summary.mjs +175 -0
- package/src/page-kit-campaign-config.mjs +57 -0
- package/src/page-kit-sdk-version.mjs +392 -0
- package/src/page-kit-store-profile.mjs +369 -0
- package/src/page-kit-sync.mjs +162 -0
- package/src/polish-browser.mjs +867 -0
- package/src/polish-capture.mjs +1094 -0
- package/src/polish-deadline.mjs +51 -0
- package/src/polish-gate.mjs +739 -0
- package/src/polish-node.mjs +639 -0
- package/src/polish-page-load.mjs +1100 -0
- package/src/private-template-source.mjs +237 -0
- package/src/proof-policy.mjs +82 -0
- package/src/qa-analytics-correctness.mjs +307 -0
- package/src/qa-analytics-errors.mjs +38 -0
- package/src/qa-analytics-parity.mjs +699 -0
- package/src/qa-binding-evidence.mjs +140 -0
- package/src/qa-browser.mjs +6608 -0
- package/src/qa-cart-entry.mjs +406 -0
- package/src/qa-commercial-parity.mjs +641 -0
- package/src/qa-node.mjs +3620 -0
- package/src/qa-order-bump.mjs +381 -0
- package/src/qa-parity-capture.mjs +428 -0
- package/src/qa-parity-fixture.mjs +359 -0
- package/src/qa-publish.mjs +362 -0
- package/src/qa-purchase-data-layer.mjs +263 -0
- package/src/qa-route-probe.mjs +272 -0
- package/src/qa-sidecar.mjs +188 -0
- package/src/qa-test-order-topology.mjs +207 -0
- package/src/qa-url-privacy.mjs +13 -0
- package/src/qa-verdict-discovery.mjs +192 -0
- package/src/qa-verdict-publish.mjs +105 -0
- package/src/qa-verdict.mjs +287 -0
- package/src/remit.mjs +388 -0
- package/src/repo-scan.mjs +83 -0
- package/src/route-identity.mjs +133 -0
- package/src/run-record-closeout.mjs +229 -0
- package/src/run-record.mjs +839 -0
- package/src/run-session.mjs +226 -0
- package/src/runtime-state-ignore.mjs +113 -0
- package/src/sdk-attribute-index.mjs +212 -0
- package/src/sdk-markup.mjs +358 -0
- package/src/sdk-meta-tags.mjs +52 -0
- package/src/shell-token.mjs +7 -0
- package/src/sidecar-bundle.mjs +399 -0
- package/src/source-asset-crawl.mjs +469 -0
- package/src/source-html-intake.mjs +627 -0
- package/src/source-html-manifest.mjs +276 -0
- package/src/source-prep.mjs +284 -0
- package/src/spec-derive-store.mjs +431 -0
- package/src/spec-derive.mjs +514 -0
- package/src/spec-fetch.mjs +66 -0
- package/src/spec-hash.mjs +48 -0
- package/src/spec-identity.mjs +27 -0
- package/src/stage-ledger.mjs +509 -0
- package/src/standardization-report.mjs +1297 -0
- package/src/template-brand-contract.mjs +473 -0
- package/src/template-freshness.mjs +196 -0
- package/src/template-reference.mjs +81 -0
- package/src/template-slot-manifest.mjs +150 -0
- package/src/text-safety.mjs +62 -0
- package/src/theme-gate.mjs +185 -0
- package/src/upsell-selector-scope.mjs +299 -0
|
@@ -0,0 +1,4254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "template-slot-manifest/v0",
|
|
3
|
+
"kind": "shared-content-core",
|
|
4
|
+
"description": "Shared content-slot core for the certified starter-template families. Every family's flat page frontmatter must stay a subset of this core plus its family overlay (CI: scripts/check-slot-manifest.mjs). Slots carry semantic descriptions, length bands, source policies, and proof/urgency flags so producers (copy-gen, image-gen) and the doctor share one contract.",
|
|
5
|
+
"provenance": {
|
|
6
|
+
"derived_from": "NextCommerceCo/campaign-cart-starter-templates src/<family>/*.html frontmatter",
|
|
7
|
+
"derived_at": "2026-07-22",
|
|
8
|
+
"note": "Includes article_rating_text and urgency-conditional defaults from the proof-guards template PR (starter-templates #112)."
|
|
9
|
+
},
|
|
10
|
+
"non_family_dirs": {
|
|
11
|
+
"description": "src/ directories in the starter-templates checkout that are NOT template families (no manifest required). Anything else without a family manifest fails the CI subset guard.",
|
|
12
|
+
"dirs": [
|
|
13
|
+
"landing"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"source_policies": {
|
|
17
|
+
"generated": "Producer-filled (copy-gen/image-gen) from the brief payload and slot contract. Claims must trace to the claims whitelist or proof_assets.",
|
|
18
|
+
"merchant_asset_required": "Real merchant-supplied data or asset (review data, UGC, byline identity, product photography). Never generated; blank means the surface's guarded chrome stays absent (photo-less/section-absent variant).",
|
|
19
|
+
"spec_truth": "Copied verbatim from CampaignSpec/offer/store data (prices, guarantee, shipping, routes). Never composed by a producer (hard rule 5).",
|
|
20
|
+
"brand": "Merchant brand asset resolved via the template brand contract (logos, brand tokens).",
|
|
21
|
+
"template_static": "Template-owned chrome. Assembly never touches it."
|
|
22
|
+
},
|
|
23
|
+
"flags": {
|
|
24
|
+
"needs_merchant_input_able": "When required input is missing, the producer routes this slot to needs_merchant_input instead of inventing a value; the builder UX (attestation/click-wrap lane) resolves it before publish.",
|
|
25
|
+
"proof_surface": "Slot renders proof (counts, ratings, reviews, UGC, identity). Content is governed by the negative-corpus anti-pattern classes; proof_modality mirrors the proof_assets modality vocabulary.",
|
|
26
|
+
"enabled_by_verified_urgency": "Urgency chrome (countdown/sell-out) renders only when the slot is non-empty AND the value comes from offer.urgency with verified:true. The doctor blocks rendered urgency without verified offer urgency."
|
|
27
|
+
},
|
|
28
|
+
"pages": {
|
|
29
|
+
"presell": {
|
|
30
|
+
"sections": [
|
|
31
|
+
{
|
|
32
|
+
"section": "main",
|
|
33
|
+
"slots": [
|
|
34
|
+
{
|
|
35
|
+
"key": "page_layout",
|
|
36
|
+
"kind": "meta",
|
|
37
|
+
"role": "page_meta",
|
|
38
|
+
"owner": "template",
|
|
39
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
40
|
+
"source_policy": "template_static"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"key": "title",
|
|
44
|
+
"kind": "meta",
|
|
45
|
+
"role": "meta_title",
|
|
46
|
+
"description": "HTML page <title> (browser tab, history, social share). Part of the copy slot set: fill alongside article_title or demo residue ships in the tab title.",
|
|
47
|
+
"source_policy": "generated",
|
|
48
|
+
"length_band_chars": {
|
|
49
|
+
"min": 14,
|
|
50
|
+
"max": 45
|
|
51
|
+
},
|
|
52
|
+
"demo_value": "10 Reasons Why You Need This"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"key": "page_type",
|
|
56
|
+
"kind": "meta",
|
|
57
|
+
"role": "page_meta",
|
|
58
|
+
"owner": "template",
|
|
59
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
60
|
+
"source_policy": "template_static"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"key": "styles",
|
|
64
|
+
"kind": "meta",
|
|
65
|
+
"role": "page_meta",
|
|
66
|
+
"owner": "template",
|
|
67
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
68
|
+
"source_policy": "template_static"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"key": "scripts",
|
|
72
|
+
"kind": "meta",
|
|
73
|
+
"role": "page_meta",
|
|
74
|
+
"owner": "template",
|
|
75
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
76
|
+
"source_policy": "template_static"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"key": "article_title",
|
|
80
|
+
"kind": "copy",
|
|
81
|
+
"role": "headline",
|
|
82
|
+
"description": "Advertorial H1 \u2014 the hook of the persuasion arc. Winning presell hooks combine pain + specificity (+ credibility only when real proof exists).",
|
|
83
|
+
"source_policy": "generated",
|
|
84
|
+
"length_band_chars": {
|
|
85
|
+
"min": 36,
|
|
86
|
+
"max": 84
|
|
87
|
+
},
|
|
88
|
+
"demo_value": "10 Reasons Why Thousands Are Switching To This Every Morning"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"key": "article_subtitle",
|
|
92
|
+
"kind": "copy",
|
|
93
|
+
"role": "body",
|
|
94
|
+
"description": "Bold standfirst paragraph under the H1: expands the hook into the reader's felt problem and promises the payoff of reading on.",
|
|
95
|
+
"source_policy": "generated",
|
|
96
|
+
"length_band_chars": {
|
|
97
|
+
"min": 68,
|
|
98
|
+
"max": 218
|
|
99
|
+
},
|
|
100
|
+
"demo_value": "If you've been struggling with low energy, brain fog, or sluggish mornings, this might be the most i"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"key": "author_name",
|
|
104
|
+
"kind": "copy",
|
|
105
|
+
"role": "identity",
|
|
106
|
+
"description": "Byline author display name. Must be a real, authorized identity supplied by the merchant brief \u2014 never invented (negative-corpus anti-pattern 3). Empty \u2192 the byline row does not render.",
|
|
107
|
+
"source_policy": "merchant_asset_required",
|
|
108
|
+
"length_band_chars": {
|
|
109
|
+
"min": 7,
|
|
110
|
+
"max": 28
|
|
111
|
+
},
|
|
112
|
+
"demo_value": "Sarah Mitchell",
|
|
113
|
+
"proof_surface": true,
|
|
114
|
+
"proof_modality": "byline",
|
|
115
|
+
"needs_merchant_input_able": true
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"key": "author_publication",
|
|
119
|
+
"kind": "copy",
|
|
120
|
+
"role": "identity",
|
|
121
|
+
"description": "Publication/outlet name in the byline row. Same identity rules as author_name: real and authorized or absent.",
|
|
122
|
+
"source_policy": "merchant_asset_required",
|
|
123
|
+
"length_band_chars": {
|
|
124
|
+
"min": 8,
|
|
125
|
+
"max": 32
|
|
126
|
+
},
|
|
127
|
+
"demo_value": "Wellness Insider",
|
|
128
|
+
"proof_surface": true,
|
|
129
|
+
"proof_modality": "byline",
|
|
130
|
+
"needs_merchant_input_able": true
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"key": "author_date",
|
|
134
|
+
"kind": "copy",
|
|
135
|
+
"role": "micro",
|
|
136
|
+
"description": "Human-readable article 'Updated' date, e.g. 'March 15, 2026'. Producers fill via the {{PUBLISH_DATE}} harness token.",
|
|
137
|
+
"source_policy": "generated",
|
|
138
|
+
"length_band_chars": {
|
|
139
|
+
"min": 6,
|
|
140
|
+
"max": 25
|
|
141
|
+
},
|
|
142
|
+
"demo_value": "March 15, 2026"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"key": "read_time",
|
|
146
|
+
"kind": "copy",
|
|
147
|
+
"role": "micro",
|
|
148
|
+
"description": "Estimated read-time chip, e.g. '6 min read'. Derive from actual article length.",
|
|
149
|
+
"source_policy": "generated",
|
|
150
|
+
"length_band_chars": {
|
|
151
|
+
"min": 4,
|
|
152
|
+
"max": 18
|
|
153
|
+
},
|
|
154
|
+
"demo_value": "6 min read"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"key": "promo_headline",
|
|
158
|
+
"kind": "copy",
|
|
159
|
+
"role": "micro",
|
|
160
|
+
"description": "Top promo-bar sale name, e.g. 'SPRING SALE'. Offer framing copied from spec/offer data, not invented.",
|
|
161
|
+
"source_policy": "spec_truth",
|
|
162
|
+
"length_band_chars": {
|
|
163
|
+
"min": 4,
|
|
164
|
+
"max": 20
|
|
165
|
+
},
|
|
166
|
+
"demo_value": "SPRING SALE"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"key": "promo_subtext",
|
|
170
|
+
"kind": "copy",
|
|
171
|
+
"role": "micro",
|
|
172
|
+
"description": "Top promo-bar offer line, e.g. 'SAVE 20% OFF + FREE SHIPPING'. Verbatim offer terms from spec truth.",
|
|
173
|
+
"source_policy": "spec_truth",
|
|
174
|
+
"length_band_chars": {
|
|
175
|
+
"min": 11,
|
|
176
|
+
"max": 50
|
|
177
|
+
},
|
|
178
|
+
"demo_value": "SAVE 20% OFF + FREE SHIPPING"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"key": "reason_1_tag",
|
|
182
|
+
"kind": "copy",
|
|
183
|
+
"role": "micro",
|
|
184
|
+
"description": "Category chip on reason 1's image card (short, may carry an emoji).",
|
|
185
|
+
"source_policy": "generated",
|
|
186
|
+
"length_band_chars": {
|
|
187
|
+
"min": 6,
|
|
188
|
+
"max": 29
|
|
189
|
+
},
|
|
190
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"key": "reason_1_heading",
|
|
194
|
+
"kind": "copy",
|
|
195
|
+
"role": "headline",
|
|
196
|
+
"description": "Heading for reason 1. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
197
|
+
"source_policy": "generated",
|
|
198
|
+
"length_band_chars": {
|
|
199
|
+
"min": 22,
|
|
200
|
+
"max": 50
|
|
201
|
+
},
|
|
202
|
+
"demo_value": "It Works From the Very First Morning"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"key": "reason_1_body",
|
|
206
|
+
"kind": "copy",
|
|
207
|
+
"role": "body",
|
|
208
|
+
"description": "Body copy for reason 1. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
209
|
+
"source_policy": "generated",
|
|
210
|
+
"length_band_chars": {
|
|
211
|
+
"min": 94,
|
|
212
|
+
"max": 302
|
|
213
|
+
},
|
|
214
|
+
"demo_value": "Unlike other supplements that take weeks to \\\"build up\\\", most users report feeling a noticeable dif"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"key": "reason_1_image",
|
|
218
|
+
"kind": "image",
|
|
219
|
+
"role": "image",
|
|
220
|
+
"description": "Illustration for reason 1. AI-generated lifestyle imagery from merchant references (D20).",
|
|
221
|
+
"source_policy": "generated"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"key": "reason_2_tag",
|
|
225
|
+
"kind": "copy",
|
|
226
|
+
"role": "micro",
|
|
227
|
+
"description": "Category chip on reason 2's image card (short, may carry an emoji).",
|
|
228
|
+
"source_policy": "generated",
|
|
229
|
+
"length_band_chars": {
|
|
230
|
+
"min": 6,
|
|
231
|
+
"max": 29
|
|
232
|
+
},
|
|
233
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"key": "reason_2_heading",
|
|
237
|
+
"kind": "copy",
|
|
238
|
+
"role": "headline",
|
|
239
|
+
"description": "Heading for reason 2. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
240
|
+
"source_policy": "generated",
|
|
241
|
+
"length_band_chars": {
|
|
242
|
+
"min": 20,
|
|
243
|
+
"max": 48
|
|
244
|
+
},
|
|
245
|
+
"demo_value": "Doctor-Formulated for Real Results"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"key": "reason_2_body",
|
|
249
|
+
"kind": "copy",
|
|
250
|
+
"role": "body",
|
|
251
|
+
"description": "Body copy for reason 2. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
252
|
+
"source_policy": "generated",
|
|
253
|
+
"length_band_chars": {
|
|
254
|
+
"min": 80,
|
|
255
|
+
"max": 258
|
|
256
|
+
},
|
|
257
|
+
"demo_value": "Every ingredient was chosen by a board-certified physician, not a marketing team. The formula target"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"key": "reason_2_image",
|
|
261
|
+
"kind": "image",
|
|
262
|
+
"role": "image",
|
|
263
|
+
"description": "Illustration for reason 2. AI-generated lifestyle imagery from merchant references (D20).",
|
|
264
|
+
"source_policy": "generated"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"key": "reason_3_tag",
|
|
268
|
+
"kind": "copy",
|
|
269
|
+
"role": "micro",
|
|
270
|
+
"description": "Category chip on reason 3's image card (short, may carry an emoji).",
|
|
271
|
+
"source_policy": "generated",
|
|
272
|
+
"length_band_chars": {
|
|
273
|
+
"min": 6,
|
|
274
|
+
"max": 29
|
|
275
|
+
},
|
|
276
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"key": "reason_3_heading",
|
|
280
|
+
"kind": "copy",
|
|
281
|
+
"role": "headline",
|
|
282
|
+
"description": "Heading for reason 3. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
283
|
+
"source_policy": "generated",
|
|
284
|
+
"length_band_chars": {
|
|
285
|
+
"min": 14,
|
|
286
|
+
"max": 34
|
|
287
|
+
},
|
|
288
|
+
"demo_value": "Zero Jitters, Zero Crash"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"key": "reason_3_body",
|
|
292
|
+
"kind": "copy",
|
|
293
|
+
"role": "body",
|
|
294
|
+
"description": "Body copy for reason 3. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
295
|
+
"source_policy": "generated",
|
|
296
|
+
"length_band_chars": {
|
|
297
|
+
"min": 87,
|
|
298
|
+
"max": 278
|
|
299
|
+
},
|
|
300
|
+
"demo_value": "You get sustained, clean energy all morning long \u2014 no spike, no 2pm crash. The patented slow-release"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"key": "reason_3_image",
|
|
304
|
+
"kind": "image",
|
|
305
|
+
"role": "image",
|
|
306
|
+
"description": "Illustration for reason 3. AI-generated lifestyle imagery from merchant references (D20).",
|
|
307
|
+
"source_policy": "generated"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"key": "reason_4_tag",
|
|
311
|
+
"kind": "copy",
|
|
312
|
+
"role": "micro",
|
|
313
|
+
"description": "Category chip on reason 4's image card (short, may carry an emoji).",
|
|
314
|
+
"source_policy": "generated",
|
|
315
|
+
"length_band_chars": {
|
|
316
|
+
"min": 6,
|
|
317
|
+
"max": 29
|
|
318
|
+
},
|
|
319
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"key": "reason_4_heading",
|
|
323
|
+
"kind": "copy",
|
|
324
|
+
"role": "headline",
|
|
325
|
+
"description": "Heading for reason 4. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
326
|
+
"source_policy": "generated",
|
|
327
|
+
"length_band_chars": {
|
|
328
|
+
"min": 23,
|
|
329
|
+
"max": 53
|
|
330
|
+
},
|
|
331
|
+
"demo_value": "Backed by Over 1,200 Five-Star Reviews"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"key": "reason_4_body",
|
|
335
|
+
"kind": "copy",
|
|
336
|
+
"role": "body",
|
|
337
|
+
"description": "Body copy for reason 4. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
338
|
+
"source_policy": "generated",
|
|
339
|
+
"length_band_chars": {
|
|
340
|
+
"min": 78,
|
|
341
|
+
"max": 251
|
|
342
|
+
},
|
|
343
|
+
"demo_value": "Real customers. Real results. Our verified review platform doesn't allow purchased reviews \u2014 every r"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"key": "reason_4_image",
|
|
347
|
+
"kind": "image",
|
|
348
|
+
"role": "image",
|
|
349
|
+
"description": "Illustration for reason 4. AI-generated lifestyle imagery from merchant references (D20).",
|
|
350
|
+
"source_policy": "generated"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"key": "reason_4_link_text",
|
|
354
|
+
"kind": "copy",
|
|
355
|
+
"role": "cta",
|
|
356
|
+
"description": "Optional inline link label under reason 4 (renders only when non-empty).",
|
|
357
|
+
"source_policy": "generated",
|
|
358
|
+
"length_band_chars": {
|
|
359
|
+
"min": 9,
|
|
360
|
+
"max": 32
|
|
361
|
+
},
|
|
362
|
+
"demo_value": "Read the reviews \u2192"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"key": "reason_5_tag",
|
|
366
|
+
"kind": "copy",
|
|
367
|
+
"role": "micro",
|
|
368
|
+
"description": "Category chip on reason 5's image card (short, may carry an emoji).",
|
|
369
|
+
"source_policy": "generated",
|
|
370
|
+
"length_band_chars": {
|
|
371
|
+
"min": 6,
|
|
372
|
+
"max": 29
|
|
373
|
+
},
|
|
374
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"key": "reason_5_heading",
|
|
378
|
+
"kind": "copy",
|
|
379
|
+
"role": "headline",
|
|
380
|
+
"description": "Heading for reason 5. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
381
|
+
"source_policy": "generated",
|
|
382
|
+
"length_band_chars": {
|
|
383
|
+
"min": 20,
|
|
384
|
+
"max": 48
|
|
385
|
+
},
|
|
386
|
+
"demo_value": "Made in an FDA-Registered Facility"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"key": "reason_5_body",
|
|
390
|
+
"kind": "copy",
|
|
391
|
+
"role": "body",
|
|
392
|
+
"description": "Body copy for reason 5. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
393
|
+
"source_policy": "generated",
|
|
394
|
+
"length_band_chars": {
|
|
395
|
+
"min": 77,
|
|
396
|
+
"max": 246
|
|
397
|
+
},
|
|
398
|
+
"demo_value": "Every batch is third-party lab tested for purity, potency, and safety. We publish our certificates o"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"key": "reason_5_image",
|
|
402
|
+
"kind": "image",
|
|
403
|
+
"role": "image",
|
|
404
|
+
"description": "Illustration for reason 5. AI-generated lifestyle imagery from merchant references (D20).",
|
|
405
|
+
"source_policy": "generated"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"key": "reason_5_link_text",
|
|
409
|
+
"kind": "copy",
|
|
410
|
+
"role": "cta",
|
|
411
|
+
"description": "Optional inline link label under reason 5 (renders only when non-empty).",
|
|
412
|
+
"source_policy": "generated",
|
|
413
|
+
"length_band_chars": {
|
|
414
|
+
"min": 9,
|
|
415
|
+
"max": 32
|
|
416
|
+
},
|
|
417
|
+
"demo_value": "View lab results \u2192"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"key": "reason_6_tag",
|
|
421
|
+
"kind": "copy",
|
|
422
|
+
"role": "micro",
|
|
423
|
+
"description": "Category chip on reason 6's image card (short, may carry an emoji).",
|
|
424
|
+
"source_policy": "generated",
|
|
425
|
+
"length_band_chars": {
|
|
426
|
+
"min": 6,
|
|
427
|
+
"max": 29
|
|
428
|
+
},
|
|
429
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"key": "reason_6_heading",
|
|
433
|
+
"kind": "copy",
|
|
434
|
+
"role": "headline",
|
|
435
|
+
"description": "Heading for reason 6. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
436
|
+
"source_policy": "generated",
|
|
437
|
+
"length_band_chars": {
|
|
438
|
+
"min": 14,
|
|
439
|
+
"max": 34
|
|
440
|
+
},
|
|
441
|
+
"demo_value": "Ships Free, Arrives Fast"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"key": "reason_6_body",
|
|
445
|
+
"kind": "copy",
|
|
446
|
+
"role": "body",
|
|
447
|
+
"description": "Body copy for reason 6. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
448
|
+
"source_policy": "generated",
|
|
449
|
+
"length_band_chars": {
|
|
450
|
+
"min": 70,
|
|
451
|
+
"max": 222
|
|
452
|
+
},
|
|
453
|
+
"demo_value": "All US orders ship free, with most arriving in 2\u20134 business days. We partner with FedEx and USPS for"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"key": "reason_6_image",
|
|
457
|
+
"kind": "image",
|
|
458
|
+
"role": "image",
|
|
459
|
+
"description": "Illustration for reason 6. AI-generated lifestyle imagery from merchant references (D20).",
|
|
460
|
+
"source_policy": "generated"
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"key": "reason_6_link_text",
|
|
464
|
+
"kind": "copy",
|
|
465
|
+
"role": "cta",
|
|
466
|
+
"description": "Optional inline link label under reason 6 (renders only when non-empty).",
|
|
467
|
+
"source_policy": "generated",
|
|
468
|
+
"length_band_chars": {
|
|
469
|
+
"min": 10,
|
|
470
|
+
"max": 34
|
|
471
|
+
},
|
|
472
|
+
"demo_value": "See shipping info \u2192"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"key": "reason_7_tag",
|
|
476
|
+
"kind": "copy",
|
|
477
|
+
"role": "micro",
|
|
478
|
+
"description": "Category chip on reason 7's image card (short, may carry an emoji).",
|
|
479
|
+
"source_policy": "generated",
|
|
480
|
+
"length_band_chars": {
|
|
481
|
+
"min": 6,
|
|
482
|
+
"max": 29
|
|
483
|
+
},
|
|
484
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"key": "reason_7_heading",
|
|
488
|
+
"kind": "copy",
|
|
489
|
+
"role": "headline",
|
|
490
|
+
"description": "Heading for reason 7. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
491
|
+
"source_policy": "generated",
|
|
492
|
+
"length_band_chars": {
|
|
493
|
+
"min": 22,
|
|
494
|
+
"max": 50
|
|
495
|
+
},
|
|
496
|
+
"demo_value": "Thousands Save With Subscribe & Save"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"key": "reason_7_body",
|
|
500
|
+
"kind": "copy",
|
|
501
|
+
"role": "body",
|
|
502
|
+
"description": "Body copy for reason 7. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
503
|
+
"source_policy": "generated",
|
|
504
|
+
"length_band_chars": {
|
|
505
|
+
"min": 80,
|
|
506
|
+
"max": 254
|
|
507
|
+
},
|
|
508
|
+
"demo_value": "Join our subscribe & save program and get 20% off every order, free priority shipping, and the flexi"
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"key": "reason_7_image",
|
|
512
|
+
"kind": "image",
|
|
513
|
+
"role": "image",
|
|
514
|
+
"description": "Illustration for reason 7. AI-generated lifestyle imagery from merchant references (D20).",
|
|
515
|
+
"source_policy": "generated"
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"key": "reason_7_link_text",
|
|
519
|
+
"kind": "copy",
|
|
520
|
+
"role": "cta",
|
|
521
|
+
"description": "Optional inline link label under reason 7 (renders only when non-empty).",
|
|
522
|
+
"source_policy": "generated",
|
|
523
|
+
"length_band_chars": {
|
|
524
|
+
"min": 14,
|
|
525
|
+
"max": 49
|
|
526
|
+
},
|
|
527
|
+
"demo_value": "Learn about subscriptions \u2192"
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"key": "reason_8_tag",
|
|
531
|
+
"kind": "copy",
|
|
532
|
+
"role": "micro",
|
|
533
|
+
"description": "Category chip on reason 8's image card (short, may carry an emoji).",
|
|
534
|
+
"source_policy": "generated",
|
|
535
|
+
"length_band_chars": {
|
|
536
|
+
"min": 6,
|
|
537
|
+
"max": 29
|
|
538
|
+
},
|
|
539
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"key": "reason_8_heading",
|
|
543
|
+
"kind": "copy",
|
|
544
|
+
"role": "headline",
|
|
545
|
+
"description": "Heading for reason 8. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
546
|
+
"source_policy": "generated",
|
|
547
|
+
"length_band_chars": {
|
|
548
|
+
"min": 15,
|
|
549
|
+
"max": 35
|
|
550
|
+
},
|
|
551
|
+
"demo_value": "100% Money-Back Guarantee"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"key": "reason_8_body",
|
|
555
|
+
"kind": "copy",
|
|
556
|
+
"role": "body",
|
|
557
|
+
"description": "Body copy for reason 8. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
558
|
+
"source_policy": "generated",
|
|
559
|
+
"length_band_chars": {
|
|
560
|
+
"min": 88,
|
|
561
|
+
"max": 283
|
|
562
|
+
},
|
|
563
|
+
"demo_value": "We're so confident you'll love it, we offer a full 60-day money-back guarantee. If you're not comple"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"key": "reason_8_image",
|
|
567
|
+
"kind": "image",
|
|
568
|
+
"role": "image",
|
|
569
|
+
"description": "Illustration for reason 8. AI-generated lifestyle imagery from merchant references (D20).",
|
|
570
|
+
"source_policy": "generated"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"key": "reason_8_link_text",
|
|
574
|
+
"kind": "copy",
|
|
575
|
+
"role": "cta",
|
|
576
|
+
"description": "Optional inline link label under reason 8 (renders only when non-empty).",
|
|
577
|
+
"source_policy": "generated",
|
|
578
|
+
"length_band_chars": {
|
|
579
|
+
"min": 12,
|
|
580
|
+
"max": 41
|
|
581
|
+
},
|
|
582
|
+
"demo_value": "See guarantee details \u2192"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"key": "reason_9_tag",
|
|
586
|
+
"kind": "copy",
|
|
587
|
+
"role": "micro",
|
|
588
|
+
"description": "Category chip on reason 9's image card (short, may carry an emoji).",
|
|
589
|
+
"source_policy": "generated",
|
|
590
|
+
"length_band_chars": {
|
|
591
|
+
"min": 6,
|
|
592
|
+
"max": 29
|
|
593
|
+
},
|
|
594
|
+
"demo_value": "\u26a1 All-Day Energy"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"key": "reason_9_heading",
|
|
598
|
+
"kind": "copy",
|
|
599
|
+
"role": "headline",
|
|
600
|
+
"description": "Heading for reason 9. Reasons follow the persuasion arc; proof-flavored reasons (reviews, certifications, counts) may claim ONLY brief-sourced, real proof.",
|
|
601
|
+
"source_policy": "generated",
|
|
602
|
+
"length_band_chars": {
|
|
603
|
+
"min": 20,
|
|
604
|
+
"max": 48
|
|
605
|
+
},
|
|
606
|
+
"demo_value": "Trusted by 50,000+ Happy Customers"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"key": "reason_9_body",
|
|
610
|
+
"kind": "copy",
|
|
611
|
+
"role": "body",
|
|
612
|
+
"description": "Body copy for reason 9. Prefer lived-moment embeds over abstract claims; every count/study/expert reference must trace to proof_assets or the claims whitelist.",
|
|
613
|
+
"source_policy": "generated",
|
|
614
|
+
"length_band_chars": {
|
|
615
|
+
"min": 76,
|
|
616
|
+
"max": 245
|
|
617
|
+
},
|
|
618
|
+
"demo_value": "We've helped over 50,000 people reclaim their mornings. Join a growing community of people who've ma"
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
"key": "reason_9_image",
|
|
622
|
+
"kind": "image",
|
|
623
|
+
"role": "image",
|
|
624
|
+
"description": "Illustration for reason 9. AI-generated lifestyle imagery from merchant references (D20).",
|
|
625
|
+
"source_policy": "generated"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"key": "reason_9_link_text",
|
|
629
|
+
"kind": "copy",
|
|
630
|
+
"role": "cta",
|
|
631
|
+
"description": "Optional inline link label under reason 9 (renders only when non-empty).",
|
|
632
|
+
"source_policy": "generated",
|
|
633
|
+
"length_band_chars": {
|
|
634
|
+
"min": 11,
|
|
635
|
+
"max": 40
|
|
636
|
+
},
|
|
637
|
+
"demo_value": "See customer stories \u2192"
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"key": "cta_heading",
|
|
641
|
+
"kind": "copy",
|
|
642
|
+
"role": "headline",
|
|
643
|
+
"description": "'Reason #10' bridge heading that turns the article toward the offer. Savings/scarcity wording only when backed by offer data.",
|
|
644
|
+
"source_policy": "generated",
|
|
645
|
+
"length_band_chars": {
|
|
646
|
+
"min": 42,
|
|
647
|
+
"max": 98
|
|
648
|
+
},
|
|
649
|
+
"demo_value": "Reason #10 \u2014 Right Now, You Can Get It at the Lowest Price of the Year"
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
"key": "cta_body",
|
|
653
|
+
"kind": "copy",
|
|
654
|
+
"role": "body",
|
|
655
|
+
"description": "Short paragraph under cta_heading setting up the offer box. No synthetic scarcity (anti-pattern 10).",
|
|
656
|
+
"source_policy": "generated",
|
|
657
|
+
"length_band_chars": {
|
|
658
|
+
"min": 70,
|
|
659
|
+
"max": 226
|
|
660
|
+
},
|
|
661
|
+
"demo_value": "We partnered directly with the manufacturer to secure an exclusive discount for our readers. But sto"
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"key": "offer_badge",
|
|
665
|
+
"kind": "copy",
|
|
666
|
+
"role": "micro",
|
|
667
|
+
"description": "Badge pinned to the offer box border, e.g. the sale name. Spec-truth offer framing.",
|
|
668
|
+
"source_policy": "spec_truth",
|
|
669
|
+
"length_band_chars": {
|
|
670
|
+
"min": 4,
|
|
671
|
+
"max": 20
|
|
672
|
+
},
|
|
673
|
+
"demo_value": "SPRING SALE"
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"key": "offer_label",
|
|
677
|
+
"kind": "copy",
|
|
678
|
+
"role": "micro",
|
|
679
|
+
"description": "Small overline label inside the offer box between divider rules (all-caps).",
|
|
680
|
+
"source_policy": "generated",
|
|
681
|
+
"length_band_chars": {
|
|
682
|
+
"min": 5,
|
|
683
|
+
"max": 23
|
|
684
|
+
},
|
|
685
|
+
"demo_value": "ALL CAPS TEXT"
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
"key": "offer_headline",
|
|
689
|
+
"kind": "copy",
|
|
690
|
+
"role": "headline",
|
|
691
|
+
"description": "Offer headline line 1 (uppercase), e.g. 'UP TO 60% OFF FOR'. Discount figure must be verbatim spec truth.",
|
|
692
|
+
"source_policy": "spec_truth",
|
|
693
|
+
"length_band_chars": {
|
|
694
|
+
"min": 10,
|
|
695
|
+
"max": 24
|
|
696
|
+
},
|
|
697
|
+
"demo_value": "UP TO 60% OFF FOR"
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"key": "offer_headline_red",
|
|
701
|
+
"kind": "copy",
|
|
702
|
+
"role": "headline",
|
|
703
|
+
"description": "Offer headline line 2, rendered red (uppercase). Time-limited wording only from a verified promotion window.",
|
|
704
|
+
"source_policy": "spec_truth",
|
|
705
|
+
"length_band_chars": {
|
|
706
|
+
"min": 11,
|
|
707
|
+
"max": 27
|
|
708
|
+
},
|
|
709
|
+
"demo_value": "A LIMITED TIME ONLY"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"key": "offer_subheadline",
|
|
713
|
+
"kind": "copy",
|
|
714
|
+
"role": "body",
|
|
715
|
+
"description": "Supporting sentence under the offer headline. No invented demand/stock claims.",
|
|
716
|
+
"source_policy": "generated",
|
|
717
|
+
"length_band_chars": {
|
|
718
|
+
"min": 34,
|
|
719
|
+
"max": 110
|
|
720
|
+
},
|
|
721
|
+
"demo_value": "This limited-time deal is in high demand and stock keeps selling out."
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
"key": "cta_text",
|
|
725
|
+
"kind": "copy",
|
|
726
|
+
"role": "cta",
|
|
727
|
+
"description": "CTA button label, e.g. 'GET 60% OFF'. Discount figures verbatim from offer data.",
|
|
728
|
+
"source_policy": "spec_truth",
|
|
729
|
+
"length_band_chars": {
|
|
730
|
+
"min": 6,
|
|
731
|
+
"max": 20
|
|
732
|
+
},
|
|
733
|
+
"demo_value": "GET 60% OFF"
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
"key": "next_url",
|
|
737
|
+
"kind": "link",
|
|
738
|
+
"role": "routing",
|
|
739
|
+
"description": "Funnel route the CTA advances to (page-kit route, usually landing or checkout). Owned by the Build Packet/CampaignSpec funnel topology.",
|
|
740
|
+
"source_policy": "spec_truth"
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
"key": "product_image",
|
|
744
|
+
"kind": "image",
|
|
745
|
+
"role": "image",
|
|
746
|
+
"description": "Offer-box product image. Merchant-supplied product photography \u2014 product imagery is supplied, not generated (D20).",
|
|
747
|
+
"source_policy": "merchant_asset_required"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"key": "countdown_label",
|
|
751
|
+
"kind": "copy",
|
|
752
|
+
"role": "micro",
|
|
753
|
+
"description": "Label before the ticking countdown, e.g. 'OFFER ENDS IN:'. The countdown block renders ONLY when this is non-empty, and it may be filled ONLY from verified offer urgency (a real promotion window). Unverified \u2192 leave empty (hard rule 4).",
|
|
754
|
+
"source_policy": "spec_truth",
|
|
755
|
+
"length_band_chars": {
|
|
756
|
+
"min": 6,
|
|
757
|
+
"max": 27
|
|
758
|
+
},
|
|
759
|
+
"demo_value": "DEAL ENDING IN:",
|
|
760
|
+
"urgency": true,
|
|
761
|
+
"enabled_by_verified_urgency": true
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
"key": "sell_out_text",
|
|
765
|
+
"kind": "copy",
|
|
766
|
+
"role": "micro",
|
|
767
|
+
"description": "LABEL half of the sell-out indicator, e.g. 'Sell-Out Risk:' \u2014 the field name shown to the shopper, not the value. Pairs with sell_out_risk.",
|
|
768
|
+
"source_policy": "spec_truth",
|
|
769
|
+
"length_band_chars": {
|
|
770
|
+
"min": 6,
|
|
771
|
+
"max": 25
|
|
772
|
+
},
|
|
773
|
+
"demo_value": "Sell-Out Risk:",
|
|
774
|
+
"urgency": true,
|
|
775
|
+
"enabled_by_verified_urgency": true
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"key": "sell_out_risk",
|
|
779
|
+
"kind": "copy",
|
|
780
|
+
"role": "micro",
|
|
781
|
+
"description": "VALUE half of the sell-out indicator, e.g. 'High'. The sell-out half of the bar renders ONLY when this is non-empty; fill only from a real inventory signal (anti-pattern 10: scarcity theater).",
|
|
782
|
+
"source_policy": "spec_truth",
|
|
783
|
+
"length_band_chars": {
|
|
784
|
+
"min": 3,
|
|
785
|
+
"max": 8
|
|
786
|
+
},
|
|
787
|
+
"demo_value": "High",
|
|
788
|
+
"urgency": true,
|
|
789
|
+
"enabled_by_verified_urgency": true
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
"key": "shipping_text",
|
|
793
|
+
"kind": "copy",
|
|
794
|
+
"role": "micro",
|
|
795
|
+
"description": "VALUE half of the shipping chip, e.g. 'FREE' \u2014 rendered bold before shipping_label. This is the value, not the label (canonical value-vs-fieldname confusion: do not fill with a shipping promise sentence).",
|
|
796
|
+
"source_policy": "spec_truth",
|
|
797
|
+
"length_band_chars": {
|
|
798
|
+
"min": 3,
|
|
799
|
+
"max": 8
|
|
800
|
+
},
|
|
801
|
+
"demo_value": "FREE"
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
"key": "shipping_label",
|
|
805
|
+
"kind": "copy",
|
|
806
|
+
"role": "micro",
|
|
807
|
+
"description": "LABEL half of the shipping chip, e.g. 'Shipping' \u2014 the field name rendered after shipping_text ('FREE Shipping').",
|
|
808
|
+
"source_policy": "spec_truth",
|
|
809
|
+
"length_band_chars": {
|
|
810
|
+
"min": 3,
|
|
811
|
+
"max": 14
|
|
812
|
+
},
|
|
813
|
+
"demo_value": "Shipping"
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
"key": "guarantee_text",
|
|
817
|
+
"kind": "copy",
|
|
818
|
+
"role": "micro",
|
|
819
|
+
"description": "Guarantee line by the CTA, e.g. '30 Day Money Back Guarantee'. Verbatim guarantee terms from spec truth \u2014 never a composed/rounded number.",
|
|
820
|
+
"source_policy": "spec_truth",
|
|
821
|
+
"length_band_chars": {
|
|
822
|
+
"min": 11,
|
|
823
|
+
"max": 49
|
|
824
|
+
},
|
|
825
|
+
"demo_value": "30 Day Money Back Guarantee"
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"key": "footer_copyright",
|
|
829
|
+
"kind": "copy",
|
|
830
|
+
"role": "micro",
|
|
831
|
+
"description": "Footer copyright line. Uses the merchant legal name ({{YEAR}} harness token supported).",
|
|
832
|
+
"source_policy": "spec_truth",
|
|
833
|
+
"length_band_chars": {
|
|
834
|
+
"min": 12,
|
|
835
|
+
"max": 52
|
|
836
|
+
},
|
|
837
|
+
"demo_value": "Copyright \u00a92026 Next Commerce"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"key": "article_rating_text",
|
|
841
|
+
"kind": "copy",
|
|
842
|
+
"role": "micro",
|
|
843
|
+
"description": "Aggregate rating text beside the star glyphs, e.g. '4.8/5 (1,024 reviews)'. Real review-platform data only \u2014 never composed. Empty \u2192 the star-rating row does not render (the chrome is guarded). The adjacent star glyphs are fixed five-star chrome \u2014 only fill this slot when the real rating rounds to five stars; materially lower ratings need a star-count surface the template does not yet ship (roadmap).",
|
|
844
|
+
"source_policy": "merchant_asset_required",
|
|
845
|
+
"length_band_chars": {
|
|
846
|
+
"min": 9,
|
|
847
|
+
"max": 41
|
|
848
|
+
},
|
|
849
|
+
"demo_value": "[4.8/5 (1,024 reviews)]",
|
|
850
|
+
"proof_surface": true,
|
|
851
|
+
"proof_modality": "rating",
|
|
852
|
+
"needs_merchant_input_able": true
|
|
853
|
+
}
|
|
854
|
+
]
|
|
855
|
+
}
|
|
856
|
+
]
|
|
857
|
+
},
|
|
858
|
+
"landing": {
|
|
859
|
+
"sections": [
|
|
860
|
+
{
|
|
861
|
+
"section": "main",
|
|
862
|
+
"slots": [
|
|
863
|
+
{
|
|
864
|
+
"key": "page_layout",
|
|
865
|
+
"kind": "meta",
|
|
866
|
+
"role": "page_meta",
|
|
867
|
+
"owner": "template",
|
|
868
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
869
|
+
"source_policy": "template_static"
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"key": "title",
|
|
873
|
+
"kind": "meta",
|
|
874
|
+
"role": "meta_title",
|
|
875
|
+
"description": "HTML page <title>. Part of the copy slot set \u2014 pair with hero_1_headline.",
|
|
876
|
+
"source_policy": "generated",
|
|
877
|
+
"length_band_chars": {
|
|
878
|
+
"min": 25,
|
|
879
|
+
"max": 80
|
|
880
|
+
},
|
|
881
|
+
"demo_value": "[Product] \u2014 Fall Asleep Faster, Stay Asleep Longer"
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
"key": "page_type",
|
|
885
|
+
"kind": "meta",
|
|
886
|
+
"role": "page_meta",
|
|
887
|
+
"owner": "template",
|
|
888
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
889
|
+
"source_policy": "template_static"
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"key": "next_url",
|
|
893
|
+
"kind": "link",
|
|
894
|
+
"role": "routing",
|
|
895
|
+
"description": "Funnel route every CTA advances to (usually checkout). Owned by Build Packet/CampaignSpec topology.",
|
|
896
|
+
"source_policy": "spec_truth"
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
"key": "cta_text",
|
|
900
|
+
"kind": "copy",
|
|
901
|
+
"role": "cta",
|
|
902
|
+
"description": "Primary CTA label reused by nav, hero, and section CTAs. Discount figures verbatim from offer data.",
|
|
903
|
+
"source_policy": "spec_truth",
|
|
904
|
+
"length_band_chars": {
|
|
905
|
+
"min": 12,
|
|
906
|
+
"max": 41
|
|
907
|
+
},
|
|
908
|
+
"demo_value": "Claim Your 60% Discount"
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
"key": "guarantee_text",
|
|
912
|
+
"kind": "copy",
|
|
913
|
+
"role": "micro",
|
|
914
|
+
"description": "Guarantee line shown under CTAs. Verbatim guarantee terms from spec truth.",
|
|
915
|
+
"source_policy": "spec_truth",
|
|
916
|
+
"length_band_chars": {
|
|
917
|
+
"min": 11,
|
|
918
|
+
"max": 49
|
|
919
|
+
},
|
|
920
|
+
"demo_value": "30-Day Money-Back Guarantee"
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"key": "nav_logo_image",
|
|
924
|
+
"kind": "image",
|
|
925
|
+
"role": "image",
|
|
926
|
+
"description": "Header logo image.",
|
|
927
|
+
"source_policy": "brand"
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"key": "nav_logo_alt",
|
|
931
|
+
"kind": "alt_text",
|
|
932
|
+
"role": "alt_text",
|
|
933
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
934
|
+
"source_policy": "generated"
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"key": "nav_1_cta_text",
|
|
938
|
+
"kind": "copy",
|
|
939
|
+
"role": "micro",
|
|
940
|
+
"description": "Header anchor-link label.",
|
|
941
|
+
"source_policy": "generated",
|
|
942
|
+
"length_band_chars": {
|
|
943
|
+
"min": 4,
|
|
944
|
+
"max": 20
|
|
945
|
+
},
|
|
946
|
+
"demo_value": "Claim Offer"
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"key": "nav_1_text",
|
|
950
|
+
"kind": "copy",
|
|
951
|
+
"role": "micro",
|
|
952
|
+
"description": "Header anchor-link label.",
|
|
953
|
+
"source_policy": "generated",
|
|
954
|
+
"length_band_chars": {
|
|
955
|
+
"min": 3,
|
|
956
|
+
"max": 14
|
|
957
|
+
},
|
|
958
|
+
"demo_value": "Benefits"
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
"key": "nav_1_url",
|
|
962
|
+
"kind": "link",
|
|
963
|
+
"role": "routing",
|
|
964
|
+
"description": "Header anchor-link target (on-page anchor).",
|
|
965
|
+
"source_policy": "template_static"
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
"key": "nav_1_nav_2_text",
|
|
969
|
+
"kind": "copy",
|
|
970
|
+
"role": "micro",
|
|
971
|
+
"description": "Header anchor-link label.",
|
|
972
|
+
"source_policy": "generated",
|
|
973
|
+
"length_band_chars": {
|
|
974
|
+
"min": 4,
|
|
975
|
+
"max": 20
|
|
976
|
+
},
|
|
977
|
+
"demo_value": "Ingredients"
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"key": "nav_1_nav_2_url",
|
|
981
|
+
"kind": "link",
|
|
982
|
+
"role": "routing",
|
|
983
|
+
"description": "Header anchor-link target (on-page anchor).",
|
|
984
|
+
"source_policy": "template_static"
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"key": "nav_1_nav_3_text",
|
|
988
|
+
"kind": "copy",
|
|
989
|
+
"role": "micro",
|
|
990
|
+
"description": "Header anchor-link label.",
|
|
991
|
+
"source_policy": "generated",
|
|
992
|
+
"length_band_chars": {
|
|
993
|
+
"min": 3,
|
|
994
|
+
"max": 13
|
|
995
|
+
},
|
|
996
|
+
"demo_value": "Reviews"
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"key": "nav_1_nav_3_url",
|
|
1000
|
+
"kind": "link",
|
|
1001
|
+
"role": "routing",
|
|
1002
|
+
"description": "Header anchor-link target (on-page anchor).",
|
|
1003
|
+
"source_policy": "template_static"
|
|
1004
|
+
},
|
|
1005
|
+
{
|
|
1006
|
+
"key": "nav_1_cta_flag",
|
|
1007
|
+
"kind": "image",
|
|
1008
|
+
"role": "chrome",
|
|
1009
|
+
"description": "Template chrome (flag/menu icon) \u2014 template-owned, assembly never touches.",
|
|
1010
|
+
"source_policy": "template_static"
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
"key": "nav_1_cta_flag_alt",
|
|
1014
|
+
"kind": "image",
|
|
1015
|
+
"role": "chrome",
|
|
1016
|
+
"description": "Template chrome (flag/menu icon) \u2014 template-owned, assembly never touches.",
|
|
1017
|
+
"source_policy": "template_static"
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
"key": "nav_1_menu_icon",
|
|
1021
|
+
"kind": "image",
|
|
1022
|
+
"role": "chrome",
|
|
1023
|
+
"description": "Template chrome (flag/menu icon) \u2014 template-owned, assembly never touches.",
|
|
1024
|
+
"source_policy": "template_static"
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"key": "nav_1_menu_icon_alt",
|
|
1028
|
+
"kind": "image",
|
|
1029
|
+
"role": "chrome",
|
|
1030
|
+
"description": "Template chrome (flag/menu icon) \u2014 template-owned, assembly never touches.",
|
|
1031
|
+
"source_policy": "template_static"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"key": "hero_1_hero_image",
|
|
1035
|
+
"kind": "image",
|
|
1036
|
+
"role": "image",
|
|
1037
|
+
"description": "Hero lifestyle image. AI-generated from merchant references (D20).",
|
|
1038
|
+
"source_policy": "generated"
|
|
1039
|
+
},
|
|
1040
|
+
{
|
|
1041
|
+
"key": "hero_1_hero_image_alt",
|
|
1042
|
+
"kind": "alt_text",
|
|
1043
|
+
"role": "alt_text",
|
|
1044
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
1045
|
+
"source_policy": "generated"
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"key": "hero_1_headline",
|
|
1049
|
+
"kind": "copy",
|
|
1050
|
+
"role": "headline",
|
|
1051
|
+
"description": "Primary landing hook (H1). Winning landing hooks combine promise + specificity.",
|
|
1052
|
+
"source_policy": "generated",
|
|
1053
|
+
"length_band_chars": {
|
|
1054
|
+
"min": 25,
|
|
1055
|
+
"max": 59
|
|
1056
|
+
},
|
|
1057
|
+
"demo_value": "Fall Asleep in Minutes \u2014 Wake Up Refreshed"
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
"key": "hero_1_body_text",
|
|
1061
|
+
"kind": "copy",
|
|
1062
|
+
"role": "body",
|
|
1063
|
+
"description": "Hero supporting paragraph. Mechanism/ingredient claims must trace to the claims whitelist.",
|
|
1064
|
+
"source_policy": "generated",
|
|
1065
|
+
"length_band_chars": {
|
|
1066
|
+
"min": 68,
|
|
1067
|
+
"max": 219
|
|
1068
|
+
},
|
|
1069
|
+
"demo_value": "Clinically formulated with Ashwagandha, Magnesium Glycinate & L-Theanine to silence your racing mind"
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"key": "hero_1_review_count",
|
|
1073
|
+
"kind": "copy",
|
|
1074
|
+
"role": "micro",
|
|
1075
|
+
"description": "Hero proof count, e.g. '48,312+ 5-Star Reviews'. Real, sourceable review-platform data only \u2014 invented counts are negative-corpus anti-pattern 1. Empty when no real count exists.",
|
|
1076
|
+
"source_policy": "merchant_asset_required",
|
|
1077
|
+
"length_band_chars": {
|
|
1078
|
+
"min": 9,
|
|
1079
|
+
"max": 40
|
|
1080
|
+
},
|
|
1081
|
+
"demo_value": "48,312+ 5-Star Reviews",
|
|
1082
|
+
"proof_surface": true,
|
|
1083
|
+
"proof_modality": "count",
|
|
1084
|
+
"needs_merchant_input_able": true
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
"key": "hero_1_benefit_1",
|
|
1088
|
+
"kind": "copy",
|
|
1089
|
+
"role": "micro",
|
|
1090
|
+
"description": "Hero checkmark bullet: one concrete, specific benefit.",
|
|
1091
|
+
"source_policy": "generated",
|
|
1092
|
+
"length_band_chars": {
|
|
1093
|
+
"min": 11,
|
|
1094
|
+
"max": 49
|
|
1095
|
+
},
|
|
1096
|
+
"demo_value": "Fall Asleep Up To 3x Faster"
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
"key": "hero_1_benefit_2",
|
|
1100
|
+
"kind": "copy",
|
|
1101
|
+
"role": "micro",
|
|
1102
|
+
"description": "Hero checkmark bullet: one concrete, specific benefit.",
|
|
1103
|
+
"source_policy": "generated",
|
|
1104
|
+
"length_band_chars": {
|
|
1105
|
+
"min": 12,
|
|
1106
|
+
"max": 52
|
|
1107
|
+
},
|
|
1108
|
+
"demo_value": "Stay Asleep Through the Night"
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
"key": "hero_1_benefit_3",
|
|
1112
|
+
"kind": "copy",
|
|
1113
|
+
"role": "micro",
|
|
1114
|
+
"description": "Hero checkmark bullet: one concrete, specific benefit.",
|
|
1115
|
+
"source_policy": "generated",
|
|
1116
|
+
"length_band_chars": {
|
|
1117
|
+
"min": 10,
|
|
1118
|
+
"max": 47
|
|
1119
|
+
},
|
|
1120
|
+
"demo_value": "Wake Up Without Grogginess"
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"key": "hero_1_benefit_4",
|
|
1124
|
+
"kind": "copy",
|
|
1125
|
+
"role": "micro",
|
|
1126
|
+
"description": "Hero checkmark bullet: one concrete, specific benefit.",
|
|
1127
|
+
"source_policy": "generated",
|
|
1128
|
+
"length_band_chars": {
|
|
1129
|
+
"min": 10,
|
|
1130
|
+
"max": 45
|
|
1131
|
+
},
|
|
1132
|
+
"demo_value": "Non-Habit Forming Formula"
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
"key": "hero_1_benefit_5",
|
|
1136
|
+
"kind": "copy",
|
|
1137
|
+
"role": "micro",
|
|
1138
|
+
"description": "Hero checkmark bullet: one concrete, specific benefit.",
|
|
1139
|
+
"source_policy": "generated",
|
|
1140
|
+
"length_band_chars": {
|
|
1141
|
+
"min": 7,
|
|
1142
|
+
"max": 32
|
|
1143
|
+
},
|
|
1144
|
+
"demo_value": "Doctor Recommended"
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"key": "hero_1_review_quote",
|
|
1148
|
+
"kind": "copy",
|
|
1149
|
+
"role": "micro",
|
|
1150
|
+
"description": "Hero pull-quote headline from a real customer review (verbatim from the review source).",
|
|
1151
|
+
"source_policy": "merchant_asset_required",
|
|
1152
|
+
"length_band_chars": {
|
|
1153
|
+
"min": 24,
|
|
1154
|
+
"max": 106
|
|
1155
|
+
},
|
|
1156
|
+
"demo_value": "\\\"Best sleep I've had in years \u2014 nothing else comes close.\\",
|
|
1157
|
+
"proof_surface": true,
|
|
1158
|
+
"proof_modality": "review",
|
|
1159
|
+
"needs_merchant_input_able": true
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"key": "hero_1_review_body",
|
|
1163
|
+
"kind": "copy",
|
|
1164
|
+
"role": "body",
|
|
1165
|
+
"description": "Hero review body text \u2014 a real review, verbatim or lightly trimmed, from the merchant's review platform (anti-pattern 2: never fabricate testimonials).",
|
|
1166
|
+
"source_policy": "merchant_asset_required",
|
|
1167
|
+
"length_band_chars": {
|
|
1168
|
+
"min": 80,
|
|
1169
|
+
"max": 258
|
|
1170
|
+
},
|
|
1171
|
+
"demo_value": "I've struggled with sleep for over a decade. After two weeks on [Product] I sleep through the night ",
|
|
1172
|
+
"proof_surface": true,
|
|
1173
|
+
"proof_modality": "review",
|
|
1174
|
+
"needs_merchant_input_able": true
|
|
1175
|
+
},
|
|
1176
|
+
{
|
|
1177
|
+
"key": "hero_1_review_author",
|
|
1178
|
+
"kind": "copy",
|
|
1179
|
+
"role": "identity",
|
|
1180
|
+
"description": "Reviewer display name for the hero review, as it appears on the review platform.",
|
|
1181
|
+
"source_policy": "merchant_asset_required",
|
|
1182
|
+
"length_band_chars": {
|
|
1183
|
+
"min": 4,
|
|
1184
|
+
"max": 18
|
|
1185
|
+
},
|
|
1186
|
+
"demo_value": "Sandra M.",
|
|
1187
|
+
"proof_surface": true,
|
|
1188
|
+
"proof_modality": "review",
|
|
1189
|
+
"needs_merchant_input_able": true
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
"key": "icons_5_item_1",
|
|
1193
|
+
"kind": "copy",
|
|
1194
|
+
"role": "micro",
|
|
1195
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1196
|
+
"source_policy": "generated",
|
|
1197
|
+
"length_band_chars": {
|
|
1198
|
+
"min": 7,
|
|
1199
|
+
"max": 31
|
|
1200
|
+
},
|
|
1201
|
+
"demo_value": "Non-Habit Forming"
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"key": "icons_5_item_2",
|
|
1205
|
+
"kind": "copy",
|
|
1206
|
+
"role": "micro",
|
|
1207
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1208
|
+
"source_policy": "generated",
|
|
1209
|
+
"length_band_chars": {
|
|
1210
|
+
"min": 6,
|
|
1211
|
+
"max": 27
|
|
1212
|
+
},
|
|
1213
|
+
"demo_value": "Made in the USA"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"key": "icons_5_item_3",
|
|
1217
|
+
"kind": "copy",
|
|
1218
|
+
"role": "micro",
|
|
1219
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1220
|
+
"source_policy": "generated",
|
|
1221
|
+
"length_band_chars": {
|
|
1222
|
+
"min": 7,
|
|
1223
|
+
"max": 32
|
|
1224
|
+
},
|
|
1225
|
+
"demo_value": "Third-Party Tested"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"key": "icons_5_item_4",
|
|
1229
|
+
"kind": "copy",
|
|
1230
|
+
"role": "micro",
|
|
1231
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1232
|
+
"source_policy": "generated",
|
|
1233
|
+
"length_band_chars": {
|
|
1234
|
+
"min": 8,
|
|
1235
|
+
"max": 38
|
|
1236
|
+
},
|
|
1237
|
+
"demo_value": "No Morning Grogginess"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
"key": "icons_5_item_5",
|
|
1241
|
+
"kind": "copy",
|
|
1242
|
+
"role": "micro",
|
|
1243
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1244
|
+
"source_policy": "generated",
|
|
1245
|
+
"length_band_chars": {
|
|
1246
|
+
"min": 6,
|
|
1247
|
+
"max": 29
|
|
1248
|
+
},
|
|
1249
|
+
"demo_value": "60-Day Guarantee"
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"key": "icons_5_item_6",
|
|
1253
|
+
"kind": "copy",
|
|
1254
|
+
"role": "micro",
|
|
1255
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1256
|
+
"source_policy": "generated",
|
|
1257
|
+
"length_band_chars": {
|
|
1258
|
+
"min": 8,
|
|
1259
|
+
"max": 34
|
|
1260
|
+
},
|
|
1261
|
+
"demo_value": "Vegan & Gluten Free"
|
|
1262
|
+
},
|
|
1263
|
+
{
|
|
1264
|
+
"key": "icons_5_item_7",
|
|
1265
|
+
"kind": "copy",
|
|
1266
|
+
"role": "micro",
|
|
1267
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1268
|
+
"source_policy": "generated",
|
|
1269
|
+
"length_band_chars": {
|
|
1270
|
+
"min": 9,
|
|
1271
|
+
"max": 40
|
|
1272
|
+
},
|
|
1273
|
+
"demo_value": "GMP Certified Facility"
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
"key": "icons_5_item_8",
|
|
1277
|
+
"kind": "copy",
|
|
1278
|
+
"role": "micro",
|
|
1279
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1280
|
+
"source_policy": "generated",
|
|
1281
|
+
"length_band_chars": {
|
|
1282
|
+
"min": 12,
|
|
1283
|
+
"max": 54
|
|
1284
|
+
},
|
|
1285
|
+
"demo_value": "Clinically Studied Ingredients"
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
"key": "icons_5_item_9",
|
|
1289
|
+
"kind": "copy",
|
|
1290
|
+
"role": "micro",
|
|
1291
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1292
|
+
"source_policy": "generated",
|
|
1293
|
+
"length_band_chars": {
|
|
1294
|
+
"min": 5,
|
|
1295
|
+
"max": 22
|
|
1296
|
+
},
|
|
1297
|
+
"demo_value": "No Sedatives"
|
|
1298
|
+
},
|
|
1299
|
+
{
|
|
1300
|
+
"key": "icons_5_item_10",
|
|
1301
|
+
"kind": "copy",
|
|
1302
|
+
"role": "micro",
|
|
1303
|
+
"description": "Trust/benefit chip in the icon strip (2-4 words). Certification wording (e.g. 'FDA Registered') only when brief-substantiated.",
|
|
1304
|
+
"source_policy": "generated",
|
|
1305
|
+
"length_band_chars": {
|
|
1306
|
+
"min": 7,
|
|
1307
|
+
"max": 32
|
|
1308
|
+
},
|
|
1309
|
+
"demo_value": "Doctor Recommended"
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
"key": "problemsolution_1_problem_image_alt",
|
|
1313
|
+
"kind": "alt_text",
|
|
1314
|
+
"role": "alt_text",
|
|
1315
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
1316
|
+
"source_policy": "generated"
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
"key": "problemsolution_1_problem_label",
|
|
1320
|
+
"kind": "copy",
|
|
1321
|
+
"role": "micro",
|
|
1322
|
+
"description": "Overline label for the problem panel.",
|
|
1323
|
+
"source_policy": "generated",
|
|
1324
|
+
"length_band_chars": {
|
|
1325
|
+
"min": 4,
|
|
1326
|
+
"max": 20
|
|
1327
|
+
},
|
|
1328
|
+
"demo_value": "The Problem"
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
"key": "problemsolution_1_problem_heading",
|
|
1332
|
+
"kind": "copy",
|
|
1333
|
+
"role": "headline",
|
|
1334
|
+
"description": "Heading for the problem panel (persuasion-arc role: failure mechanism / solution mechanism).",
|
|
1335
|
+
"source_policy": "generated",
|
|
1336
|
+
"length_band_chars": {
|
|
1337
|
+
"min": 19,
|
|
1338
|
+
"max": 45
|
|
1339
|
+
},
|
|
1340
|
+
"demo_value": "Poor Sleep Is Draining Your Life"
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"key": "problemsolution_1_problem_body",
|
|
1344
|
+
"kind": "copy",
|
|
1345
|
+
"role": "body",
|
|
1346
|
+
"description": "Body copy for the problem panel. Mechanism claims must trace to the claims whitelist.",
|
|
1347
|
+
"source_policy": "generated",
|
|
1348
|
+
"length_band_chars": {
|
|
1349
|
+
"min": 148,
|
|
1350
|
+
"max": 475
|
|
1351
|
+
},
|
|
1352
|
+
"demo_value": "Lying awake at 2am, staring at the ceiling with a mind that won't slow down. Day after day of exhaus"
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"key": "problemsolution_1_solution_image_alt",
|
|
1356
|
+
"kind": "alt_text",
|
|
1357
|
+
"role": "alt_text",
|
|
1358
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
1359
|
+
"source_policy": "generated"
|
|
1360
|
+
},
|
|
1361
|
+
{
|
|
1362
|
+
"key": "problemsolution_1_solution_label",
|
|
1363
|
+
"kind": "copy",
|
|
1364
|
+
"role": "micro",
|
|
1365
|
+
"description": "Overline label for the solution panel.",
|
|
1366
|
+
"source_policy": "generated",
|
|
1367
|
+
"length_band_chars": {
|
|
1368
|
+
"min": 5,
|
|
1369
|
+
"max": 22
|
|
1370
|
+
},
|
|
1371
|
+
"demo_value": "The Solution"
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
"key": "problemsolution_1_solution_heading",
|
|
1375
|
+
"kind": "copy",
|
|
1376
|
+
"role": "headline",
|
|
1377
|
+
"description": "Heading for the solution panel (persuasion-arc role: failure mechanism / solution mechanism).",
|
|
1378
|
+
"source_policy": "generated",
|
|
1379
|
+
"length_band_chars": {
|
|
1380
|
+
"min": 18,
|
|
1381
|
+
"max": 42
|
|
1382
|
+
},
|
|
1383
|
+
"demo_value": "Deep Sleep, Naturally Restored"
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
"key": "problemsolution_1_solution_body",
|
|
1387
|
+
"kind": "copy",
|
|
1388
|
+
"role": "body",
|
|
1389
|
+
"description": "Body copy for the solution panel. Mechanism claims must trace to the claims whitelist.",
|
|
1390
|
+
"source_policy": "generated",
|
|
1391
|
+
"length_band_chars": {
|
|
1392
|
+
"min": 135,
|
|
1393
|
+
"max": 432
|
|
1394
|
+
},
|
|
1395
|
+
"demo_value": "Our formula works with your body's own sleep systems \u2014 not against them. Our synergistic blend lower"
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
"key": "benefits_2_section_heading",
|
|
1399
|
+
"kind": "copy",
|
|
1400
|
+
"role": "headline",
|
|
1401
|
+
"description": "Benefits section heading. The demo carries a customer-count claim \u2014 keep a count in this heading ONLY when it is real proof; otherwise write a count-free benefit heading.",
|
|
1402
|
+
"source_policy": "generated",
|
|
1403
|
+
"length_band_chars": {
|
|
1404
|
+
"min": 22,
|
|
1405
|
+
"max": 52
|
|
1406
|
+
},
|
|
1407
|
+
"demo_value": "Why 48,000+ Sleepers Choose [Product]"
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
"key": "benefits_2_product_image",
|
|
1411
|
+
"kind": "image",
|
|
1412
|
+
"role": "image",
|
|
1413
|
+
"description": "Product image in the benefits section. Merchant-supplied product photography.",
|
|
1414
|
+
"source_policy": "merchant_asset_required"
|
|
1415
|
+
},
|
|
1416
|
+
{
|
|
1417
|
+
"key": "benefits_2_product_image_alt",
|
|
1418
|
+
"kind": "alt_text",
|
|
1419
|
+
"role": "alt_text",
|
|
1420
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
1421
|
+
"source_policy": "generated"
|
|
1422
|
+
},
|
|
1423
|
+
{
|
|
1424
|
+
"key": "benefits_2_benefit_1_title",
|
|
1425
|
+
"kind": "copy",
|
|
1426
|
+
"role": "headline",
|
|
1427
|
+
"description": "Benefit card title.",
|
|
1428
|
+
"source_policy": "generated",
|
|
1429
|
+
"length_band_chars": {
|
|
1430
|
+
"min": 13,
|
|
1431
|
+
"max": 31
|
|
1432
|
+
},
|
|
1433
|
+
"demo_value": "Quiets Racing Thoughts"
|
|
1434
|
+
},
|
|
1435
|
+
{
|
|
1436
|
+
"key": "benefits_2_benefit_1_body",
|
|
1437
|
+
"kind": "copy",
|
|
1438
|
+
"role": "body",
|
|
1439
|
+
"description": "Benefit card body. Evidence-less benefits render as scenario framing, never as claims.",
|
|
1440
|
+
"source_policy": "generated",
|
|
1441
|
+
"length_band_chars": {
|
|
1442
|
+
"min": 64,
|
|
1443
|
+
"max": 206
|
|
1444
|
+
},
|
|
1445
|
+
"demo_value": "Ashwagandha and L-Theanine lower cortisol and promote alpha brainwave activity \u2014 your brain finally "
|
|
1446
|
+
},
|
|
1447
|
+
{
|
|
1448
|
+
"key": "benefits_2_benefit_2_title",
|
|
1449
|
+
"kind": "copy",
|
|
1450
|
+
"role": "headline",
|
|
1451
|
+
"description": "Benefit card title.",
|
|
1452
|
+
"source_policy": "generated",
|
|
1453
|
+
"length_band_chars": {
|
|
1454
|
+
"min": 11,
|
|
1455
|
+
"max": 27
|
|
1456
|
+
},
|
|
1457
|
+
"demo_value": "Deeper Sleep Cycles"
|
|
1458
|
+
},
|
|
1459
|
+
{
|
|
1460
|
+
"key": "benefits_2_benefit_2_body",
|
|
1461
|
+
"kind": "copy",
|
|
1462
|
+
"role": "body",
|
|
1463
|
+
"description": "Benefit card body. Evidence-less benefits render as scenario framing, never as claims.",
|
|
1464
|
+
"source_policy": "generated",
|
|
1465
|
+
"length_band_chars": {
|
|
1466
|
+
"min": 58,
|
|
1467
|
+
"max": 184
|
|
1468
|
+
},
|
|
1469
|
+
"demo_value": "Magnesium Glycinate supports the nervous system relaxation needed to cycle through all stages of res"
|
|
1470
|
+
},
|
|
1471
|
+
{
|
|
1472
|
+
"key": "benefits_2_benefit_3_title",
|
|
1473
|
+
"kind": "copy",
|
|
1474
|
+
"role": "headline",
|
|
1475
|
+
"description": "Benefit card title.",
|
|
1476
|
+
"source_policy": "generated",
|
|
1477
|
+
"length_band_chars": {
|
|
1478
|
+
"min": 10,
|
|
1479
|
+
"max": 24
|
|
1480
|
+
},
|
|
1481
|
+
"demo_value": "Zero Next-Day Fog"
|
|
1482
|
+
},
|
|
1483
|
+
{
|
|
1484
|
+
"key": "benefits_2_benefit_3_body",
|
|
1485
|
+
"kind": "copy",
|
|
1486
|
+
"role": "body",
|
|
1487
|
+
"description": "Benefit card body. Evidence-less benefits render as scenario framing, never as claims.",
|
|
1488
|
+
"source_policy": "generated",
|
|
1489
|
+
"length_band_chars": {
|
|
1490
|
+
"min": 54,
|
|
1491
|
+
"max": 174
|
|
1492
|
+
},
|
|
1493
|
+
"demo_value": "Unlike prescription sleep aids, this formula contains no sedatives. You wake up clear-headed and rea"
|
|
1494
|
+
},
|
|
1495
|
+
{
|
|
1496
|
+
"key": "benefits_2_benefit_4_title",
|
|
1497
|
+
"kind": "copy",
|
|
1498
|
+
"role": "headline",
|
|
1499
|
+
"description": "Benefit card title.",
|
|
1500
|
+
"source_policy": "generated",
|
|
1501
|
+
"length_band_chars": {
|
|
1502
|
+
"min": 10,
|
|
1503
|
+
"max": 24
|
|
1504
|
+
},
|
|
1505
|
+
"demo_value": "Non-Habit Forming"
|
|
1506
|
+
},
|
|
1507
|
+
{
|
|
1508
|
+
"key": "benefits_2_benefit_4_body",
|
|
1509
|
+
"kind": "copy",
|
|
1510
|
+
"role": "body",
|
|
1511
|
+
"description": "Benefit card body. Evidence-less benefits render as scenario framing, never as claims.",
|
|
1512
|
+
"source_policy": "generated",
|
|
1513
|
+
"length_band_chars": {
|
|
1514
|
+
"min": 49,
|
|
1515
|
+
"max": 157
|
|
1516
|
+
},
|
|
1517
|
+
"demo_value": "Natural adaptogens and minerals \u2014 not chemicals. Use it nightly without worrying about dependency."
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
"key": "benefits_2_review_quote",
|
|
1521
|
+
"kind": "copy",
|
|
1522
|
+
"role": "body",
|
|
1523
|
+
"description": "Inline customer quote in the benefits section \u2014 real review content only.",
|
|
1524
|
+
"source_policy": "merchant_asset_required",
|
|
1525
|
+
"length_band_chars": {
|
|
1526
|
+
"min": 60,
|
|
1527
|
+
"max": 194
|
|
1528
|
+
},
|
|
1529
|
+
"demo_value": "\\\"Two capsules before bed and I'm out within 20 minutes. I've cancelled three doctor's appointments ",
|
|
1530
|
+
"proof_surface": true,
|
|
1531
|
+
"proof_modality": "review",
|
|
1532
|
+
"needs_merchant_input_able": true
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
"key": "benefits_2_review_name",
|
|
1536
|
+
"kind": "copy",
|
|
1537
|
+
"role": "identity",
|
|
1538
|
+
"description": "Reviewer display name for the benefits-section quote.",
|
|
1539
|
+
"source_policy": "merchant_asset_required",
|
|
1540
|
+
"length_band_chars": {
|
|
1541
|
+
"min": 4,
|
|
1542
|
+
"max": 16
|
|
1543
|
+
},
|
|
1544
|
+
"demo_value": "Derek H.",
|
|
1545
|
+
"proof_surface": true,
|
|
1546
|
+
"proof_modality": "review",
|
|
1547
|
+
"needs_merchant_input_able": true
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
"key": "results_4_headline",
|
|
1551
|
+
"kind": "copy",
|
|
1552
|
+
"role": "headline",
|
|
1553
|
+
"description": "Timeline section heading.",
|
|
1554
|
+
"source_policy": "generated",
|
|
1555
|
+
"length_band_chars": {
|
|
1556
|
+
"min": 15,
|
|
1557
|
+
"max": 35
|
|
1558
|
+
},
|
|
1559
|
+
"demo_value": "[Product] Works In Phases"
|
|
1560
|
+
},
|
|
1561
|
+
{
|
|
1562
|
+
"key": "results_4_product_image_alt",
|
|
1563
|
+
"kind": "alt_text",
|
|
1564
|
+
"role": "alt_text",
|
|
1565
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
1566
|
+
"source_policy": "generated"
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
"key": "results_4_phase_1_label",
|
|
1570
|
+
"kind": "copy",
|
|
1571
|
+
"role": "micro",
|
|
1572
|
+
"description": "Time range label for phase 1 (e.g. 'Days 1-7').",
|
|
1573
|
+
"source_policy": "generated",
|
|
1574
|
+
"length_band_chars": {
|
|
1575
|
+
"min": 3,
|
|
1576
|
+
"max": 14
|
|
1577
|
+
},
|
|
1578
|
+
"demo_value": "Days 1\u20137"
|
|
1579
|
+
},
|
|
1580
|
+
{
|
|
1581
|
+
"key": "results_4_phase_1_title",
|
|
1582
|
+
"kind": "copy",
|
|
1583
|
+
"role": "headline",
|
|
1584
|
+
"description": "Phase 1 title in the results timeline.",
|
|
1585
|
+
"source_policy": "generated",
|
|
1586
|
+
"length_band_chars": {
|
|
1587
|
+
"min": 10,
|
|
1588
|
+
"max": 22
|
|
1589
|
+
},
|
|
1590
|
+
"demo_value": "Foundation Phase"
|
|
1591
|
+
},
|
|
1592
|
+
{
|
|
1593
|
+
"key": "results_4_phase_1_body",
|
|
1594
|
+
"kind": "copy",
|
|
1595
|
+
"role": "body",
|
|
1596
|
+
"description": "Phase 1 body. Outcome claims must stay within the claims whitelist (health-adjacent categories: structure/function limits).",
|
|
1597
|
+
"source_policy": "generated",
|
|
1598
|
+
"length_band_chars": {
|
|
1599
|
+
"min": 74,
|
|
1600
|
+
"max": 237
|
|
1601
|
+
},
|
|
1602
|
+
"demo_value": "The adaptogenic compounds begin absorbing into your system. Most customers notice it's easier to win"
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
"key": "results_4_phase_2_label",
|
|
1606
|
+
"kind": "copy",
|
|
1607
|
+
"role": "micro",
|
|
1608
|
+
"description": "Time range label for phase 2 (e.g. 'Days 1-7').",
|
|
1609
|
+
"source_policy": "generated",
|
|
1610
|
+
"length_band_chars": {
|
|
1611
|
+
"min": 4,
|
|
1612
|
+
"max": 16
|
|
1613
|
+
},
|
|
1614
|
+
"demo_value": "Days 8\u201321"
|
|
1615
|
+
},
|
|
1616
|
+
{
|
|
1617
|
+
"key": "results_4_phase_2_title",
|
|
1618
|
+
"kind": "copy",
|
|
1619
|
+
"role": "headline",
|
|
1620
|
+
"description": "Phase 2 title in the results timeline.",
|
|
1621
|
+
"source_policy": "generated",
|
|
1622
|
+
"length_band_chars": {
|
|
1623
|
+
"min": 10,
|
|
1624
|
+
"max": 22
|
|
1625
|
+
},
|
|
1626
|
+
"demo_value": "Regulation Phase"
|
|
1627
|
+
},
|
|
1628
|
+
{
|
|
1629
|
+
"key": "results_4_phase_2_body",
|
|
1630
|
+
"kind": "copy",
|
|
1631
|
+
"role": "body",
|
|
1632
|
+
"description": "Phase 2 body. Outcome claims must stay within the claims whitelist (health-adjacent categories: structure/function limits).",
|
|
1633
|
+
"source_policy": "generated",
|
|
1634
|
+
"length_band_chars": {
|
|
1635
|
+
"min": 83,
|
|
1636
|
+
"max": 266
|
|
1637
|
+
},
|
|
1638
|
+
"demo_value": "Cortisol levels stabilise and your nervous system settles into a consistent rhythm. Falling asleep f"
|
|
1639
|
+
},
|
|
1640
|
+
{
|
|
1641
|
+
"key": "results_4_phase_3_label",
|
|
1642
|
+
"kind": "copy",
|
|
1643
|
+
"role": "micro",
|
|
1644
|
+
"description": "Time range label for phase 3 (e.g. 'Days 1-7').",
|
|
1645
|
+
"source_policy": "generated",
|
|
1646
|
+
"length_band_chars": {
|
|
1647
|
+
"min": 4,
|
|
1648
|
+
"max": 18
|
|
1649
|
+
},
|
|
1650
|
+
"demo_value": "Days 22\u201345"
|
|
1651
|
+
},
|
|
1652
|
+
{
|
|
1653
|
+
"key": "results_4_phase_3_title",
|
|
1654
|
+
"kind": "copy",
|
|
1655
|
+
"role": "headline",
|
|
1656
|
+
"description": "Phase 3 title in the results timeline.",
|
|
1657
|
+
"source_policy": "generated",
|
|
1658
|
+
"length_band_chars": {
|
|
1659
|
+
"min": 12,
|
|
1660
|
+
"max": 28
|
|
1661
|
+
},
|
|
1662
|
+
"demo_value": "Transformation Phase"
|
|
1663
|
+
},
|
|
1664
|
+
{
|
|
1665
|
+
"key": "results_4_phase_3_body",
|
|
1666
|
+
"kind": "copy",
|
|
1667
|
+
"role": "body",
|
|
1668
|
+
"description": "Phase 3 body. Outcome claims must stay within the claims whitelist (health-adjacent categories: structure/function limits).",
|
|
1669
|
+
"source_policy": "generated",
|
|
1670
|
+
"length_band_chars": {
|
|
1671
|
+
"min": 76,
|
|
1672
|
+
"max": 242
|
|
1673
|
+
},
|
|
1674
|
+
"demo_value": "Deep, restorative sleep becomes reliable. Energy is noticeably higher during the day, brain fog lift"
|
|
1675
|
+
},
|
|
1676
|
+
{
|
|
1677
|
+
"key": "results_4_phase_4_label",
|
|
1678
|
+
"kind": "copy",
|
|
1679
|
+
"role": "micro",
|
|
1680
|
+
"description": "Time range label for phase 4 (e.g. 'Days 1-7').",
|
|
1681
|
+
"source_policy": "generated",
|
|
1682
|
+
"length_band_chars": {
|
|
1683
|
+
"min": 3,
|
|
1684
|
+
"max": 13
|
|
1685
|
+
},
|
|
1686
|
+
"demo_value": "Day 45+"
|
|
1687
|
+
},
|
|
1688
|
+
{
|
|
1689
|
+
"key": "results_4_phase_4_title",
|
|
1690
|
+
"kind": "copy",
|
|
1691
|
+
"role": "headline",
|
|
1692
|
+
"description": "Phase 4 title in the results timeline.",
|
|
1693
|
+
"source_policy": "generated",
|
|
1694
|
+
"length_band_chars": {
|
|
1695
|
+
"min": 5,
|
|
1696
|
+
"max": 13
|
|
1697
|
+
},
|
|
1698
|
+
"demo_value": "Peak Rest"
|
|
1699
|
+
},
|
|
1700
|
+
{
|
|
1701
|
+
"key": "results_4_phase_4_body",
|
|
1702
|
+
"kind": "copy",
|
|
1703
|
+
"role": "body",
|
|
1704
|
+
"description": "Phase 4 body. Outcome claims must stay within the claims whitelist (health-adjacent categories: structure/function limits).",
|
|
1705
|
+
"source_policy": "generated",
|
|
1706
|
+
"length_band_chars": {
|
|
1707
|
+
"min": 77,
|
|
1708
|
+
"max": 246
|
|
1709
|
+
},
|
|
1710
|
+
"demo_value": "The compounding effect reaches its peak. Consistent deep sleep every night, sustained daytime energy"
|
|
1711
|
+
},
|
|
1712
|
+
{
|
|
1713
|
+
"key": "ingredients_3_heading",
|
|
1714
|
+
"kind": "copy",
|
|
1715
|
+
"role": "headline",
|
|
1716
|
+
"description": "Ingredients/components section heading copy.",
|
|
1717
|
+
"source_policy": "generated",
|
|
1718
|
+
"length_band_chars": {
|
|
1719
|
+
"min": 16,
|
|
1720
|
+
"max": 38
|
|
1721
|
+
},
|
|
1722
|
+
"demo_value": "What's Inside Every Capsule"
|
|
1723
|
+
},
|
|
1724
|
+
{
|
|
1725
|
+
"key": "ingredients_3_subheading",
|
|
1726
|
+
"kind": "copy",
|
|
1727
|
+
"role": "headline",
|
|
1728
|
+
"description": "Ingredients/components section heading copy.",
|
|
1729
|
+
"source_policy": "generated",
|
|
1730
|
+
"length_band_chars": {
|
|
1731
|
+
"min": 74,
|
|
1732
|
+
"max": 172
|
|
1733
|
+
},
|
|
1734
|
+
"demo_value": "Six clinically studied ingredients, each chosen for a specific role in your sleep cycle. Nothing fil"
|
|
1735
|
+
},
|
|
1736
|
+
{
|
|
1737
|
+
"key": "ingredients_3_card_1_image",
|
|
1738
|
+
"kind": "image",
|
|
1739
|
+
"role": "image",
|
|
1740
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1741
|
+
"source_policy": "generated"
|
|
1742
|
+
},
|
|
1743
|
+
{
|
|
1744
|
+
"key": "ingredients_3_card_1_title",
|
|
1745
|
+
"kind": "copy",
|
|
1746
|
+
"role": "micro",
|
|
1747
|
+
"description": "Ingredient/component card name.",
|
|
1748
|
+
"source_policy": "generated",
|
|
1749
|
+
"length_band_chars": {
|
|
1750
|
+
"min": 7,
|
|
1751
|
+
"max": 32
|
|
1752
|
+
},
|
|
1753
|
+
"demo_value": "Ashwagandha KSM-66"
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
"key": "ingredients_3_card_1_subtitle",
|
|
1757
|
+
"kind": "copy",
|
|
1758
|
+
"role": "micro",
|
|
1759
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
1760
|
+
"source_policy": "generated",
|
|
1761
|
+
"length_band_chars": {
|
|
1762
|
+
"min": 10,
|
|
1763
|
+
"max": 45
|
|
1764
|
+
},
|
|
1765
|
+
"demo_value": "Stress & Cortisol Control"
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
"key": "ingredients_3_card_1_body",
|
|
1769
|
+
"kind": "copy",
|
|
1770
|
+
"role": "body",
|
|
1771
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
1772
|
+
"source_policy": "generated",
|
|
1773
|
+
"length_band_chars": {
|
|
1774
|
+
"min": 76,
|
|
1775
|
+
"max": 242
|
|
1776
|
+
},
|
|
1777
|
+
"demo_value": "The gold-standard ashwagandha extract. Clinically shown to reduce cortisol by up to 28%, making it e"
|
|
1778
|
+
},
|
|
1779
|
+
{
|
|
1780
|
+
"key": "ingredients_3_card_2_image",
|
|
1781
|
+
"kind": "image",
|
|
1782
|
+
"role": "image",
|
|
1783
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1784
|
+
"source_policy": "generated"
|
|
1785
|
+
},
|
|
1786
|
+
{
|
|
1787
|
+
"key": "ingredients_3_card_2_title",
|
|
1788
|
+
"kind": "copy",
|
|
1789
|
+
"role": "micro",
|
|
1790
|
+
"description": "Ingredient/component card name.",
|
|
1791
|
+
"source_policy": "generated",
|
|
1792
|
+
"length_band_chars": {
|
|
1793
|
+
"min": 8,
|
|
1794
|
+
"max": 34
|
|
1795
|
+
},
|
|
1796
|
+
"demo_value": "Magnesium Glycinate"
|
|
1797
|
+
},
|
|
1798
|
+
{
|
|
1799
|
+
"key": "ingredients_3_card_2_subtitle",
|
|
1800
|
+
"kind": "copy",
|
|
1801
|
+
"role": "micro",
|
|
1802
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
1803
|
+
"source_policy": "generated",
|
|
1804
|
+
"length_band_chars": {
|
|
1805
|
+
"min": 9,
|
|
1806
|
+
"max": 40
|
|
1807
|
+
},
|
|
1808
|
+
"demo_value": "Deep Muscle Relaxation"
|
|
1809
|
+
},
|
|
1810
|
+
{
|
|
1811
|
+
"key": "ingredients_3_card_2_body",
|
|
1812
|
+
"kind": "copy",
|
|
1813
|
+
"role": "body",
|
|
1814
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
1815
|
+
"source_policy": "generated",
|
|
1816
|
+
"length_band_chars": {
|
|
1817
|
+
"min": 68,
|
|
1818
|
+
"max": 218
|
|
1819
|
+
},
|
|
1820
|
+
"demo_value": "The most bioavailable form of magnesium. Relaxes muscles, calms the nervous system, and supports the"
|
|
1821
|
+
},
|
|
1822
|
+
{
|
|
1823
|
+
"key": "ingredients_3_card_3_image",
|
|
1824
|
+
"kind": "image",
|
|
1825
|
+
"role": "image",
|
|
1826
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1827
|
+
"source_policy": "generated"
|
|
1828
|
+
},
|
|
1829
|
+
{
|
|
1830
|
+
"key": "ingredients_3_card_3_title",
|
|
1831
|
+
"kind": "copy",
|
|
1832
|
+
"role": "micro",
|
|
1833
|
+
"description": "Ingredient/component card name.",
|
|
1834
|
+
"source_policy": "generated",
|
|
1835
|
+
"length_band_chars": {
|
|
1836
|
+
"min": 4,
|
|
1837
|
+
"max": 18
|
|
1838
|
+
},
|
|
1839
|
+
"demo_value": "L-Theanine"
|
|
1840
|
+
},
|
|
1841
|
+
{
|
|
1842
|
+
"key": "ingredients_3_card_3_subtitle",
|
|
1843
|
+
"kind": "copy",
|
|
1844
|
+
"role": "micro",
|
|
1845
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
1846
|
+
"source_policy": "generated",
|
|
1847
|
+
"length_band_chars": {
|
|
1848
|
+
"min": 10,
|
|
1849
|
+
"max": 43
|
|
1850
|
+
},
|
|
1851
|
+
"demo_value": "Alpha Brainwave Activity"
|
|
1852
|
+
},
|
|
1853
|
+
{
|
|
1854
|
+
"key": "ingredients_3_card_3_body",
|
|
1855
|
+
"kind": "copy",
|
|
1856
|
+
"role": "body",
|
|
1857
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
1858
|
+
"source_policy": "generated",
|
|
1859
|
+
"length_band_chars": {
|
|
1860
|
+
"min": 77,
|
|
1861
|
+
"max": 246
|
|
1862
|
+
},
|
|
1863
|
+
"demo_value": "Found naturally in green tea. Promotes alpha brainwave states \u2014 the relaxed-but-alert baseline your "
|
|
1864
|
+
},
|
|
1865
|
+
{
|
|
1866
|
+
"key": "ingredients_3_card_4_image",
|
|
1867
|
+
"kind": "image",
|
|
1868
|
+
"role": "image",
|
|
1869
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1870
|
+
"source_policy": "generated"
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"key": "ingredients_3_card_4_title",
|
|
1874
|
+
"kind": "copy",
|
|
1875
|
+
"role": "micro",
|
|
1876
|
+
"description": "Ingredient/component card name.",
|
|
1877
|
+
"source_policy": "generated",
|
|
1878
|
+
"length_band_chars": {
|
|
1879
|
+
"min": 6,
|
|
1880
|
+
"max": 25
|
|
1881
|
+
},
|
|
1882
|
+
"demo_value": "Rhodiola Rosea"
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"key": "ingredients_3_card_4_subtitle",
|
|
1886
|
+
"kind": "copy",
|
|
1887
|
+
"role": "micro",
|
|
1888
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
1889
|
+
"source_policy": "generated",
|
|
1890
|
+
"length_band_chars": {
|
|
1891
|
+
"min": 7,
|
|
1892
|
+
"max": 31
|
|
1893
|
+
},
|
|
1894
|
+
"demo_value": "Stress Adaptation"
|
|
1895
|
+
},
|
|
1896
|
+
{
|
|
1897
|
+
"key": "ingredients_3_card_4_body",
|
|
1898
|
+
"kind": "copy",
|
|
1899
|
+
"role": "body",
|
|
1900
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
1901
|
+
"source_policy": "generated",
|
|
1902
|
+
"length_band_chars": {
|
|
1903
|
+
"min": 61,
|
|
1904
|
+
"max": 195
|
|
1905
|
+
},
|
|
1906
|
+
"demo_value": "A Scandinavian adaptogen shown to reduce stress-related fatigue and improve sleep quality in people "
|
|
1907
|
+
},
|
|
1908
|
+
{
|
|
1909
|
+
"key": "ingredients_3_card_5_image",
|
|
1910
|
+
"kind": "image",
|
|
1911
|
+
"role": "image",
|
|
1912
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1913
|
+
"source_policy": "generated"
|
|
1914
|
+
},
|
|
1915
|
+
{
|
|
1916
|
+
"key": "ingredients_3_card_5_title",
|
|
1917
|
+
"kind": "copy",
|
|
1918
|
+
"role": "micro",
|
|
1919
|
+
"description": "Ingredient/component card name.",
|
|
1920
|
+
"source_policy": "generated",
|
|
1921
|
+
"length_band_chars": {
|
|
1922
|
+
"min": 4,
|
|
1923
|
+
"max": 16
|
|
1924
|
+
},
|
|
1925
|
+
"demo_value": "B-Complex"
|
|
1926
|
+
},
|
|
1927
|
+
{
|
|
1928
|
+
"key": "ingredients_3_card_5_subtitle",
|
|
1929
|
+
"kind": "copy",
|
|
1930
|
+
"role": "micro",
|
|
1931
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
1932
|
+
"source_policy": "generated",
|
|
1933
|
+
"length_band_chars": {
|
|
1934
|
+
"min": 8,
|
|
1935
|
+
"max": 38
|
|
1936
|
+
},
|
|
1937
|
+
"demo_value": "Mood & Nervous System"
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
"key": "ingredients_3_card_5_body",
|
|
1941
|
+
"kind": "copy",
|
|
1942
|
+
"role": "body",
|
|
1943
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
1944
|
+
"source_policy": "generated",
|
|
1945
|
+
"length_band_chars": {
|
|
1946
|
+
"min": 64,
|
|
1947
|
+
"max": 206
|
|
1948
|
+
},
|
|
1949
|
+
"demo_value": "Full-spectrum B vitamins support serotonin production and regulate the nervous system signals that c"
|
|
1950
|
+
},
|
|
1951
|
+
{
|
|
1952
|
+
"key": "ingredients_3_card_6_image",
|
|
1953
|
+
"kind": "image",
|
|
1954
|
+
"role": "image",
|
|
1955
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1956
|
+
"source_policy": "generated"
|
|
1957
|
+
},
|
|
1958
|
+
{
|
|
1959
|
+
"key": "ingredients_3_card_6_title",
|
|
1960
|
+
"kind": "copy",
|
|
1961
|
+
"role": "micro",
|
|
1962
|
+
"description": "Ingredient/component card name.",
|
|
1963
|
+
"source_policy": "generated",
|
|
1964
|
+
"length_band_chars": {
|
|
1965
|
+
"min": 7,
|
|
1966
|
+
"max": 31
|
|
1967
|
+
},
|
|
1968
|
+
"demo_value": "Zinc Bisglycinate"
|
|
1969
|
+
},
|
|
1970
|
+
{
|
|
1971
|
+
"key": "ingredients_3_card_6_subtitle",
|
|
1972
|
+
"kind": "copy",
|
|
1973
|
+
"role": "micro",
|
|
1974
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
1975
|
+
"source_policy": "generated",
|
|
1976
|
+
"length_band_chars": {
|
|
1977
|
+
"min": 6,
|
|
1978
|
+
"max": 29
|
|
1979
|
+
},
|
|
1980
|
+
"demo_value": "Hormonal Balance"
|
|
1981
|
+
},
|
|
1982
|
+
{
|
|
1983
|
+
"key": "ingredients_3_card_6_body",
|
|
1984
|
+
"kind": "copy",
|
|
1985
|
+
"role": "body",
|
|
1986
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
1987
|
+
"source_policy": "generated",
|
|
1988
|
+
"length_band_chars": {
|
|
1989
|
+
"min": 62,
|
|
1990
|
+
"max": 200
|
|
1991
|
+
},
|
|
1992
|
+
"demo_value": "Chelated zinc with superior absorption. Supports melatonin production and hormonal balance for consi"
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
"key": "ingredients_3_card_7_image",
|
|
1996
|
+
"kind": "image",
|
|
1997
|
+
"role": "image",
|
|
1998
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
1999
|
+
"source_policy": "generated"
|
|
2000
|
+
},
|
|
2001
|
+
{
|
|
2002
|
+
"key": "ingredients_3_card_7_title",
|
|
2003
|
+
"kind": "copy",
|
|
2004
|
+
"role": "micro",
|
|
2005
|
+
"description": "Ingredient/component card name.",
|
|
2006
|
+
"source_policy": "generated",
|
|
2007
|
+
"length_band_chars": {
|
|
2008
|
+
"min": 7,
|
|
2009
|
+
"max": 32
|
|
2010
|
+
},
|
|
2011
|
+
"demo_value": "Ashwagandha KSM-66"
|
|
2012
|
+
},
|
|
2013
|
+
{
|
|
2014
|
+
"key": "ingredients_3_card_7_subtitle",
|
|
2015
|
+
"kind": "copy",
|
|
2016
|
+
"role": "micro",
|
|
2017
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
2018
|
+
"source_policy": "generated",
|
|
2019
|
+
"length_band_chars": {
|
|
2020
|
+
"min": 10,
|
|
2021
|
+
"max": 45
|
|
2022
|
+
},
|
|
2023
|
+
"demo_value": "Stress & Cortisol Control"
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
"key": "ingredients_3_card_7_body",
|
|
2027
|
+
"kind": "copy",
|
|
2028
|
+
"role": "body",
|
|
2029
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
2030
|
+
"source_policy": "generated",
|
|
2031
|
+
"length_band_chars": {
|
|
2032
|
+
"min": 76,
|
|
2033
|
+
"max": 242
|
|
2034
|
+
},
|
|
2035
|
+
"demo_value": "The gold-standard ashwagandha extract. Clinically shown to reduce cortisol by up to 28%, making it e"
|
|
2036
|
+
},
|
|
2037
|
+
{
|
|
2038
|
+
"key": "ingredients_3_card_8_image",
|
|
2039
|
+
"kind": "image",
|
|
2040
|
+
"role": "image",
|
|
2041
|
+
"description": "Ingredient/component card image. AI-generated or merchant reference imagery.",
|
|
2042
|
+
"source_policy": "generated"
|
|
2043
|
+
},
|
|
2044
|
+
{
|
|
2045
|
+
"key": "ingredients_3_card_8_title",
|
|
2046
|
+
"kind": "copy",
|
|
2047
|
+
"role": "micro",
|
|
2048
|
+
"description": "Ingredient/component card name.",
|
|
2049
|
+
"source_policy": "generated",
|
|
2050
|
+
"length_band_chars": {
|
|
2051
|
+
"min": 8,
|
|
2052
|
+
"max": 34
|
|
2053
|
+
},
|
|
2054
|
+
"demo_value": "Magnesium Glycinate"
|
|
2055
|
+
},
|
|
2056
|
+
{
|
|
2057
|
+
"key": "ingredients_3_card_8_subtitle",
|
|
2058
|
+
"kind": "copy",
|
|
2059
|
+
"role": "micro",
|
|
2060
|
+
"description": "Ingredient/component card role line (what it does).",
|
|
2061
|
+
"source_policy": "generated",
|
|
2062
|
+
"length_band_chars": {
|
|
2063
|
+
"min": 9,
|
|
2064
|
+
"max": 40
|
|
2065
|
+
},
|
|
2066
|
+
"demo_value": "Deep Muscle Relaxation"
|
|
2067
|
+
},
|
|
2068
|
+
{
|
|
2069
|
+
"key": "ingredients_3_card_8_body",
|
|
2070
|
+
"kind": "copy",
|
|
2071
|
+
"role": "body",
|
|
2072
|
+
"description": "Ingredient/component card body. 'Clinically shown' phrasing only with a brief-sourced citation (anti-pattern 9).",
|
|
2073
|
+
"source_policy": "generated",
|
|
2074
|
+
"length_band_chars": {
|
|
2075
|
+
"min": 68,
|
|
2076
|
+
"max": 218
|
|
2077
|
+
},
|
|
2078
|
+
"demo_value": "The most bioavailable form of magnesium. Relaxes muscles, calms the nervous system, and supports the"
|
|
2079
|
+
},
|
|
2080
|
+
{
|
|
2081
|
+
"key": "ingredients_3_ingredients_link_text",
|
|
2082
|
+
"kind": "copy",
|
|
2083
|
+
"role": "cta",
|
|
2084
|
+
"description": "Supplement-facts expander link label.",
|
|
2085
|
+
"source_policy": "generated",
|
|
2086
|
+
"length_band_chars": {
|
|
2087
|
+
"min": 13,
|
|
2088
|
+
"max": 47
|
|
2089
|
+
},
|
|
2090
|
+
"demo_value": "View Full Supplement Facts"
|
|
2091
|
+
},
|
|
2092
|
+
{
|
|
2093
|
+
"key": "ingredients_3_ingredients_link_text_close",
|
|
2094
|
+
"kind": "copy",
|
|
2095
|
+
"role": "cta",
|
|
2096
|
+
"description": "Supplement-facts expander link label.",
|
|
2097
|
+
"source_policy": "generated",
|
|
2098
|
+
"length_band_chars": {
|
|
2099
|
+
"min": 10,
|
|
2100
|
+
"max": 38
|
|
2101
|
+
},
|
|
2102
|
+
"demo_value": "Hide Supplement Facts"
|
|
2103
|
+
},
|
|
2104
|
+
{
|
|
2105
|
+
"key": "ingredients_3_ingredients_url",
|
|
2106
|
+
"kind": "link",
|
|
2107
|
+
"role": "routing",
|
|
2108
|
+
"description": "Supplement-facts link target.",
|
|
2109
|
+
"source_policy": "spec_truth"
|
|
2110
|
+
},
|
|
2111
|
+
{
|
|
2112
|
+
"key": "ingredients_3_promise_heading",
|
|
2113
|
+
"kind": "copy",
|
|
2114
|
+
"role": "headline",
|
|
2115
|
+
"description": "Section heading copy.",
|
|
2116
|
+
"source_policy": "generated",
|
|
2117
|
+
"length_band_chars": {
|
|
2118
|
+
"min": 11,
|
|
2119
|
+
"max": 25
|
|
2120
|
+
},
|
|
2121
|
+
"demo_value": "Our Promise to You"
|
|
2122
|
+
},
|
|
2123
|
+
{
|
|
2124
|
+
"key": "ingredients_3_promise_1_text",
|
|
2125
|
+
"kind": "copy",
|
|
2126
|
+
"role": "micro",
|
|
2127
|
+
"description": "Promise chip label (e.g. 'All Natural'). Certification wording only when substantiated.",
|
|
2128
|
+
"source_policy": "generated",
|
|
2129
|
+
"length_band_chars": {
|
|
2130
|
+
"min": 4,
|
|
2131
|
+
"max": 20
|
|
2132
|
+
},
|
|
2133
|
+
"demo_value": "All Natural"
|
|
2134
|
+
},
|
|
2135
|
+
{
|
|
2136
|
+
"key": "ingredients_3_promise_2_text",
|
|
2137
|
+
"kind": "copy",
|
|
2138
|
+
"role": "micro",
|
|
2139
|
+
"description": "Promise chip label (e.g. 'All Natural'). Certification wording only when substantiated.",
|
|
2140
|
+
"source_policy": "generated",
|
|
2141
|
+
"length_band_chars": {
|
|
2142
|
+
"min": 3,
|
|
2143
|
+
"max": 13
|
|
2144
|
+
},
|
|
2145
|
+
"demo_value": "Non-GMO"
|
|
2146
|
+
},
|
|
2147
|
+
{
|
|
2148
|
+
"key": "ingredients_3_promise_3_text",
|
|
2149
|
+
"kind": "copy",
|
|
2150
|
+
"role": "micro",
|
|
2151
|
+
"description": "Promise chip label (e.g. 'All Natural'). Certification wording only when substantiated.",
|
|
2152
|
+
"source_policy": "generated",
|
|
2153
|
+
"length_band_chars": {
|
|
2154
|
+
"min": 4,
|
|
2155
|
+
"max": 20
|
|
2156
|
+
},
|
|
2157
|
+
"demo_value": "Gluten Free"
|
|
2158
|
+
},
|
|
2159
|
+
{
|
|
2160
|
+
"key": "ingredients_3_promise_4_text",
|
|
2161
|
+
"kind": "copy",
|
|
2162
|
+
"role": "micro",
|
|
2163
|
+
"description": "Promise chip label (e.g. 'All Natural'). Certification wording only when substantiated.",
|
|
2164
|
+
"source_policy": "generated",
|
|
2165
|
+
"length_band_chars": {
|
|
2166
|
+
"min": 4,
|
|
2167
|
+
"max": 20
|
|
2168
|
+
},
|
|
2169
|
+
"demo_value": "Made In USA"
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
"key": "ingredients_3_promise_5_text",
|
|
2173
|
+
"kind": "copy",
|
|
2174
|
+
"role": "micro",
|
|
2175
|
+
"description": "Promise chip label (e.g. 'All Natural'). Certification wording only when substantiated.",
|
|
2176
|
+
"source_policy": "generated",
|
|
2177
|
+
"length_band_chars": {
|
|
2178
|
+
"min": 4,
|
|
2179
|
+
"max": 18
|
|
2180
|
+
},
|
|
2181
|
+
"demo_value": "No Fillers"
|
|
2182
|
+
},
|
|
2183
|
+
{
|
|
2184
|
+
"key": "ingredients_3_promise_6_text",
|
|
2185
|
+
"kind": "copy",
|
|
2186
|
+
"role": "micro",
|
|
2187
|
+
"description": "Promise chip label (e.g. 'All Natural'). Certification wording only when substantiated.",
|
|
2188
|
+
"source_policy": "generated",
|
|
2189
|
+
"length_band_chars": {
|
|
2190
|
+
"min": 4,
|
|
2191
|
+
"max": 18
|
|
2192
|
+
},
|
|
2193
|
+
"demo_value": "Sugar Free"
|
|
2194
|
+
},
|
|
2195
|
+
{
|
|
2196
|
+
"key": "ingredients_3_promise_1_icon",
|
|
2197
|
+
"kind": "image",
|
|
2198
|
+
"role": "chrome",
|
|
2199
|
+
"description": "Promise chip icon \u2014 template chrome.",
|
|
2200
|
+
"source_policy": "template_static"
|
|
2201
|
+
},
|
|
2202
|
+
{
|
|
2203
|
+
"key": "ingredients_3_promise_2_icon",
|
|
2204
|
+
"kind": "image",
|
|
2205
|
+
"role": "chrome",
|
|
2206
|
+
"description": "Promise chip icon \u2014 template chrome.",
|
|
2207
|
+
"source_policy": "template_static"
|
|
2208
|
+
},
|
|
2209
|
+
{
|
|
2210
|
+
"key": "ingredients_3_promise_3_icon",
|
|
2211
|
+
"kind": "image",
|
|
2212
|
+
"role": "chrome",
|
|
2213
|
+
"description": "Promise chip icon \u2014 template chrome.",
|
|
2214
|
+
"source_policy": "template_static"
|
|
2215
|
+
},
|
|
2216
|
+
{
|
|
2217
|
+
"key": "ingredients_3_promise_4_icon",
|
|
2218
|
+
"kind": "image",
|
|
2219
|
+
"role": "chrome",
|
|
2220
|
+
"description": "Promise chip icon \u2014 template chrome.",
|
|
2221
|
+
"source_policy": "template_static"
|
|
2222
|
+
},
|
|
2223
|
+
{
|
|
2224
|
+
"key": "ingredients_3_promise_5_icon",
|
|
2225
|
+
"kind": "image",
|
|
2226
|
+
"role": "chrome",
|
|
2227
|
+
"description": "Promise chip icon \u2014 template chrome.",
|
|
2228
|
+
"source_policy": "template_static"
|
|
2229
|
+
},
|
|
2230
|
+
{
|
|
2231
|
+
"key": "ingredients_3_promise_6_icon",
|
|
2232
|
+
"kind": "image",
|
|
2233
|
+
"role": "chrome",
|
|
2234
|
+
"description": "Promise chip icon \u2014 template chrome.",
|
|
2235
|
+
"source_policy": "template_static"
|
|
2236
|
+
},
|
|
2237
|
+
{
|
|
2238
|
+
"key": "science_1_heading",
|
|
2239
|
+
"kind": "copy",
|
|
2240
|
+
"role": "headline",
|
|
2241
|
+
"description": "Mechanism/science section heading.",
|
|
2242
|
+
"source_policy": "generated",
|
|
2243
|
+
"length_band_chars": {
|
|
2244
|
+
"min": 17,
|
|
2245
|
+
"max": 39
|
|
2246
|
+
},
|
|
2247
|
+
"demo_value": "The Science Behind [Product]"
|
|
2248
|
+
},
|
|
2249
|
+
{
|
|
2250
|
+
"key": "science_1_intro",
|
|
2251
|
+
"kind": "copy",
|
|
2252
|
+
"role": "body",
|
|
2253
|
+
"description": "Mechanism section intro: why alternatives fail, why this works (arc roles 2-3). Study/science claims must be brief-sourced (anti-pattern 9: science theater).",
|
|
2254
|
+
"source_policy": "generated",
|
|
2255
|
+
"length_band_chars": {
|
|
2256
|
+
"min": 164,
|
|
2257
|
+
"max": 523
|
|
2258
|
+
},
|
|
2259
|
+
"demo_value": "Most sleep supplements throw melatonin at the problem and call it done. Our formula works differentl"
|
|
2260
|
+
},
|
|
2261
|
+
{
|
|
2262
|
+
"key": "science_1_card_1_image",
|
|
2263
|
+
"kind": "image",
|
|
2264
|
+
"role": "image",
|
|
2265
|
+
"description": "Mechanism card diagram/illustration. AI-generated from merchant references.",
|
|
2266
|
+
"source_policy": "generated"
|
|
2267
|
+
},
|
|
2268
|
+
{
|
|
2269
|
+
"key": "science_1_card_1_image_alt",
|
|
2270
|
+
"kind": "alt_text",
|
|
2271
|
+
"role": "alt_text",
|
|
2272
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
2273
|
+
"source_policy": "generated"
|
|
2274
|
+
},
|
|
2275
|
+
{
|
|
2276
|
+
"key": "science_1_card_1_title",
|
|
2277
|
+
"kind": "copy",
|
|
2278
|
+
"role": "headline",
|
|
2279
|
+
"description": "Mechanism card title.",
|
|
2280
|
+
"source_policy": "generated",
|
|
2281
|
+
"length_band_chars": {
|
|
2282
|
+
"min": 20,
|
|
2283
|
+
"max": 48
|
|
2284
|
+
},
|
|
2285
|
+
"demo_value": "Lower Cortisol, Fall Asleep Faster"
|
|
2286
|
+
},
|
|
2287
|
+
{
|
|
2288
|
+
"key": "science_1_card_1_body",
|
|
2289
|
+
"kind": "copy",
|
|
2290
|
+
"role": "body",
|
|
2291
|
+
"description": "Mechanism card body. Every study/clinical reference must trace to proof_assets.",
|
|
2292
|
+
"source_policy": "generated",
|
|
2293
|
+
"length_band_chars": {
|
|
2294
|
+
"min": 105,
|
|
2295
|
+
"max": 336
|
|
2296
|
+
},
|
|
2297
|
+
"demo_value": "Cortisol is the #1 reason people lie awake at night. KSM-66 Ashwagandha has been shown in multiple t"
|
|
2298
|
+
},
|
|
2299
|
+
{
|
|
2300
|
+
"key": "science_1_card_2_image",
|
|
2301
|
+
"kind": "image",
|
|
2302
|
+
"role": "image",
|
|
2303
|
+
"description": "Mechanism card diagram/illustration. AI-generated from merchant references.",
|
|
2304
|
+
"source_policy": "generated"
|
|
2305
|
+
},
|
|
2306
|
+
{
|
|
2307
|
+
"key": "science_1_card_2_image_alt",
|
|
2308
|
+
"kind": "alt_text",
|
|
2309
|
+
"role": "alt_text",
|
|
2310
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
2311
|
+
"source_policy": "generated"
|
|
2312
|
+
},
|
|
2313
|
+
{
|
|
2314
|
+
"key": "science_1_card_2_title",
|
|
2315
|
+
"kind": "copy",
|
|
2316
|
+
"role": "headline",
|
|
2317
|
+
"description": "Mechanism card title.",
|
|
2318
|
+
"source_policy": "generated",
|
|
2319
|
+
"length_band_chars": {
|
|
2320
|
+
"min": 19,
|
|
2321
|
+
"max": 43
|
|
2322
|
+
},
|
|
2323
|
+
"demo_value": "Activate Your Body's Off Switch"
|
|
2324
|
+
},
|
|
2325
|
+
{
|
|
2326
|
+
"key": "science_1_card_2_body",
|
|
2327
|
+
"kind": "copy",
|
|
2328
|
+
"role": "body",
|
|
2329
|
+
"description": "Mechanism card body. Every study/clinical reference must trace to proof_assets.",
|
|
2330
|
+
"source_policy": "generated",
|
|
2331
|
+
"length_band_chars": {
|
|
2332
|
+
"min": 108,
|
|
2333
|
+
"max": 347
|
|
2334
|
+
},
|
|
2335
|
+
"demo_value": "Magnesium Glycinate activates GABA receptors \u2014 the neurological brakes that slow down brain activity"
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
"key": "science_1_card_3_image",
|
|
2339
|
+
"kind": "image",
|
|
2340
|
+
"role": "image",
|
|
2341
|
+
"description": "Mechanism card diagram/illustration. AI-generated from merchant references.",
|
|
2342
|
+
"source_policy": "generated"
|
|
2343
|
+
},
|
|
2344
|
+
{
|
|
2345
|
+
"key": "science_1_card_3_image_alt",
|
|
2346
|
+
"kind": "alt_text",
|
|
2347
|
+
"role": "alt_text",
|
|
2348
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
2349
|
+
"source_policy": "generated"
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
"key": "science_1_card_3_title",
|
|
2353
|
+
"kind": "copy",
|
|
2354
|
+
"role": "headline",
|
|
2355
|
+
"description": "Mechanism card title.",
|
|
2356
|
+
"source_policy": "generated",
|
|
2357
|
+
"length_band_chars": {
|
|
2358
|
+
"min": 15,
|
|
2359
|
+
"max": 35
|
|
2360
|
+
},
|
|
2361
|
+
"demo_value": "Stay in Deep Sleep Longer"
|
|
2362
|
+
},
|
|
2363
|
+
{
|
|
2364
|
+
"key": "science_1_card_3_body",
|
|
2365
|
+
"kind": "copy",
|
|
2366
|
+
"role": "body",
|
|
2367
|
+
"description": "Mechanism card body. Every study/clinical reference must trace to proof_assets.",
|
|
2368
|
+
"source_policy": "generated",
|
|
2369
|
+
"length_band_chars": {
|
|
2370
|
+
"min": 117,
|
|
2371
|
+
"max": 374
|
|
2372
|
+
},
|
|
2373
|
+
"demo_value": "The B-Complex and Zinc Bisglycinate in our formula support serotonin and melatonin production from t"
|
|
2374
|
+
},
|
|
2375
|
+
{
|
|
2376
|
+
"key": "testimonials_2_heading_prefix",
|
|
2377
|
+
"kind": "copy",
|
|
2378
|
+
"role": "micro",
|
|
2379
|
+
"description": "Testimonials heading, part 1 (before the stat), e.g. 'Trusted by'.",
|
|
2380
|
+
"source_policy": "generated",
|
|
2381
|
+
"length_band_chars": {
|
|
2382
|
+
"min": 4,
|
|
2383
|
+
"max": 18
|
|
2384
|
+
},
|
|
2385
|
+
"demo_value": "Trusted by"
|
|
2386
|
+
},
|
|
2387
|
+
{
|
|
2388
|
+
"key": "testimonials_2_heading_stat",
|
|
2389
|
+
"kind": "copy",
|
|
2390
|
+
"role": "micro",
|
|
2391
|
+
"description": "Customer-count stat in the testimonials heading, e.g. '48,000+'. Real order/review data only (anti-pattern 1); coordinate with other counts on the page \u2014 contradictory counts are anti-pattern 6.",
|
|
2392
|
+
"source_policy": "merchant_asset_required",
|
|
2393
|
+
"length_band_chars": {
|
|
2394
|
+
"min": 3,
|
|
2395
|
+
"max": 13
|
|
2396
|
+
},
|
|
2397
|
+
"demo_value": "48,000+",
|
|
2398
|
+
"proof_surface": true,
|
|
2399
|
+
"proof_modality": "count",
|
|
2400
|
+
"needs_merchant_input_able": true
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
"key": "testimonials_2_heading_suffix",
|
|
2404
|
+
"kind": "copy",
|
|
2405
|
+
"role": "micro",
|
|
2406
|
+
"description": "Testimonials heading, part 3 (after the stat), e.g. 'Better Sleepers'.",
|
|
2407
|
+
"source_policy": "generated",
|
|
2408
|
+
"length_band_chars": {
|
|
2409
|
+
"min": 6,
|
|
2410
|
+
"max": 27
|
|
2411
|
+
},
|
|
2412
|
+
"demo_value": "Better Sleepers"
|
|
2413
|
+
},
|
|
2414
|
+
{
|
|
2415
|
+
"key": "testimonials_2_review_1_name",
|
|
2416
|
+
"kind": "copy",
|
|
2417
|
+
"role": "identity",
|
|
2418
|
+
"description": "Testimonial reviewer display name from the review platform.",
|
|
2419
|
+
"source_policy": "merchant_asset_required",
|
|
2420
|
+
"length_band_chars": {
|
|
2421
|
+
"min": 4,
|
|
2422
|
+
"max": 18
|
|
2423
|
+
},
|
|
2424
|
+
"demo_value": "Sandra M.",
|
|
2425
|
+
"proof_surface": true,
|
|
2426
|
+
"proof_modality": "review",
|
|
2427
|
+
"needs_merchant_input_able": true
|
|
2428
|
+
},
|
|
2429
|
+
{
|
|
2430
|
+
"key": "testimonials_2_review_1_text",
|
|
2431
|
+
"kind": "copy",
|
|
2432
|
+
"role": "body",
|
|
2433
|
+
"description": "Testimonial body \u2014 a real review, verbatim or lightly trimmed (anti-pattern 2).",
|
|
2434
|
+
"source_policy": "merchant_asset_required",
|
|
2435
|
+
"length_band_chars": {
|
|
2436
|
+
"min": 84,
|
|
2437
|
+
"max": 267
|
|
2438
|
+
},
|
|
2439
|
+
"demo_value": "I've tried melatonin, magnesium spray, sleep apps \u2014 nothing worked. Two weeks in and I'm sleeping th",
|
|
2440
|
+
"proof_surface": true,
|
|
2441
|
+
"proof_modality": "review",
|
|
2442
|
+
"needs_merchant_input_able": true
|
|
2443
|
+
},
|
|
2444
|
+
{
|
|
2445
|
+
"key": "testimonials_2_review_1_likes",
|
|
2446
|
+
"kind": "copy",
|
|
2447
|
+
"role": "micro",
|
|
2448
|
+
"description": "Social-count line under the testimonial (e.g. '3.1k people liked this'). Real platform data only; omit otherwise.",
|
|
2449
|
+
"source_policy": "merchant_asset_required",
|
|
2450
|
+
"length_band_chars": {
|
|
2451
|
+
"min": 9,
|
|
2452
|
+
"max": 40
|
|
2453
|
+
},
|
|
2454
|
+
"demo_value": "3.1k people liked this",
|
|
2455
|
+
"proof_surface": true,
|
|
2456
|
+
"proof_modality": "count",
|
|
2457
|
+
"needs_merchant_input_able": true
|
|
2458
|
+
},
|
|
2459
|
+
{
|
|
2460
|
+
"key": "testimonials_2_review_2_name",
|
|
2461
|
+
"kind": "copy",
|
|
2462
|
+
"role": "identity",
|
|
2463
|
+
"description": "Testimonial reviewer display name from the review platform.",
|
|
2464
|
+
"source_policy": "merchant_asset_required",
|
|
2465
|
+
"length_band_chars": {
|
|
2466
|
+
"min": 4,
|
|
2467
|
+
"max": 16
|
|
2468
|
+
},
|
|
2469
|
+
"demo_value": "Kevin R.",
|
|
2470
|
+
"proof_surface": true,
|
|
2471
|
+
"proof_modality": "review",
|
|
2472
|
+
"needs_merchant_input_able": true
|
|
2473
|
+
},
|
|
2474
|
+
{
|
|
2475
|
+
"key": "testimonials_2_review_2_text",
|
|
2476
|
+
"kind": "copy",
|
|
2477
|
+
"role": "body",
|
|
2478
|
+
"description": "Testimonial body \u2014 a real review, verbatim or lightly trimmed (anti-pattern 2).",
|
|
2479
|
+
"source_policy": "merchant_asset_required",
|
|
2480
|
+
"length_band_chars": {
|
|
2481
|
+
"min": 93,
|
|
2482
|
+
"max": 298
|
|
2483
|
+
},
|
|
2484
|
+
"demo_value": "The difference is dramatic. No grogginess in the morning, no dependency feeling, just genuinely bett",
|
|
2485
|
+
"proof_surface": true,
|
|
2486
|
+
"proof_modality": "review",
|
|
2487
|
+
"needs_merchant_input_able": true
|
|
2488
|
+
},
|
|
2489
|
+
{
|
|
2490
|
+
"key": "testimonials_2_review_2_likes",
|
|
2491
|
+
"kind": "copy",
|
|
2492
|
+
"role": "micro",
|
|
2493
|
+
"description": "Social-count line under the testimonial (e.g. '3.1k people liked this'). Real platform data only; omit otherwise.",
|
|
2494
|
+
"source_policy": "merchant_asset_required",
|
|
2495
|
+
"length_band_chars": {
|
|
2496
|
+
"min": 9,
|
|
2497
|
+
"max": 40
|
|
2498
|
+
},
|
|
2499
|
+
"demo_value": "2.4k people liked this",
|
|
2500
|
+
"proof_surface": true,
|
|
2501
|
+
"proof_modality": "count",
|
|
2502
|
+
"needs_merchant_input_able": true
|
|
2503
|
+
},
|
|
2504
|
+
{
|
|
2505
|
+
"key": "testimonials_2_review_3_name",
|
|
2506
|
+
"kind": "copy",
|
|
2507
|
+
"role": "identity",
|
|
2508
|
+
"description": "Testimonial reviewer display name from the review platform.",
|
|
2509
|
+
"source_policy": "merchant_asset_required",
|
|
2510
|
+
"length_band_chars": {
|
|
2511
|
+
"min": 4,
|
|
2512
|
+
"max": 16
|
|
2513
|
+
},
|
|
2514
|
+
"demo_value": "Priya L.",
|
|
2515
|
+
"proof_surface": true,
|
|
2516
|
+
"proof_modality": "review",
|
|
2517
|
+
"needs_merchant_input_able": true
|
|
2518
|
+
},
|
|
2519
|
+
{
|
|
2520
|
+
"key": "testimonials_2_review_3_text",
|
|
2521
|
+
"kind": "copy",
|
|
2522
|
+
"role": "body",
|
|
2523
|
+
"description": "Testimonial body \u2014 a real review, verbatim or lightly trimmed (anti-pattern 2).",
|
|
2524
|
+
"source_policy": "merchant_asset_required",
|
|
2525
|
+
"length_band_chars": {
|
|
2526
|
+
"min": 77,
|
|
2527
|
+
"max": 246
|
|
2528
|
+
},
|
|
2529
|
+
"demo_value": "As someone who's dealt with anxiety-driven insomnia for 5 years, I was skeptical. I ordered on a whi",
|
|
2530
|
+
"proof_surface": true,
|
|
2531
|
+
"proof_modality": "review",
|
|
2532
|
+
"needs_merchant_input_able": true
|
|
2533
|
+
},
|
|
2534
|
+
{
|
|
2535
|
+
"key": "reviews_3_badge_text",
|
|
2536
|
+
"kind": "copy",
|
|
2537
|
+
"role": "micro",
|
|
2538
|
+
"description": "Recommendation-rate badge, e.g. '96% of Users Would Recommend'. Real survey/review-platform data only (anti-pattern 1).",
|
|
2539
|
+
"source_policy": "merchant_asset_required",
|
|
2540
|
+
"length_band_chars": {
|
|
2541
|
+
"min": 11,
|
|
2542
|
+
"max": 50
|
|
2543
|
+
},
|
|
2544
|
+
"demo_value": "96% of Users Would Recommend",
|
|
2545
|
+
"proof_surface": true,
|
|
2546
|
+
"proof_modality": "count",
|
|
2547
|
+
"needs_merchant_input_able": true
|
|
2548
|
+
},
|
|
2549
|
+
{
|
|
2550
|
+
"key": "reviews_3_heading",
|
|
2551
|
+
"kind": "copy",
|
|
2552
|
+
"role": "headline",
|
|
2553
|
+
"description": "Reviews section heading.",
|
|
2554
|
+
"source_policy": "generated",
|
|
2555
|
+
"length_band_chars": {
|
|
2556
|
+
"min": 15,
|
|
2557
|
+
"max": 35
|
|
2558
|
+
},
|
|
2559
|
+
"demo_value": "What Our Users Are Saying"
|
|
2560
|
+
},
|
|
2561
|
+
{
|
|
2562
|
+
"key": "reviews_3_cat_1_label",
|
|
2563
|
+
"kind": "copy",
|
|
2564
|
+
"role": "micro",
|
|
2565
|
+
"description": "Rating-breakdown category label (e.g. 'Sleep Quality').",
|
|
2566
|
+
"source_policy": "generated",
|
|
2567
|
+
"length_band_chars": {
|
|
2568
|
+
"min": 5,
|
|
2569
|
+
"max": 23
|
|
2570
|
+
},
|
|
2571
|
+
"demo_value": "Sleep Quality"
|
|
2572
|
+
},
|
|
2573
|
+
{
|
|
2574
|
+
"key": "reviews_3_cat_1_score",
|
|
2575
|
+
"kind": "copy",
|
|
2576
|
+
"role": "micro",
|
|
2577
|
+
"description": "Rating-breakdown category score from the review platform.",
|
|
2578
|
+
"source_policy": "merchant_asset_required",
|
|
2579
|
+
"length_band_chars": {
|
|
2580
|
+
"min": 3,
|
|
2581
|
+
"max": 8
|
|
2582
|
+
},
|
|
2583
|
+
"demo_value": "4.9",
|
|
2584
|
+
"proof_surface": true,
|
|
2585
|
+
"proof_modality": "rating",
|
|
2586
|
+
"needs_merchant_input_able": true
|
|
2587
|
+
},
|
|
2588
|
+
{
|
|
2589
|
+
"key": "reviews_3_cat_2_label",
|
|
2590
|
+
"kind": "copy",
|
|
2591
|
+
"role": "micro",
|
|
2592
|
+
"description": "Rating-breakdown category label (e.g. 'Sleep Quality').",
|
|
2593
|
+
"source_policy": "generated",
|
|
2594
|
+
"length_band_chars": {
|
|
2595
|
+
"min": 4,
|
|
2596
|
+
"max": 20
|
|
2597
|
+
},
|
|
2598
|
+
"demo_value": "Ease of Use"
|
|
2599
|
+
},
|
|
2600
|
+
{
|
|
2601
|
+
"key": "reviews_3_cat_2_score",
|
|
2602
|
+
"kind": "copy",
|
|
2603
|
+
"role": "micro",
|
|
2604
|
+
"description": "Rating-breakdown category score from the review platform.",
|
|
2605
|
+
"source_policy": "merchant_asset_required",
|
|
2606
|
+
"length_band_chars": {
|
|
2607
|
+
"min": 3,
|
|
2608
|
+
"max": 8
|
|
2609
|
+
},
|
|
2610
|
+
"demo_value": "4.9",
|
|
2611
|
+
"proof_surface": true,
|
|
2612
|
+
"proof_modality": "rating",
|
|
2613
|
+
"needs_merchant_input_able": true
|
|
2614
|
+
},
|
|
2615
|
+
{
|
|
2616
|
+
"key": "reviews_3_cat_3_label",
|
|
2617
|
+
"kind": "copy",
|
|
2618
|
+
"role": "micro",
|
|
2619
|
+
"description": "Rating-breakdown category label (e.g. 'Sleep Quality').",
|
|
2620
|
+
"source_policy": "generated",
|
|
2621
|
+
"length_band_chars": {
|
|
2622
|
+
"min": 6,
|
|
2623
|
+
"max": 27
|
|
2624
|
+
},
|
|
2625
|
+
"demo_value": "Value for Money"
|
|
2626
|
+
},
|
|
2627
|
+
{
|
|
2628
|
+
"key": "reviews_3_cat_3_score",
|
|
2629
|
+
"kind": "copy",
|
|
2630
|
+
"role": "micro",
|
|
2631
|
+
"description": "Rating-breakdown category score from the review platform.",
|
|
2632
|
+
"source_policy": "merchant_asset_required",
|
|
2633
|
+
"length_band_chars": {
|
|
2634
|
+
"min": 3,
|
|
2635
|
+
"max": 8
|
|
2636
|
+
},
|
|
2637
|
+
"demo_value": "4.8",
|
|
2638
|
+
"proof_surface": true,
|
|
2639
|
+
"proof_modality": "rating",
|
|
2640
|
+
"needs_merchant_input_able": true
|
|
2641
|
+
},
|
|
2642
|
+
{
|
|
2643
|
+
"key": "reviews_3_cat_4_label",
|
|
2644
|
+
"kind": "copy",
|
|
2645
|
+
"role": "micro",
|
|
2646
|
+
"description": "Rating-breakdown category label (e.g. 'Sleep Quality').",
|
|
2647
|
+
"source_policy": "generated",
|
|
2648
|
+
"length_band_chars": {
|
|
2649
|
+
"min": 6,
|
|
2650
|
+
"max": 29
|
|
2651
|
+
},
|
|
2652
|
+
"demo_value": "Speed of Results"
|
|
2653
|
+
},
|
|
2654
|
+
{
|
|
2655
|
+
"key": "reviews_3_cat_4_score",
|
|
2656
|
+
"kind": "copy",
|
|
2657
|
+
"role": "micro",
|
|
2658
|
+
"description": "Rating-breakdown category score from the review platform.",
|
|
2659
|
+
"source_policy": "merchant_asset_required",
|
|
2660
|
+
"length_band_chars": {
|
|
2661
|
+
"min": 3,
|
|
2662
|
+
"max": 8
|
|
2663
|
+
},
|
|
2664
|
+
"demo_value": "4.7",
|
|
2665
|
+
"proof_surface": true,
|
|
2666
|
+
"proof_modality": "rating",
|
|
2667
|
+
"needs_merchant_input_able": true
|
|
2668
|
+
},
|
|
2669
|
+
{
|
|
2670
|
+
"key": "reviews_3_cat_5_label",
|
|
2671
|
+
"kind": "copy",
|
|
2672
|
+
"role": "micro",
|
|
2673
|
+
"description": "Rating-breakdown category label (e.g. 'Sleep Quality').",
|
|
2674
|
+
"source_policy": "generated",
|
|
2675
|
+
"length_band_chars": {
|
|
2676
|
+
"min": 5,
|
|
2677
|
+
"max": 23
|
|
2678
|
+
},
|
|
2679
|
+
"demo_value": "Overall Score"
|
|
2680
|
+
},
|
|
2681
|
+
{
|
|
2682
|
+
"key": "reviews_3_cat_5_score",
|
|
2683
|
+
"kind": "copy",
|
|
2684
|
+
"role": "micro",
|
|
2685
|
+
"description": "Rating-breakdown category score from the review platform.",
|
|
2686
|
+
"source_policy": "merchant_asset_required",
|
|
2687
|
+
"length_band_chars": {
|
|
2688
|
+
"min": 3,
|
|
2689
|
+
"max": 8
|
|
2690
|
+
},
|
|
2691
|
+
"demo_value": "4.9",
|
|
2692
|
+
"proof_surface": true,
|
|
2693
|
+
"proof_modality": "rating",
|
|
2694
|
+
"needs_merchant_input_able": true
|
|
2695
|
+
},
|
|
2696
|
+
{
|
|
2697
|
+
"key": "reviews_3_overall_score",
|
|
2698
|
+
"kind": "copy",
|
|
2699
|
+
"role": "micro",
|
|
2700
|
+
"description": "Overall aggregate rating (e.g. '4.9') from the review platform.",
|
|
2701
|
+
"source_policy": "merchant_asset_required",
|
|
2702
|
+
"length_band_chars": {
|
|
2703
|
+
"min": 3,
|
|
2704
|
+
"max": 8
|
|
2705
|
+
},
|
|
2706
|
+
"demo_value": "4.9",
|
|
2707
|
+
"proof_surface": true,
|
|
2708
|
+
"proof_modality": "rating",
|
|
2709
|
+
"needs_merchant_input_able": true
|
|
2710
|
+
},
|
|
2711
|
+
{
|
|
2712
|
+
"key": "reviews_3_review_basis",
|
|
2713
|
+
"kind": "copy",
|
|
2714
|
+
"role": "micro",
|
|
2715
|
+
"description": "Basis line under the score, e.g. 'Based on reviews from 48,312 verified customers'. Must match the review platform's real total.",
|
|
2716
|
+
"source_policy": "merchant_asset_required",
|
|
2717
|
+
"length_band_chars": {
|
|
2718
|
+
"min": 19,
|
|
2719
|
+
"max": 85
|
|
2720
|
+
},
|
|
2721
|
+
"demo_value": "Based on reviews from 48,312 verified customers",
|
|
2722
|
+
"proof_surface": true,
|
|
2723
|
+
"proof_modality": "count",
|
|
2724
|
+
"needs_merchant_input_able": true
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
"key": "reviews_3_card_1_photo",
|
|
2728
|
+
"kind": "image",
|
|
2729
|
+
"role": "image",
|
|
2730
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
2731
|
+
"source_policy": "merchant_asset_required",
|
|
2732
|
+
"proof_surface": true,
|
|
2733
|
+
"proof_modality": "ugc_photo",
|
|
2734
|
+
"needs_merchant_input_able": true
|
|
2735
|
+
},
|
|
2736
|
+
{
|
|
2737
|
+
"key": "reviews_3_card_1_avatar",
|
|
2738
|
+
"kind": "image",
|
|
2739
|
+
"role": "image",
|
|
2740
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
2741
|
+
"source_policy": "merchant_asset_required",
|
|
2742
|
+
"proof_surface": true,
|
|
2743
|
+
"proof_modality": "ugc_photo",
|
|
2744
|
+
"needs_merchant_input_able": true
|
|
2745
|
+
},
|
|
2746
|
+
{
|
|
2747
|
+
"key": "reviews_3_card_1_name",
|
|
2748
|
+
"kind": "copy",
|
|
2749
|
+
"role": "identity",
|
|
2750
|
+
"description": "Reviewer display name as on the review platform.",
|
|
2751
|
+
"source_policy": "merchant_asset_required",
|
|
2752
|
+
"length_band_chars": {
|
|
2753
|
+
"min": 4,
|
|
2754
|
+
"max": 18
|
|
2755
|
+
},
|
|
2756
|
+
"demo_value": "Sandra M.",
|
|
2757
|
+
"proof_surface": true,
|
|
2758
|
+
"proof_modality": "review",
|
|
2759
|
+
"needs_merchant_input_able": true
|
|
2760
|
+
},
|
|
2761
|
+
{
|
|
2762
|
+
"key": "reviews_3_card_1_posted",
|
|
2763
|
+
"kind": "copy",
|
|
2764
|
+
"role": "micro",
|
|
2765
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
2766
|
+
"source_policy": "merchant_asset_required",
|
|
2767
|
+
"length_band_chars": {
|
|
2768
|
+
"min": 5,
|
|
2769
|
+
"max": 22
|
|
2770
|
+
},
|
|
2771
|
+
"demo_value": "Posted Today",
|
|
2772
|
+
"proof_surface": true,
|
|
2773
|
+
"proof_modality": "review",
|
|
2774
|
+
"needs_merchant_input_able": true
|
|
2775
|
+
},
|
|
2776
|
+
{
|
|
2777
|
+
"key": "reviews_3_card_1_title",
|
|
2778
|
+
"kind": "copy",
|
|
2779
|
+
"role": "micro",
|
|
2780
|
+
"description": "Review card title from the real review.",
|
|
2781
|
+
"source_policy": "merchant_asset_required",
|
|
2782
|
+
"length_band_chars": {
|
|
2783
|
+
"min": 14,
|
|
2784
|
+
"max": 61
|
|
2785
|
+
},
|
|
2786
|
+
"demo_value": "Finally sleeping through the night",
|
|
2787
|
+
"proof_surface": true,
|
|
2788
|
+
"proof_modality": "review",
|
|
2789
|
+
"needs_merchant_input_able": true
|
|
2790
|
+
},
|
|
2791
|
+
{
|
|
2792
|
+
"key": "reviews_3_card_1_body",
|
|
2793
|
+
"kind": "copy",
|
|
2794
|
+
"role": "body",
|
|
2795
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
2796
|
+
"source_policy": "merchant_asset_required",
|
|
2797
|
+
"length_band_chars": {
|
|
2798
|
+
"min": 76,
|
|
2799
|
+
"max": 242
|
|
2800
|
+
},
|
|
2801
|
+
"demo_value": "I was skeptical after trying so many things. Two weeks in and I sleep 7\u20138 solid hours. Zero groggine",
|
|
2802
|
+
"proof_surface": true,
|
|
2803
|
+
"proof_modality": "review",
|
|
2804
|
+
"needs_merchant_input_able": true
|
|
2805
|
+
},
|
|
2806
|
+
{
|
|
2807
|
+
"key": "reviews_3_card_2_photo",
|
|
2808
|
+
"kind": "image",
|
|
2809
|
+
"role": "image",
|
|
2810
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
2811
|
+
"source_policy": "merchant_asset_required",
|
|
2812
|
+
"proof_surface": true,
|
|
2813
|
+
"proof_modality": "ugc_photo",
|
|
2814
|
+
"needs_merchant_input_able": true
|
|
2815
|
+
},
|
|
2816
|
+
{
|
|
2817
|
+
"key": "reviews_3_card_2_avatar",
|
|
2818
|
+
"kind": "image",
|
|
2819
|
+
"role": "image",
|
|
2820
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
2821
|
+
"source_policy": "merchant_asset_required",
|
|
2822
|
+
"proof_surface": true,
|
|
2823
|
+
"proof_modality": "ugc_photo",
|
|
2824
|
+
"needs_merchant_input_able": true
|
|
2825
|
+
},
|
|
2826
|
+
{
|
|
2827
|
+
"key": "reviews_3_card_2_name",
|
|
2828
|
+
"kind": "copy",
|
|
2829
|
+
"role": "identity",
|
|
2830
|
+
"description": "Reviewer display name as on the review platform.",
|
|
2831
|
+
"source_policy": "merchant_asset_required",
|
|
2832
|
+
"length_band_chars": {
|
|
2833
|
+
"min": 4,
|
|
2834
|
+
"max": 16
|
|
2835
|
+
},
|
|
2836
|
+
"demo_value": "Kevin R.",
|
|
2837
|
+
"proof_surface": true,
|
|
2838
|
+
"proof_modality": "review",
|
|
2839
|
+
"needs_merchant_input_able": true
|
|
2840
|
+
},
|
|
2841
|
+
{
|
|
2842
|
+
"key": "reviews_3_card_2_posted",
|
|
2843
|
+
"kind": "copy",
|
|
2844
|
+
"role": "micro",
|
|
2845
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
2846
|
+
"source_policy": "merchant_asset_required",
|
|
2847
|
+
"length_band_chars": {
|
|
2848
|
+
"min": 5,
|
|
2849
|
+
"max": 22
|
|
2850
|
+
},
|
|
2851
|
+
"demo_value": "Posted Today",
|
|
2852
|
+
"proof_surface": true,
|
|
2853
|
+
"proof_modality": "review",
|
|
2854
|
+
"needs_merchant_input_able": true
|
|
2855
|
+
},
|
|
2856
|
+
{
|
|
2857
|
+
"key": "reviews_3_card_2_title",
|
|
2858
|
+
"kind": "copy",
|
|
2859
|
+
"role": "micro",
|
|
2860
|
+
"description": "Review card title from the real review.",
|
|
2861
|
+
"source_policy": "merchant_asset_required",
|
|
2862
|
+
"length_band_chars": {
|
|
2863
|
+
"min": 10,
|
|
2864
|
+
"max": 43
|
|
2865
|
+
},
|
|
2866
|
+
"demo_value": "Replaced my prescription",
|
|
2867
|
+
"proof_surface": true,
|
|
2868
|
+
"proof_modality": "review",
|
|
2869
|
+
"needs_merchant_input_able": true
|
|
2870
|
+
},
|
|
2871
|
+
{
|
|
2872
|
+
"key": "reviews_3_card_2_body",
|
|
2873
|
+
"kind": "copy",
|
|
2874
|
+
"role": "body",
|
|
2875
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
2876
|
+
"source_policy": "merchant_asset_required",
|
|
2877
|
+
"length_band_chars": {
|
|
2878
|
+
"min": 80,
|
|
2879
|
+
"max": 256
|
|
2880
|
+
},
|
|
2881
|
+
"demo_value": "My doctor helped me wean off my prescription sleep med and transition to our formula. It works just ",
|
|
2882
|
+
"proof_surface": true,
|
|
2883
|
+
"proof_modality": "review",
|
|
2884
|
+
"needs_merchant_input_able": true
|
|
2885
|
+
},
|
|
2886
|
+
{
|
|
2887
|
+
"key": "reviews_3_card_3_photo",
|
|
2888
|
+
"kind": "image",
|
|
2889
|
+
"role": "image",
|
|
2890
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
2891
|
+
"source_policy": "merchant_asset_required",
|
|
2892
|
+
"proof_surface": true,
|
|
2893
|
+
"proof_modality": "ugc_photo",
|
|
2894
|
+
"needs_merchant_input_able": true
|
|
2895
|
+
},
|
|
2896
|
+
{
|
|
2897
|
+
"key": "reviews_3_card_3_avatar",
|
|
2898
|
+
"kind": "image",
|
|
2899
|
+
"role": "image",
|
|
2900
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
2901
|
+
"source_policy": "merchant_asset_required",
|
|
2902
|
+
"proof_surface": true,
|
|
2903
|
+
"proof_modality": "ugc_photo",
|
|
2904
|
+
"needs_merchant_input_able": true
|
|
2905
|
+
},
|
|
2906
|
+
{
|
|
2907
|
+
"key": "reviews_3_card_3_name",
|
|
2908
|
+
"kind": "copy",
|
|
2909
|
+
"role": "identity",
|
|
2910
|
+
"description": "Reviewer display name as on the review platform.",
|
|
2911
|
+
"source_policy": "merchant_asset_required",
|
|
2912
|
+
"length_band_chars": {
|
|
2913
|
+
"min": 4,
|
|
2914
|
+
"max": 16
|
|
2915
|
+
},
|
|
2916
|
+
"demo_value": "Priya L.",
|
|
2917
|
+
"proof_surface": true,
|
|
2918
|
+
"proof_modality": "review",
|
|
2919
|
+
"needs_merchant_input_able": true
|
|
2920
|
+
},
|
|
2921
|
+
{
|
|
2922
|
+
"key": "reviews_3_card_3_posted",
|
|
2923
|
+
"kind": "copy",
|
|
2924
|
+
"role": "micro",
|
|
2925
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
2926
|
+
"source_policy": "merchant_asset_required",
|
|
2927
|
+
"length_band_chars": {
|
|
2928
|
+
"min": 6,
|
|
2929
|
+
"max": 29
|
|
2930
|
+
},
|
|
2931
|
+
"demo_value": "Posted Yesterday",
|
|
2932
|
+
"proof_surface": true,
|
|
2933
|
+
"proof_modality": "review",
|
|
2934
|
+
"needs_merchant_input_able": true
|
|
2935
|
+
},
|
|
2936
|
+
{
|
|
2937
|
+
"key": "reviews_3_card_3_title",
|
|
2938
|
+
"kind": "copy",
|
|
2939
|
+
"role": "micro",
|
|
2940
|
+
"description": "Review card title from the real review.",
|
|
2941
|
+
"source_policy": "merchant_asset_required",
|
|
2942
|
+
"length_band_chars": {
|
|
2943
|
+
"min": 10,
|
|
2944
|
+
"max": 43
|
|
2945
|
+
},
|
|
2946
|
+
"demo_value": "Anxiety insomnia is gone",
|
|
2947
|
+
"proof_surface": true,
|
|
2948
|
+
"proof_modality": "review",
|
|
2949
|
+
"needs_merchant_input_able": true
|
|
2950
|
+
},
|
|
2951
|
+
{
|
|
2952
|
+
"key": "reviews_3_card_3_body",
|
|
2953
|
+
"kind": "copy",
|
|
2954
|
+
"role": "body",
|
|
2955
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
2956
|
+
"source_policy": "merchant_asset_required",
|
|
2957
|
+
"length_band_chars": {
|
|
2958
|
+
"min": 76,
|
|
2959
|
+
"max": 245
|
|
2960
|
+
},
|
|
2961
|
+
"demo_value": "My mind used to race the second I got into bed. Now I take two capsules, read for 20 minutes, and I'",
|
|
2962
|
+
"proof_surface": true,
|
|
2963
|
+
"proof_modality": "review",
|
|
2964
|
+
"needs_merchant_input_able": true
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
"key": "reviews_3_card_4_photo",
|
|
2968
|
+
"kind": "image",
|
|
2969
|
+
"role": "image",
|
|
2970
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
2971
|
+
"source_policy": "merchant_asset_required",
|
|
2972
|
+
"proof_surface": true,
|
|
2973
|
+
"proof_modality": "ugc_photo",
|
|
2974
|
+
"needs_merchant_input_able": true
|
|
2975
|
+
},
|
|
2976
|
+
{
|
|
2977
|
+
"key": "reviews_3_card_4_avatar",
|
|
2978
|
+
"kind": "image",
|
|
2979
|
+
"role": "image",
|
|
2980
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
2981
|
+
"source_policy": "merchant_asset_required",
|
|
2982
|
+
"proof_surface": true,
|
|
2983
|
+
"proof_modality": "ugc_photo",
|
|
2984
|
+
"needs_merchant_input_able": true
|
|
2985
|
+
},
|
|
2986
|
+
{
|
|
2987
|
+
"key": "reviews_3_card_4_name",
|
|
2988
|
+
"kind": "copy",
|
|
2989
|
+
"role": "identity",
|
|
2990
|
+
"description": "Reviewer display name as on the review platform.",
|
|
2991
|
+
"source_policy": "merchant_asset_required",
|
|
2992
|
+
"length_band_chars": {
|
|
2993
|
+
"min": 3,
|
|
2994
|
+
"max": 12
|
|
2995
|
+
},
|
|
2996
|
+
"demo_value": "Tom B.",
|
|
2997
|
+
"proof_surface": true,
|
|
2998
|
+
"proof_modality": "review",
|
|
2999
|
+
"needs_merchant_input_able": true
|
|
3000
|
+
},
|
|
3001
|
+
{
|
|
3002
|
+
"key": "reviews_3_card_4_posted",
|
|
3003
|
+
"kind": "copy",
|
|
3004
|
+
"role": "micro",
|
|
3005
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
3006
|
+
"source_policy": "merchant_asset_required",
|
|
3007
|
+
"length_band_chars": {
|
|
3008
|
+
"min": 6,
|
|
3009
|
+
"max": 29
|
|
3010
|
+
},
|
|
3011
|
+
"demo_value": "Posted Yesterday",
|
|
3012
|
+
"proof_surface": true,
|
|
3013
|
+
"proof_modality": "review",
|
|
3014
|
+
"needs_merchant_input_able": true
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
"key": "reviews_3_card_4_title",
|
|
3018
|
+
"kind": "copy",
|
|
3019
|
+
"role": "micro",
|
|
3020
|
+
"description": "Review card title from the real review.",
|
|
3021
|
+
"source_policy": "merchant_asset_required",
|
|
3022
|
+
"length_band_chars": {
|
|
3023
|
+
"min": 9,
|
|
3024
|
+
"max": 41
|
|
3025
|
+
},
|
|
3026
|
+
"demo_value": "Husband uses it too now",
|
|
3027
|
+
"proof_surface": true,
|
|
3028
|
+
"proof_modality": "review",
|
|
3029
|
+
"needs_merchant_input_able": true
|
|
3030
|
+
},
|
|
3031
|
+
{
|
|
3032
|
+
"key": "reviews_3_card_4_body",
|
|
3033
|
+
"kind": "copy",
|
|
3034
|
+
"role": "body",
|
|
3035
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
3036
|
+
"source_policy": "merchant_asset_required",
|
|
3037
|
+
"length_band_chars": {
|
|
3038
|
+
"min": 70,
|
|
3039
|
+
"max": 226
|
|
3040
|
+
},
|
|
3041
|
+
"demo_value": "I ordered for myself and my husband started stealing my capsules. We both sleep so much better. Just",
|
|
3042
|
+
"proof_surface": true,
|
|
3043
|
+
"proof_modality": "review",
|
|
3044
|
+
"needs_merchant_input_able": true
|
|
3045
|
+
},
|
|
3046
|
+
{
|
|
3047
|
+
"key": "reviews_3_card_5_photo",
|
|
3048
|
+
"kind": "image",
|
|
3049
|
+
"role": "image",
|
|
3050
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
3051
|
+
"source_policy": "merchant_asset_required",
|
|
3052
|
+
"proof_surface": true,
|
|
3053
|
+
"proof_modality": "ugc_photo",
|
|
3054
|
+
"needs_merchant_input_able": true
|
|
3055
|
+
},
|
|
3056
|
+
{
|
|
3057
|
+
"key": "reviews_3_card_5_avatar",
|
|
3058
|
+
"kind": "image",
|
|
3059
|
+
"role": "image",
|
|
3060
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
3061
|
+
"source_policy": "merchant_asset_required",
|
|
3062
|
+
"proof_surface": true,
|
|
3063
|
+
"proof_modality": "ugc_photo",
|
|
3064
|
+
"needs_merchant_input_able": true
|
|
3065
|
+
},
|
|
3066
|
+
{
|
|
3067
|
+
"key": "reviews_3_card_5_name",
|
|
3068
|
+
"kind": "copy",
|
|
3069
|
+
"role": "identity",
|
|
3070
|
+
"description": "Reviewer display name as on the review platform.",
|
|
3071
|
+
"source_policy": "merchant_asset_required",
|
|
3072
|
+
"length_band_chars": {
|
|
3073
|
+
"min": 6,
|
|
3074
|
+
"max": 22
|
|
3075
|
+
},
|
|
3076
|
+
"demo_value": "Michelle D.",
|
|
3077
|
+
"proof_surface": true,
|
|
3078
|
+
"proof_modality": "review",
|
|
3079
|
+
"needs_merchant_input_able": true
|
|
3080
|
+
},
|
|
3081
|
+
{
|
|
3082
|
+
"key": "reviews_3_card_5_posted",
|
|
3083
|
+
"kind": "copy",
|
|
3084
|
+
"role": "micro",
|
|
3085
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
3086
|
+
"source_policy": "merchant_asset_required",
|
|
3087
|
+
"length_band_chars": {
|
|
3088
|
+
"min": 6,
|
|
3089
|
+
"max": 29
|
|
3090
|
+
},
|
|
3091
|
+
"demo_value": "Posted Yesterday",
|
|
3092
|
+
"proof_surface": true,
|
|
3093
|
+
"proof_modality": "review",
|
|
3094
|
+
"needs_merchant_input_able": true
|
|
3095
|
+
},
|
|
3096
|
+
{
|
|
3097
|
+
"key": "reviews_3_card_5_title",
|
|
3098
|
+
"kind": "copy",
|
|
3099
|
+
"role": "micro",
|
|
3100
|
+
"description": "Review card title from the real review.",
|
|
3101
|
+
"source_policy": "merchant_asset_required",
|
|
3102
|
+
"length_band_chars": {
|
|
3103
|
+
"min": 10,
|
|
3104
|
+
"max": 43
|
|
3105
|
+
},
|
|
3106
|
+
"demo_value": "No grogginess whatsoever",
|
|
3107
|
+
"proof_surface": true,
|
|
3108
|
+
"proof_modality": "review",
|
|
3109
|
+
"needs_merchant_input_able": true
|
|
3110
|
+
},
|
|
3111
|
+
{
|
|
3112
|
+
"key": "reviews_3_card_5_body",
|
|
3113
|
+
"kind": "copy",
|
|
3114
|
+
"role": "body",
|
|
3115
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
3116
|
+
"source_policy": "merchant_asset_required",
|
|
3117
|
+
"length_band_chars": {
|
|
3118
|
+
"min": 74,
|
|
3119
|
+
"max": 235
|
|
3120
|
+
},
|
|
3121
|
+
"demo_value": "The fact that I wake up clear-headed is the biggest difference from everything else I've tried. Real",
|
|
3122
|
+
"proof_surface": true,
|
|
3123
|
+
"proof_modality": "review",
|
|
3124
|
+
"needs_merchant_input_able": true
|
|
3125
|
+
},
|
|
3126
|
+
{
|
|
3127
|
+
"key": "reviews_3_card_6_photo",
|
|
3128
|
+
"kind": "image",
|
|
3129
|
+
"role": "image",
|
|
3130
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
3131
|
+
"source_policy": "merchant_asset_required",
|
|
3132
|
+
"proof_surface": true,
|
|
3133
|
+
"proof_modality": "ugc_photo",
|
|
3134
|
+
"needs_merchant_input_able": true
|
|
3135
|
+
},
|
|
3136
|
+
{
|
|
3137
|
+
"key": "reviews_3_card_6_avatar",
|
|
3138
|
+
"kind": "image",
|
|
3139
|
+
"role": "image",
|
|
3140
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
3141
|
+
"source_policy": "merchant_asset_required",
|
|
3142
|
+
"proof_surface": true,
|
|
3143
|
+
"proof_modality": "ugc_photo",
|
|
3144
|
+
"needs_merchant_input_able": true
|
|
3145
|
+
},
|
|
3146
|
+
{
|
|
3147
|
+
"key": "reviews_3_card_6_name",
|
|
3148
|
+
"kind": "copy",
|
|
3149
|
+
"role": "identity",
|
|
3150
|
+
"description": "Reviewer display name as on the review platform.",
|
|
3151
|
+
"source_policy": "merchant_asset_required",
|
|
3152
|
+
"length_band_chars": {
|
|
3153
|
+
"min": 4,
|
|
3154
|
+
"max": 16
|
|
3155
|
+
},
|
|
3156
|
+
"demo_value": "Anita K.",
|
|
3157
|
+
"proof_surface": true,
|
|
3158
|
+
"proof_modality": "review",
|
|
3159
|
+
"needs_merchant_input_able": true
|
|
3160
|
+
},
|
|
3161
|
+
{
|
|
3162
|
+
"key": "reviews_3_card_6_posted",
|
|
3163
|
+
"kind": "copy",
|
|
3164
|
+
"role": "micro",
|
|
3165
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
3166
|
+
"source_policy": "merchant_asset_required",
|
|
3167
|
+
"length_band_chars": {
|
|
3168
|
+
"min": 6,
|
|
3169
|
+
"max": 29
|
|
3170
|
+
},
|
|
3171
|
+
"demo_value": "Posted Last Week",
|
|
3172
|
+
"proof_surface": true,
|
|
3173
|
+
"proof_modality": "review",
|
|
3174
|
+
"needs_merchant_input_able": true
|
|
3175
|
+
},
|
|
3176
|
+
{
|
|
3177
|
+
"key": "reviews_3_card_6_title",
|
|
3178
|
+
"kind": "copy",
|
|
3179
|
+
"role": "micro",
|
|
3180
|
+
"description": "Review card title from the real review.",
|
|
3181
|
+
"source_policy": "merchant_asset_required",
|
|
3182
|
+
"length_band_chars": {
|
|
3183
|
+
"min": 11,
|
|
3184
|
+
"max": 50
|
|
3185
|
+
},
|
|
3186
|
+
"demo_value": "Works within the first night",
|
|
3187
|
+
"proof_surface": true,
|
|
3188
|
+
"proof_modality": "review",
|
|
3189
|
+
"needs_merchant_input_able": true
|
|
3190
|
+
},
|
|
3191
|
+
{
|
|
3192
|
+
"key": "reviews_3_card_6_body",
|
|
3193
|
+
"kind": "copy",
|
|
3194
|
+
"role": "body",
|
|
3195
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
3196
|
+
"source_policy": "merchant_asset_required",
|
|
3197
|
+
"length_band_chars": {
|
|
3198
|
+
"min": 87,
|
|
3199
|
+
"max": 278
|
|
3200
|
+
},
|
|
3201
|
+
"demo_value": "I felt a difference on night one. Subtle but real \u2014 I just felt calmer getting into bed and didn't w",
|
|
3202
|
+
"proof_surface": true,
|
|
3203
|
+
"proof_modality": "review",
|
|
3204
|
+
"needs_merchant_input_able": true
|
|
3205
|
+
},
|
|
3206
|
+
{
|
|
3207
|
+
"key": "reviews_3_card_7_photo",
|
|
3208
|
+
"kind": "image",
|
|
3209
|
+
"role": "image",
|
|
3210
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
3211
|
+
"source_policy": "merchant_asset_required",
|
|
3212
|
+
"proof_surface": true,
|
|
3213
|
+
"proof_modality": "ugc_photo",
|
|
3214
|
+
"needs_merchant_input_able": true
|
|
3215
|
+
},
|
|
3216
|
+
{
|
|
3217
|
+
"key": "reviews_3_card_7_avatar",
|
|
3218
|
+
"kind": "image",
|
|
3219
|
+
"role": "image",
|
|
3220
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
3221
|
+
"source_policy": "merchant_asset_required",
|
|
3222
|
+
"proof_surface": true,
|
|
3223
|
+
"proof_modality": "ugc_photo",
|
|
3224
|
+
"needs_merchant_input_able": true
|
|
3225
|
+
},
|
|
3226
|
+
{
|
|
3227
|
+
"key": "reviews_3_card_7_name",
|
|
3228
|
+
"kind": "copy",
|
|
3229
|
+
"role": "identity",
|
|
3230
|
+
"description": "Reviewer display name as on the review platform.",
|
|
3231
|
+
"source_policy": "merchant_asset_required",
|
|
3232
|
+
"length_band_chars": {
|
|
3233
|
+
"min": 4,
|
|
3234
|
+
"max": 16
|
|
3235
|
+
},
|
|
3236
|
+
"demo_value": "Derek H.",
|
|
3237
|
+
"proof_surface": true,
|
|
3238
|
+
"proof_modality": "review",
|
|
3239
|
+
"needs_merchant_input_able": true
|
|
3240
|
+
},
|
|
3241
|
+
{
|
|
3242
|
+
"key": "reviews_3_card_7_posted",
|
|
3243
|
+
"kind": "copy",
|
|
3244
|
+
"role": "micro",
|
|
3245
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
3246
|
+
"source_policy": "merchant_asset_required",
|
|
3247
|
+
"length_band_chars": {
|
|
3248
|
+
"min": 6,
|
|
3249
|
+
"max": 29
|
|
3250
|
+
},
|
|
3251
|
+
"demo_value": "Posted Last Week",
|
|
3252
|
+
"proof_surface": true,
|
|
3253
|
+
"proof_modality": "review",
|
|
3254
|
+
"needs_merchant_input_able": true
|
|
3255
|
+
},
|
|
3256
|
+
{
|
|
3257
|
+
"key": "reviews_3_card_7_title",
|
|
3258
|
+
"kind": "copy",
|
|
3259
|
+
"role": "micro",
|
|
3260
|
+
"description": "Review card title from the real review.",
|
|
3261
|
+
"source_policy": "merchant_asset_required",
|
|
3262
|
+
"length_band_chars": {
|
|
3263
|
+
"min": 14,
|
|
3264
|
+
"max": 63
|
|
3265
|
+
},
|
|
3266
|
+
"demo_value": "Cancelled three doctor appointments",
|
|
3267
|
+
"proof_surface": true,
|
|
3268
|
+
"proof_modality": "review",
|
|
3269
|
+
"needs_merchant_input_able": true
|
|
3270
|
+
},
|
|
3271
|
+
{
|
|
3272
|
+
"key": "reviews_3_card_7_body",
|
|
3273
|
+
"kind": "copy",
|
|
3274
|
+
"role": "body",
|
|
3275
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
3276
|
+
"source_policy": "merchant_asset_required",
|
|
3277
|
+
"length_band_chars": {
|
|
3278
|
+
"min": 87,
|
|
3279
|
+
"max": 278
|
|
3280
|
+
},
|
|
3281
|
+
"demo_value": "I was going to see a sleep specialist. Decided to try this first. Haven't needed the appointment. Sl",
|
|
3282
|
+
"proof_surface": true,
|
|
3283
|
+
"proof_modality": "review",
|
|
3284
|
+
"needs_merchant_input_able": true
|
|
3285
|
+
},
|
|
3286
|
+
{
|
|
3287
|
+
"key": "reviews_3_card_8_photo",
|
|
3288
|
+
"kind": "image",
|
|
3289
|
+
"role": "image",
|
|
3290
|
+
"description": "Customer UGC photo on the review card. Real UGC supplied by the merchant \u2014 fake UGC is a compliance non-starter; when absent use the photo-less review variant, never generation.",
|
|
3291
|
+
"source_policy": "merchant_asset_required",
|
|
3292
|
+
"proof_surface": true,
|
|
3293
|
+
"proof_modality": "ugc_photo",
|
|
3294
|
+
"needs_merchant_input_able": true
|
|
3295
|
+
},
|
|
3296
|
+
{
|
|
3297
|
+
"key": "reviews_3_card_8_avatar",
|
|
3298
|
+
"kind": "image",
|
|
3299
|
+
"role": "image",
|
|
3300
|
+
"description": "Reviewer avatar. Real UGC/brand asset from the merchant; never generated (photo-less fallback otherwise).",
|
|
3301
|
+
"source_policy": "merchant_asset_required",
|
|
3302
|
+
"proof_surface": true,
|
|
3303
|
+
"proof_modality": "ugc_photo",
|
|
3304
|
+
"needs_merchant_input_able": true
|
|
3305
|
+
},
|
|
3306
|
+
{
|
|
3307
|
+
"key": "reviews_3_card_8_name",
|
|
3308
|
+
"kind": "copy",
|
|
3309
|
+
"role": "identity",
|
|
3310
|
+
"description": "Reviewer display name as on the review platform.",
|
|
3311
|
+
"source_policy": "merchant_asset_required",
|
|
3312
|
+
"length_band_chars": {
|
|
3313
|
+
"min": 4,
|
|
3314
|
+
"max": 14
|
|
3315
|
+
},
|
|
3316
|
+
"demo_value": "Lena J.",
|
|
3317
|
+
"proof_surface": true,
|
|
3318
|
+
"proof_modality": "review",
|
|
3319
|
+
"needs_merchant_input_able": true
|
|
3320
|
+
},
|
|
3321
|
+
{
|
|
3322
|
+
"key": "reviews_3_card_8_posted",
|
|
3323
|
+
"kind": "copy",
|
|
3324
|
+
"role": "micro",
|
|
3325
|
+
"description": "Review recency line (e.g. 'Posted Today') \u2014 must reflect the real review date.",
|
|
3326
|
+
"source_policy": "merchant_asset_required",
|
|
3327
|
+
"length_band_chars": {
|
|
3328
|
+
"min": 6,
|
|
3329
|
+
"max": 29
|
|
3330
|
+
},
|
|
3331
|
+
"demo_value": "Posted Last Week",
|
|
3332
|
+
"proof_surface": true,
|
|
3333
|
+
"proof_modality": "review",
|
|
3334
|
+
"needs_merchant_input_able": true
|
|
3335
|
+
},
|
|
3336
|
+
{
|
|
3337
|
+
"key": "reviews_3_card_8_title",
|
|
3338
|
+
"kind": "copy",
|
|
3339
|
+
"role": "micro",
|
|
3340
|
+
"description": "Review card title from the real review.",
|
|
3341
|
+
"source_policy": "merchant_asset_required",
|
|
3342
|
+
"length_band_chars": {
|
|
3343
|
+
"min": 13,
|
|
3344
|
+
"max": 58
|
|
3345
|
+
},
|
|
3346
|
+
"demo_value": "Best thing I've bought this year",
|
|
3347
|
+
"proof_surface": true,
|
|
3348
|
+
"proof_modality": "review",
|
|
3349
|
+
"needs_merchant_input_able": true
|
|
3350
|
+
},
|
|
3351
|
+
{
|
|
3352
|
+
"key": "reviews_3_card_8_body",
|
|
3353
|
+
"kind": "copy",
|
|
3354
|
+
"role": "body",
|
|
3355
|
+
"description": "Review card body \u2014 real review content, verbatim or lightly trimmed.",
|
|
3356
|
+
"source_policy": "merchant_asset_required",
|
|
3357
|
+
"length_band_chars": {
|
|
3358
|
+
"min": 80,
|
|
3359
|
+
"max": 256
|
|
3360
|
+
},
|
|
3361
|
+
"demo_value": "I don't write reviews but this earned one. Three months in and still going strong. No tolerance buil",
|
|
3362
|
+
"proof_surface": true,
|
|
3363
|
+
"proof_modality": "review",
|
|
3364
|
+
"needs_merchant_input_able": true
|
|
3365
|
+
},
|
|
3366
|
+
{
|
|
3367
|
+
"key": "guarantee_1_heading",
|
|
3368
|
+
"kind": "copy",
|
|
3369
|
+
"role": "headline",
|
|
3370
|
+
"description": "Guarantee section heading.",
|
|
3371
|
+
"source_policy": "generated",
|
|
3372
|
+
"length_band_chars": {
|
|
3373
|
+
"min": 20,
|
|
3374
|
+
"max": 48
|
|
3375
|
+
},
|
|
3376
|
+
"demo_value": "Try [Product] Completely Risk-Free"
|
|
3377
|
+
},
|
|
3378
|
+
{
|
|
3379
|
+
"key": "guarantee_1_body_text",
|
|
3380
|
+
"kind": "copy",
|
|
3381
|
+
"role": "body",
|
|
3382
|
+
"description": "Guarantee body copy. Day counts and terms verbatim from spec truth.",
|
|
3383
|
+
"source_policy": "generated",
|
|
3384
|
+
"length_band_chars": {
|
|
3385
|
+
"min": 128,
|
|
3386
|
+
"max": 411
|
|
3387
|
+
},
|
|
3388
|
+
"demo_value": "We're so confident in what our formula can do that we back every order with a 60-day money-back guar"
|
|
3389
|
+
},
|
|
3390
|
+
{
|
|
3391
|
+
"key": "guarantee_1_badge_image",
|
|
3392
|
+
"kind": "image",
|
|
3393
|
+
"role": "chrome",
|
|
3394
|
+
"description": "Guarantee badge graphic \u2014 template chrome (day count must match spec truth).",
|
|
3395
|
+
"source_policy": "template_static"
|
|
3396
|
+
},
|
|
3397
|
+
{
|
|
3398
|
+
"key": "guarantee_1_badge_alt",
|
|
3399
|
+
"kind": "alt_text",
|
|
3400
|
+
"role": "alt_text",
|
|
3401
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
3402
|
+
"source_policy": "generated"
|
|
3403
|
+
},
|
|
3404
|
+
{
|
|
3405
|
+
"key": "guarantee_1_side_image",
|
|
3406
|
+
"kind": "image",
|
|
3407
|
+
"role": "image",
|
|
3408
|
+
"description": "Lifestyle image beside the guarantee copy. AI-generated from merchant references (pending final policy confirmation from the dry-run decision list).",
|
|
3409
|
+
"source_policy": "generated"
|
|
3410
|
+
},
|
|
3411
|
+
{
|
|
3412
|
+
"key": "guarantee_1_side_image_alt",
|
|
3413
|
+
"kind": "alt_text",
|
|
3414
|
+
"role": "alt_text",
|
|
3415
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
3416
|
+
"source_policy": "generated"
|
|
3417
|
+
},
|
|
3418
|
+
{
|
|
3419
|
+
"key": "faq_1_heading",
|
|
3420
|
+
"kind": "copy",
|
|
3421
|
+
"role": "headline",
|
|
3422
|
+
"description": "FAQ section heading.",
|
|
3423
|
+
"source_policy": "generated",
|
|
3424
|
+
"length_band_chars": {
|
|
3425
|
+
"min": 16,
|
|
3426
|
+
"max": 36
|
|
3427
|
+
},
|
|
3428
|
+
"demo_value": "Frequently Asked Questions"
|
|
3429
|
+
},
|
|
3430
|
+
{
|
|
3431
|
+
"key": "faq_1_product_image",
|
|
3432
|
+
"kind": "image",
|
|
3433
|
+
"role": "image",
|
|
3434
|
+
"description": "Product image beside the FAQ accordion. Merchant-supplied product photography.",
|
|
3435
|
+
"source_policy": "merchant_asset_required"
|
|
3436
|
+
},
|
|
3437
|
+
{
|
|
3438
|
+
"key": "faq_1_product_image_alt",
|
|
3439
|
+
"kind": "alt_text",
|
|
3440
|
+
"role": "alt_text",
|
|
3441
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
3442
|
+
"source_policy": "generated"
|
|
3443
|
+
},
|
|
3444
|
+
{
|
|
3445
|
+
"key": "faq_1_question",
|
|
3446
|
+
"kind": "copy",
|
|
3447
|
+
"role": "micro",
|
|
3448
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3449
|
+
"source_policy": "generated",
|
|
3450
|
+
"length_band_chars": {
|
|
3451
|
+
"min": 12,
|
|
3452
|
+
"max": 54
|
|
3453
|
+
},
|
|
3454
|
+
"demo_value": "How long before I see results?"
|
|
3455
|
+
},
|
|
3456
|
+
{
|
|
3457
|
+
"key": "faq_1_answer",
|
|
3458
|
+
"kind": "copy",
|
|
3459
|
+
"role": "body",
|
|
3460
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3461
|
+
"source_policy": "generated",
|
|
3462
|
+
"length_band_chars": {
|
|
3463
|
+
"min": 90,
|
|
3464
|
+
"max": 286
|
|
3465
|
+
},
|
|
3466
|
+
"demo_value": "Many customers notice a difference within the first 1\u20133 nights. Full results \u2014 improved sleep archit"
|
|
3467
|
+
},
|
|
3468
|
+
{
|
|
3469
|
+
"key": "faq_1_faq_2_question",
|
|
3470
|
+
"kind": "copy",
|
|
3471
|
+
"role": "micro",
|
|
3472
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3473
|
+
"source_policy": "generated",
|
|
3474
|
+
"length_band_chars": {
|
|
3475
|
+
"min": 15,
|
|
3476
|
+
"max": 68
|
|
3477
|
+
},
|
|
3478
|
+
"demo_value": "Is [Product] safe to take every night?"
|
|
3479
|
+
},
|
|
3480
|
+
{
|
|
3481
|
+
"key": "faq_1_faq_2_answer",
|
|
3482
|
+
"kind": "copy",
|
|
3483
|
+
"role": "body",
|
|
3484
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3485
|
+
"source_policy": "generated",
|
|
3486
|
+
"length_band_chars": {
|
|
3487
|
+
"min": 86,
|
|
3488
|
+
"max": 275
|
|
3489
|
+
},
|
|
3490
|
+
"demo_value": "Yes. This formula is formulated with natural adaptogens and minerals that are safe for nightly use. "
|
|
3491
|
+
},
|
|
3492
|
+
{
|
|
3493
|
+
"key": "faq_1_faq_3_question",
|
|
3494
|
+
"kind": "copy",
|
|
3495
|
+
"role": "micro",
|
|
3496
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3497
|
+
"source_policy": "generated",
|
|
3498
|
+
"length_band_chars": {
|
|
3499
|
+
"min": 16,
|
|
3500
|
+
"max": 70
|
|
3501
|
+
},
|
|
3502
|
+
"demo_value": "Can I take this with other supplements?"
|
|
3503
|
+
},
|
|
3504
|
+
{
|
|
3505
|
+
"key": "faq_1_faq_3_answer",
|
|
3506
|
+
"kind": "copy",
|
|
3507
|
+
"role": "body",
|
|
3508
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3509
|
+
"source_policy": "generated",
|
|
3510
|
+
"length_band_chars": {
|
|
3511
|
+
"min": 93,
|
|
3512
|
+
"max": 298
|
|
3513
|
+
},
|
|
3514
|
+
"demo_value": "This supplement is designed to complement your existing supplement stack. If you're on prescription "
|
|
3515
|
+
},
|
|
3516
|
+
{
|
|
3517
|
+
"key": "faq_1_faq_4_question",
|
|
3518
|
+
"kind": "copy",
|
|
3519
|
+
"role": "micro",
|
|
3520
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3521
|
+
"source_policy": "generated",
|
|
3522
|
+
"length_band_chars": {
|
|
3523
|
+
"min": 9,
|
|
3524
|
+
"max": 40
|
|
3525
|
+
},
|
|
3526
|
+
"demo_value": "When should I take it?"
|
|
3527
|
+
},
|
|
3528
|
+
{
|
|
3529
|
+
"key": "faq_1_faq_4_answer",
|
|
3530
|
+
"kind": "copy",
|
|
3531
|
+
"role": "body",
|
|
3532
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3533
|
+
"source_policy": "generated",
|
|
3534
|
+
"length_band_chars": {
|
|
3535
|
+
"min": 44,
|
|
3536
|
+
"max": 142
|
|
3537
|
+
},
|
|
3538
|
+
"demo_value": "Take two capsules with water 30\u201360 minutes before your intended bedtime for best results."
|
|
3539
|
+
},
|
|
3540
|
+
{
|
|
3541
|
+
"key": "faq_1_faq_5_question",
|
|
3542
|
+
"kind": "copy",
|
|
3543
|
+
"role": "micro",
|
|
3544
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3545
|
+
"source_policy": "generated",
|
|
3546
|
+
"length_band_chars": {
|
|
3547
|
+
"min": 12,
|
|
3548
|
+
"max": 56
|
|
3549
|
+
},
|
|
3550
|
+
"demo_value": "What if it doesn't work for me?"
|
|
3551
|
+
},
|
|
3552
|
+
{
|
|
3553
|
+
"key": "faq_1_faq_5_answer",
|
|
3554
|
+
"kind": "copy",
|
|
3555
|
+
"role": "body",
|
|
3556
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3557
|
+
"source_policy": "generated",
|
|
3558
|
+
"length_band_chars": {
|
|
3559
|
+
"min": 74,
|
|
3560
|
+
"max": 235
|
|
3561
|
+
},
|
|
3562
|
+
"demo_value": "We offer a 60-day money-back guarantee. If you're not completely satisfied for any reason, contact o"
|
|
3563
|
+
},
|
|
3564
|
+
{
|
|
3565
|
+
"key": "faq_1_faq_6_question",
|
|
3566
|
+
"kind": "copy",
|
|
3567
|
+
"role": "micro",
|
|
3568
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3569
|
+
"source_policy": "generated",
|
|
3570
|
+
"length_band_chars": {
|
|
3571
|
+
"min": 14,
|
|
3572
|
+
"max": 63
|
|
3573
|
+
},
|
|
3574
|
+
"demo_value": "Is [Product] vegan and gluten-free?"
|
|
3575
|
+
},
|
|
3576
|
+
{
|
|
3577
|
+
"key": "faq_1_faq_6_answer",
|
|
3578
|
+
"kind": "copy",
|
|
3579
|
+
"role": "body",
|
|
3580
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3581
|
+
"source_policy": "generated",
|
|
3582
|
+
"length_band_chars": {
|
|
3583
|
+
"min": 53,
|
|
3584
|
+
"max": 170
|
|
3585
|
+
},
|
|
3586
|
+
"demo_value": "Yes. This product is 100% vegan, gluten-free, and free from artificial colors, flavors, and preserva"
|
|
3587
|
+
},
|
|
3588
|
+
{
|
|
3589
|
+
"key": "faq_1_faq_7_question",
|
|
3590
|
+
"kind": "copy",
|
|
3591
|
+
"role": "micro",
|
|
3592
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3593
|
+
"source_policy": "generated",
|
|
3594
|
+
"length_band_chars": {
|
|
3595
|
+
"min": 12,
|
|
3596
|
+
"max": 54
|
|
3597
|
+
},
|
|
3598
|
+
"demo_value": "How long does one bottle last?"
|
|
3599
|
+
},
|
|
3600
|
+
{
|
|
3601
|
+
"key": "faq_1_faq_7_answer",
|
|
3602
|
+
"kind": "copy",
|
|
3603
|
+
"role": "body",
|
|
3604
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3605
|
+
"source_policy": "generated",
|
|
3606
|
+
"length_band_chars": {
|
|
3607
|
+
"min": 56,
|
|
3608
|
+
"max": 181
|
|
3609
|
+
},
|
|
3610
|
+
"demo_value": "One bottle contains a 30-day supply (60 capsules at 2 capsules per night). Subscribe and save for th"
|
|
3611
|
+
},
|
|
3612
|
+
{
|
|
3613
|
+
"key": "faq_1_faq_8_question",
|
|
3614
|
+
"kind": "copy",
|
|
3615
|
+
"role": "micro",
|
|
3616
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3617
|
+
"source_policy": "generated",
|
|
3618
|
+
"length_band_chars": {
|
|
3619
|
+
"min": 13,
|
|
3620
|
+
"max": 58
|
|
3621
|
+
},
|
|
3622
|
+
"demo_value": "Where is [Product] manufactured?"
|
|
3623
|
+
},
|
|
3624
|
+
{
|
|
3625
|
+
"key": "faq_1_faq_8_answer",
|
|
3626
|
+
"kind": "copy",
|
|
3627
|
+
"role": "body",
|
|
3628
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3629
|
+
"source_policy": "generated",
|
|
3630
|
+
"length_band_chars": {
|
|
3631
|
+
"min": 71,
|
|
3632
|
+
"max": 227
|
|
3633
|
+
},
|
|
3634
|
+
"demo_value": "Our product is manufactured in the USA in an FDA-registered, GMP-certified facility. Every batch is "
|
|
3635
|
+
},
|
|
3636
|
+
{
|
|
3637
|
+
"key": "faq_1_faq_9_question",
|
|
3638
|
+
"kind": "copy",
|
|
3639
|
+
"role": "micro",
|
|
3640
|
+
"description": "FAQ question \u2014 draw from the vertical's canonical objection list plus brief objections.",
|
|
3641
|
+
"source_policy": "generated",
|
|
3642
|
+
"length_band_chars": {
|
|
3643
|
+
"min": 13,
|
|
3644
|
+
"max": 59
|
|
3645
|
+
},
|
|
3646
|
+
"demo_value": "Is this different from melatonin?"
|
|
3647
|
+
},
|
|
3648
|
+
{
|
|
3649
|
+
"key": "faq_1_faq_9_answer",
|
|
3650
|
+
"kind": "copy",
|
|
3651
|
+
"role": "body",
|
|
3652
|
+
"description": "FAQ answer \u2014 objection handling; guarantee/shipping/offer terms verbatim from spec truth.",
|
|
3653
|
+
"source_policy": "generated",
|
|
3654
|
+
"length_band_chars": {
|
|
3655
|
+
"min": 105,
|
|
3656
|
+
"max": 336
|
|
3657
|
+
},
|
|
3658
|
+
"demo_value": "Very different. Melatonin only signals your body to sleep \u2014 it doesn't address the cortisol and nerv"
|
|
3659
|
+
},
|
|
3660
|
+
{
|
|
3661
|
+
"key": "faq_1_accordion_icon",
|
|
3662
|
+
"kind": "image",
|
|
3663
|
+
"role": "chrome",
|
|
3664
|
+
"description": "Accordion chevron \u2014 template chrome.",
|
|
3665
|
+
"source_policy": "template_static"
|
|
3666
|
+
},
|
|
3667
|
+
{
|
|
3668
|
+
"key": "bottomcta_1_hero_image",
|
|
3669
|
+
"kind": "image",
|
|
3670
|
+
"role": "image",
|
|
3671
|
+
"description": "Final CTA lifestyle image. AI-generated from merchant references.",
|
|
3672
|
+
"source_policy": "generated"
|
|
3673
|
+
},
|
|
3674
|
+
{
|
|
3675
|
+
"key": "bottomcta_1_hero_image_alt",
|
|
3676
|
+
"kind": "alt_text",
|
|
3677
|
+
"role": "alt_text",
|
|
3678
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
3679
|
+
"source_policy": "generated"
|
|
3680
|
+
},
|
|
3681
|
+
{
|
|
3682
|
+
"key": "bottomcta_1_rating_label",
|
|
3683
|
+
"kind": "copy",
|
|
3684
|
+
"role": "micro",
|
|
3685
|
+
"description": "Rating word next to the bottom-CTA stars, e.g. 'Excellent'. Only alongside real rating data.",
|
|
3686
|
+
"source_policy": "merchant_asset_required",
|
|
3687
|
+
"length_band_chars": {
|
|
3688
|
+
"min": 4,
|
|
3689
|
+
"max": 16
|
|
3690
|
+
},
|
|
3691
|
+
"demo_value": "Excellent",
|
|
3692
|
+
"proof_surface": true,
|
|
3693
|
+
"proof_modality": "rating",
|
|
3694
|
+
"needs_merchant_input_able": true
|
|
3695
|
+
},
|
|
3696
|
+
{
|
|
3697
|
+
"key": "bottomcta_1_rating_value",
|
|
3698
|
+
"kind": "copy",
|
|
3699
|
+
"role": "micro",
|
|
3700
|
+
"description": "Bottom-CTA aggregate rating value (e.g. '4.9') from the review platform.",
|
|
3701
|
+
"source_policy": "merchant_asset_required",
|
|
3702
|
+
"length_band_chars": {
|
|
3703
|
+
"min": 3,
|
|
3704
|
+
"max": 8
|
|
3705
|
+
},
|
|
3706
|
+
"demo_value": "4.9",
|
|
3707
|
+
"proof_surface": true,
|
|
3708
|
+
"proof_modality": "rating",
|
|
3709
|
+
"needs_merchant_input_able": true
|
|
3710
|
+
},
|
|
3711
|
+
{
|
|
3712
|
+
"key": "bottomcta_1_review_count",
|
|
3713
|
+
"kind": "copy",
|
|
3714
|
+
"role": "micro",
|
|
3715
|
+
"description": "Bottom-CTA review count (numeric). Real review-platform total; must not contradict other counts on the page (anti-pattern 6).",
|
|
3716
|
+
"source_policy": "merchant_asset_required",
|
|
3717
|
+
"length_band_chars": {
|
|
3718
|
+
"min": 3,
|
|
3719
|
+
"max": 9
|
|
3720
|
+
},
|
|
3721
|
+
"demo_value": "48312",
|
|
3722
|
+
"proof_surface": true,
|
|
3723
|
+
"proof_modality": "count",
|
|
3724
|
+
"needs_merchant_input_able": true
|
|
3725
|
+
},
|
|
3726
|
+
{
|
|
3727
|
+
"key": "bottomcta_1_heading",
|
|
3728
|
+
"kind": "copy",
|
|
3729
|
+
"role": "headline",
|
|
3730
|
+
"description": "Final CTA heading. Time-limited/offer wording only from verified offer data (anti-pattern 10).",
|
|
3731
|
+
"source_policy": "generated",
|
|
3732
|
+
"length_band_chars": {
|
|
3733
|
+
"min": 31,
|
|
3734
|
+
"max": 73
|
|
3735
|
+
},
|
|
3736
|
+
"demo_value": "Start Sleeping Better Tonight \u2014 60% Off Limited Time"
|
|
3737
|
+
},
|
|
3738
|
+
{
|
|
3739
|
+
"key": "bottomcta_1_subheading",
|
|
3740
|
+
"kind": "copy",
|
|
3741
|
+
"role": "body",
|
|
3742
|
+
"description": "Final CTA subheading. Customer-count claims only when backed by real proof.",
|
|
3743
|
+
"source_policy": "generated",
|
|
3744
|
+
"length_band_chars": {
|
|
3745
|
+
"min": 73,
|
|
3746
|
+
"max": 234
|
|
3747
|
+
},
|
|
3748
|
+
"demo_value": "Join over 48,000 customers who've transformed their sleep with [Product]. Backed by our 60-day money"
|
|
3749
|
+
},
|
|
3750
|
+
{
|
|
3751
|
+
"key": "bottomcta_1_bullet_icon",
|
|
3752
|
+
"kind": "image",
|
|
3753
|
+
"role": "chrome",
|
|
3754
|
+
"description": "Bullet icon \u2014 template chrome.",
|
|
3755
|
+
"source_policy": "template_static"
|
|
3756
|
+
},
|
|
3757
|
+
{
|
|
3758
|
+
"key": "bottomcta_1_bullet_1",
|
|
3759
|
+
"kind": "copy",
|
|
3760
|
+
"role": "micro",
|
|
3761
|
+
"description": "Final CTA checkmark bullet (offer/guarantee facts from spec truth).",
|
|
3762
|
+
"source_policy": "spec_truth",
|
|
3763
|
+
"length_band_chars": {
|
|
3764
|
+
"min": 11,
|
|
3765
|
+
"max": 49
|
|
3766
|
+
},
|
|
3767
|
+
"demo_value": "Free shipping on all orders"
|
|
3768
|
+
},
|
|
3769
|
+
{
|
|
3770
|
+
"key": "bottomcta_1_bullet_2",
|
|
3771
|
+
"kind": "copy",
|
|
3772
|
+
"role": "micro",
|
|
3773
|
+
"description": "Final CTA checkmark bullet (offer/guarantee facts from spec truth).",
|
|
3774
|
+
"source_policy": "spec_truth",
|
|
3775
|
+
"length_band_chars": {
|
|
3776
|
+
"min": 11,
|
|
3777
|
+
"max": 49
|
|
3778
|
+
},
|
|
3779
|
+
"demo_value": "60-Day Money-Back Guarantee"
|
|
3780
|
+
},
|
|
3781
|
+
{
|
|
3782
|
+
"key": "bottomcta_1_bullet_3",
|
|
3783
|
+
"kind": "copy",
|
|
3784
|
+
"role": "micro",
|
|
3785
|
+
"description": "Final CTA checkmark bullet (offer/guarantee facts from spec truth).",
|
|
3786
|
+
"source_policy": "spec_truth",
|
|
3787
|
+
"length_band_chars": {
|
|
3788
|
+
"min": 15,
|
|
3789
|
+
"max": 67
|
|
3790
|
+
},
|
|
3791
|
+
"demo_value": "Made in USA in GMP-certified facility"
|
|
3792
|
+
},
|
|
3793
|
+
{
|
|
3794
|
+
"key": "footer_1_logo_image",
|
|
3795
|
+
"kind": "image",
|
|
3796
|
+
"role": "image",
|
|
3797
|
+
"description": "Footer logo image.",
|
|
3798
|
+
"source_policy": "brand"
|
|
3799
|
+
},
|
|
3800
|
+
{
|
|
3801
|
+
"key": "footer_1_logo_alt",
|
|
3802
|
+
"kind": "alt_text",
|
|
3803
|
+
"role": "alt_text",
|
|
3804
|
+
"description": "Alt text for the sibling image slot (accessibility; follows the image's content).",
|
|
3805
|
+
"source_policy": "generated"
|
|
3806
|
+
},
|
|
3807
|
+
{
|
|
3808
|
+
"key": "footer_1_terms_text",
|
|
3809
|
+
"kind": "copy",
|
|
3810
|
+
"role": "micro",
|
|
3811
|
+
"description": "Footer legal link label.",
|
|
3812
|
+
"source_policy": "template_static",
|
|
3813
|
+
"length_band_chars": {
|
|
3814
|
+
"min": 5,
|
|
3815
|
+
"max": 22
|
|
3816
|
+
},
|
|
3817
|
+
"demo_value": "Terms of Use"
|
|
3818
|
+
},
|
|
3819
|
+
{
|
|
3820
|
+
"key": "footer_1_terms_url",
|
|
3821
|
+
"kind": "link",
|
|
3822
|
+
"role": "routing",
|
|
3823
|
+
"description": "Footer legal link URL from store config.",
|
|
3824
|
+
"source_policy": "spec_truth"
|
|
3825
|
+
},
|
|
3826
|
+
{
|
|
3827
|
+
"key": "footer_1_privacy_text",
|
|
3828
|
+
"kind": "copy",
|
|
3829
|
+
"role": "micro",
|
|
3830
|
+
"description": "Footer legal link label.",
|
|
3831
|
+
"source_policy": "template_static",
|
|
3832
|
+
"length_band_chars": {
|
|
3833
|
+
"min": 6,
|
|
3834
|
+
"max": 25
|
|
3835
|
+
},
|
|
3836
|
+
"demo_value": "Privacy Policy"
|
|
3837
|
+
},
|
|
3838
|
+
{
|
|
3839
|
+
"key": "footer_1_privacy_url",
|
|
3840
|
+
"kind": "link",
|
|
3841
|
+
"role": "routing",
|
|
3842
|
+
"description": "Footer legal link URL from store config.",
|
|
3843
|
+
"source_policy": "spec_truth"
|
|
3844
|
+
},
|
|
3845
|
+
{
|
|
3846
|
+
"key": "footer_1_contact_text",
|
|
3847
|
+
"kind": "copy",
|
|
3848
|
+
"role": "micro",
|
|
3849
|
+
"description": "Footer legal link label.",
|
|
3850
|
+
"source_policy": "template_static",
|
|
3851
|
+
"length_band_chars": {
|
|
3852
|
+
"min": 4,
|
|
3853
|
+
"max": 18
|
|
3854
|
+
},
|
|
3855
|
+
"demo_value": "Contact Us"
|
|
3856
|
+
},
|
|
3857
|
+
{
|
|
3858
|
+
"key": "footer_1_contact_url",
|
|
3859
|
+
"kind": "link",
|
|
3860
|
+
"role": "routing",
|
|
3861
|
+
"description": "Footer legal link URL from store config.",
|
|
3862
|
+
"source_policy": "spec_truth"
|
|
3863
|
+
},
|
|
3864
|
+
{
|
|
3865
|
+
"key": "footer_1_copyright_text",
|
|
3866
|
+
"kind": "copy",
|
|
3867
|
+
"role": "micro",
|
|
3868
|
+
"description": "Footer copyright line using the merchant legal name.",
|
|
3869
|
+
"source_policy": "spec_truth",
|
|
3870
|
+
"length_band_chars": {
|
|
3871
|
+
"min": 15,
|
|
3872
|
+
"max": 68
|
|
3873
|
+
},
|
|
3874
|
+
"demo_value": "\u00a9 2026 [Product]. All Rights Reserved."
|
|
3875
|
+
}
|
|
3876
|
+
]
|
|
3877
|
+
}
|
|
3878
|
+
]
|
|
3879
|
+
},
|
|
3880
|
+
"upsell-bundle-stepper": {
|
|
3881
|
+
"sections": [
|
|
3882
|
+
{
|
|
3883
|
+
"section": "main",
|
|
3884
|
+
"slots": [
|
|
3885
|
+
{
|
|
3886
|
+
"key": "title",
|
|
3887
|
+
"kind": "copy",
|
|
3888
|
+
"role": "micro",
|
|
3889
|
+
"description": "Short copy slot.",
|
|
3890
|
+
"source_policy": "generated",
|
|
3891
|
+
"length_band_chars": {
|
|
3892
|
+
"min": 15,
|
|
3893
|
+
"max": 67
|
|
3894
|
+
},
|
|
3895
|
+
"demo_value": "Apollo \u2014 Upsell (bundle stepper)"
|
|
3896
|
+
},
|
|
3897
|
+
{
|
|
3898
|
+
"key": "page_type",
|
|
3899
|
+
"kind": "meta",
|
|
3900
|
+
"role": "page_meta",
|
|
3901
|
+
"owner": "template",
|
|
3902
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
3903
|
+
"source_policy": "template_static"
|
|
3904
|
+
},
|
|
3905
|
+
{
|
|
3906
|
+
"key": "next_url",
|
|
3907
|
+
"kind": "link",
|
|
3908
|
+
"role": "routing",
|
|
3909
|
+
"description": "Route/link target.",
|
|
3910
|
+
"source_policy": "spec_truth"
|
|
3911
|
+
},
|
|
3912
|
+
{
|
|
3913
|
+
"key": "decline_url",
|
|
3914
|
+
"kind": "link",
|
|
3915
|
+
"role": "routing",
|
|
3916
|
+
"description": "Route/link target.",
|
|
3917
|
+
"source_policy": "spec_truth"
|
|
3918
|
+
},
|
|
3919
|
+
{
|
|
3920
|
+
"key": "styles",
|
|
3921
|
+
"kind": "meta",
|
|
3922
|
+
"role": "page_meta",
|
|
3923
|
+
"owner": "template",
|
|
3924
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
3925
|
+
"source_policy": "template_static"
|
|
3926
|
+
},
|
|
3927
|
+
{
|
|
3928
|
+
"key": "scripts",
|
|
3929
|
+
"kind": "meta",
|
|
3930
|
+
"role": "page_meta",
|
|
3931
|
+
"owner": "template",
|
|
3932
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
3933
|
+
"source_policy": "template_static"
|
|
3934
|
+
},
|
|
3935
|
+
{
|
|
3936
|
+
"key": "upsell_offer",
|
|
3937
|
+
"kind": "commerce",
|
|
3938
|
+
"role": "commerce_structure",
|
|
3939
|
+
"owner": "commerce",
|
|
3940
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
3941
|
+
"reference": "integrated_commerce_surface_ref"
|
|
3942
|
+
},
|
|
3943
|
+
{
|
|
3944
|
+
"key": "swiper_slides",
|
|
3945
|
+
"kind": "commerce",
|
|
3946
|
+
"role": "commerce_structure",
|
|
3947
|
+
"owner": "commerce",
|
|
3948
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
3949
|
+
"reference": "integrated_commerce_surface_ref"
|
|
3950
|
+
},
|
|
3951
|
+
{
|
|
3952
|
+
"key": "swiper_thumbs",
|
|
3953
|
+
"kind": "commerce",
|
|
3954
|
+
"role": "commerce_structure",
|
|
3955
|
+
"owner": "commerce",
|
|
3956
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
3957
|
+
"reference": "integrated_commerce_surface_ref"
|
|
3958
|
+
}
|
|
3959
|
+
]
|
|
3960
|
+
}
|
|
3961
|
+
]
|
|
3962
|
+
},
|
|
3963
|
+
"upsell-bundle-tier-cards": {
|
|
3964
|
+
"sections": [
|
|
3965
|
+
{
|
|
3966
|
+
"section": "main",
|
|
3967
|
+
"slots": [
|
|
3968
|
+
{
|
|
3969
|
+
"key": "title",
|
|
3970
|
+
"kind": "copy",
|
|
3971
|
+
"role": "micro",
|
|
3972
|
+
"description": "Short copy slot.",
|
|
3973
|
+
"source_policy": "generated",
|
|
3974
|
+
"length_band_chars": {
|
|
3975
|
+
"min": 16,
|
|
3976
|
+
"max": 72
|
|
3977
|
+
},
|
|
3978
|
+
"demo_value": "Apollo \u2014 Upsell (bundle tier cards)"
|
|
3979
|
+
},
|
|
3980
|
+
{
|
|
3981
|
+
"key": "page_type",
|
|
3982
|
+
"kind": "meta",
|
|
3983
|
+
"role": "page_meta",
|
|
3984
|
+
"owner": "template",
|
|
3985
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
3986
|
+
"source_policy": "template_static"
|
|
3987
|
+
},
|
|
3988
|
+
{
|
|
3989
|
+
"key": "next_url",
|
|
3990
|
+
"kind": "link",
|
|
3991
|
+
"role": "routing",
|
|
3992
|
+
"description": "Route/link target.",
|
|
3993
|
+
"source_policy": "spec_truth"
|
|
3994
|
+
},
|
|
3995
|
+
{
|
|
3996
|
+
"key": "decline_url",
|
|
3997
|
+
"kind": "link",
|
|
3998
|
+
"role": "routing",
|
|
3999
|
+
"description": "Route/link target.",
|
|
4000
|
+
"source_policy": "spec_truth"
|
|
4001
|
+
},
|
|
4002
|
+
{
|
|
4003
|
+
"key": "styles",
|
|
4004
|
+
"kind": "meta",
|
|
4005
|
+
"role": "page_meta",
|
|
4006
|
+
"owner": "template",
|
|
4007
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4008
|
+
"source_policy": "template_static"
|
|
4009
|
+
},
|
|
4010
|
+
{
|
|
4011
|
+
"key": "scripts",
|
|
4012
|
+
"kind": "meta",
|
|
4013
|
+
"role": "page_meta",
|
|
4014
|
+
"owner": "template",
|
|
4015
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4016
|
+
"source_policy": "template_static"
|
|
4017
|
+
},
|
|
4018
|
+
{
|
|
4019
|
+
"key": "upsell_offer",
|
|
4020
|
+
"kind": "commerce",
|
|
4021
|
+
"role": "commerce_structure",
|
|
4022
|
+
"owner": "commerce",
|
|
4023
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4024
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4025
|
+
},
|
|
4026
|
+
{
|
|
4027
|
+
"key": "upsell_bundle_tiers",
|
|
4028
|
+
"kind": "commerce",
|
|
4029
|
+
"role": "commerce_structure",
|
|
4030
|
+
"owner": "commerce",
|
|
4031
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4032
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4033
|
+
},
|
|
4034
|
+
{
|
|
4035
|
+
"key": "swiper_slides",
|
|
4036
|
+
"kind": "commerce",
|
|
4037
|
+
"role": "commerce_structure",
|
|
4038
|
+
"owner": "commerce",
|
|
4039
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4040
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4041
|
+
},
|
|
4042
|
+
{
|
|
4043
|
+
"key": "swiper_thumbs",
|
|
4044
|
+
"kind": "commerce",
|
|
4045
|
+
"role": "commerce_structure",
|
|
4046
|
+
"owner": "commerce",
|
|
4047
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4048
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4049
|
+
}
|
|
4050
|
+
]
|
|
4051
|
+
}
|
|
4052
|
+
]
|
|
4053
|
+
},
|
|
4054
|
+
"upsell-bundle-tier-pills": {
|
|
4055
|
+
"sections": [
|
|
4056
|
+
{
|
|
4057
|
+
"section": "main",
|
|
4058
|
+
"slots": [
|
|
4059
|
+
{
|
|
4060
|
+
"key": "title",
|
|
4061
|
+
"kind": "copy",
|
|
4062
|
+
"role": "micro",
|
|
4063
|
+
"description": "Short copy slot.",
|
|
4064
|
+
"source_policy": "generated",
|
|
4065
|
+
"length_band_chars": {
|
|
4066
|
+
"min": 16,
|
|
4067
|
+
"max": 72
|
|
4068
|
+
},
|
|
4069
|
+
"demo_value": "Apollo \u2014 Upsell (bundle tier pills)"
|
|
4070
|
+
},
|
|
4071
|
+
{
|
|
4072
|
+
"key": "page_type",
|
|
4073
|
+
"kind": "meta",
|
|
4074
|
+
"role": "page_meta",
|
|
4075
|
+
"owner": "template",
|
|
4076
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4077
|
+
"source_policy": "template_static"
|
|
4078
|
+
},
|
|
4079
|
+
{
|
|
4080
|
+
"key": "next_url",
|
|
4081
|
+
"kind": "link",
|
|
4082
|
+
"role": "routing",
|
|
4083
|
+
"description": "Route/link target.",
|
|
4084
|
+
"source_policy": "spec_truth"
|
|
4085
|
+
},
|
|
4086
|
+
{
|
|
4087
|
+
"key": "decline_url",
|
|
4088
|
+
"kind": "link",
|
|
4089
|
+
"role": "routing",
|
|
4090
|
+
"description": "Route/link target.",
|
|
4091
|
+
"source_policy": "spec_truth"
|
|
4092
|
+
},
|
|
4093
|
+
{
|
|
4094
|
+
"key": "styles",
|
|
4095
|
+
"kind": "meta",
|
|
4096
|
+
"role": "page_meta",
|
|
4097
|
+
"owner": "template",
|
|
4098
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4099
|
+
"source_policy": "template_static"
|
|
4100
|
+
},
|
|
4101
|
+
{
|
|
4102
|
+
"key": "scripts",
|
|
4103
|
+
"kind": "meta",
|
|
4104
|
+
"role": "page_meta",
|
|
4105
|
+
"owner": "template",
|
|
4106
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4107
|
+
"source_policy": "template_static"
|
|
4108
|
+
},
|
|
4109
|
+
{
|
|
4110
|
+
"key": "upsell_offer",
|
|
4111
|
+
"kind": "commerce",
|
|
4112
|
+
"role": "commerce_structure",
|
|
4113
|
+
"owner": "commerce",
|
|
4114
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4115
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4116
|
+
},
|
|
4117
|
+
{
|
|
4118
|
+
"key": "upsell_bundle_tiers",
|
|
4119
|
+
"kind": "commerce",
|
|
4120
|
+
"role": "commerce_structure",
|
|
4121
|
+
"owner": "commerce",
|
|
4122
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4123
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4124
|
+
},
|
|
4125
|
+
{
|
|
4126
|
+
"key": "swiper_slides",
|
|
4127
|
+
"kind": "commerce",
|
|
4128
|
+
"role": "commerce_structure",
|
|
4129
|
+
"owner": "commerce",
|
|
4130
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4131
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4132
|
+
},
|
|
4133
|
+
{
|
|
4134
|
+
"key": "swiper_thumbs",
|
|
4135
|
+
"kind": "commerce",
|
|
4136
|
+
"role": "commerce_structure",
|
|
4137
|
+
"owner": "commerce",
|
|
4138
|
+
"description": "Structured commerce configuration \u2014 owned by the commerce-surface catalog and the family brand contract, not the content-slot layer.",
|
|
4139
|
+
"reference": "integrated_commerce_surface_ref"
|
|
4140
|
+
}
|
|
4141
|
+
]
|
|
4142
|
+
}
|
|
4143
|
+
]
|
|
4144
|
+
},
|
|
4145
|
+
"receipt": {
|
|
4146
|
+
"sections": [
|
|
4147
|
+
{
|
|
4148
|
+
"section": "main",
|
|
4149
|
+
"slots": [
|
|
4150
|
+
{
|
|
4151
|
+
"key": "title",
|
|
4152
|
+
"kind": "copy",
|
|
4153
|
+
"role": "micro",
|
|
4154
|
+
"description": "Short copy slot.",
|
|
4155
|
+
"source_policy": "generated",
|
|
4156
|
+
"length_band_chars": {
|
|
4157
|
+
"min": 8,
|
|
4158
|
+
"max": 38
|
|
4159
|
+
},
|
|
4160
|
+
"demo_value": "Apollo \u2014 Receipt"
|
|
4161
|
+
},
|
|
4162
|
+
{
|
|
4163
|
+
"key": "page_type",
|
|
4164
|
+
"kind": "meta",
|
|
4165
|
+
"role": "page_meta",
|
|
4166
|
+
"owner": "template",
|
|
4167
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4168
|
+
"source_policy": "template_static"
|
|
4169
|
+
},
|
|
4170
|
+
{
|
|
4171
|
+
"key": "styles",
|
|
4172
|
+
"kind": "meta",
|
|
4173
|
+
"role": "page_meta",
|
|
4174
|
+
"owner": "template",
|
|
4175
|
+
"description": "Page-kit page metadata \u2014 template-owned, assembly never touches.",
|
|
4176
|
+
"source_policy": "template_static"
|
|
4177
|
+
}
|
|
4178
|
+
]
|
|
4179
|
+
}
|
|
4180
|
+
]
|
|
4181
|
+
},
|
|
4182
|
+
"checkout": {
|
|
4183
|
+
"commerce_owned": true,
|
|
4184
|
+
"integrated_commerce_surface_ref": {
|
|
4185
|
+
"commerce_surface_catalog": "contracts/commerce-surface-catalog.json",
|
|
4186
|
+
"template_brand_contract": "contracts/template-brand-contract.<family>.v0.json"
|
|
4187
|
+
},
|
|
4188
|
+
"note": "Checkout keys are commerce wiring (bundles, shipping_methods, order bumps, MV variant slots) and diverge by design. The slot manifest references the commerce contracts instead of duplicating them; checkout content imagery is governed by the family brand contract."
|
|
4189
|
+
}
|
|
4190
|
+
},
|
|
4191
|
+
"roadmap": {
|
|
4192
|
+
"note": "Corpus section-coverage audit (2026-07-22): sections winning campaigns use that the shared vocabulary cannot yet express, in descending revenue exposure. Proposed as shared-core additions \u2014 NOT forced into families whose templates lack the surface.",
|
|
4193
|
+
"proposed_sections": [
|
|
4194
|
+
{
|
|
4195
|
+
"section": "announcement_1",
|
|
4196
|
+
"covers": "urgency/promo strips",
|
|
4197
|
+
"revenue_exposure_usd_m": 39.7,
|
|
4198
|
+
"notes": "must carry enabled_by_verified_urgency semantics"
|
|
4199
|
+
},
|
|
4200
|
+
{
|
|
4201
|
+
"section": "media_1",
|
|
4202
|
+
"covers": "visual/carousel + video/demo surfaces",
|
|
4203
|
+
"revenue_exposure_usd_m": 34.4
|
|
4204
|
+
},
|
|
4205
|
+
{
|
|
4206
|
+
"section": "credibility_1",
|
|
4207
|
+
"covers": "press-logo credibility ('as seen in')",
|
|
4208
|
+
"revenue_exposure_usd_m": 31.5,
|
|
4209
|
+
"notes": "every logo requires a brief-supplied working URL (anti-pattern 8)"
|
|
4210
|
+
},
|
|
4211
|
+
{
|
|
4212
|
+
"section": "comparison_1",
|
|
4213
|
+
"covers": "comparison tables",
|
|
4214
|
+
"revenue_exposure_usd_m": 19.0,
|
|
4215
|
+
"notes": "requires a brief-supplied comparison matrix and test record (anti-pattern 11)"
|
|
4216
|
+
},
|
|
4217
|
+
{
|
|
4218
|
+
"section": "socialproof_1",
|
|
4219
|
+
"covers": "typed social-proof modalities; UGC merchant_asset_required",
|
|
4220
|
+
"revenue_exposure_usd_m": null
|
|
4221
|
+
},
|
|
4222
|
+
{
|
|
4223
|
+
"section": "article_meta_1",
|
|
4224
|
+
"covers": "article identity/byline metadata",
|
|
4225
|
+
"revenue_exposure_usd_m": 12.1
|
|
4226
|
+
},
|
|
4227
|
+
{
|
|
4228
|
+
"section": "sticky_offer_1",
|
|
4229
|
+
"covers": "sticky buy box",
|
|
4230
|
+
"revenue_exposure_usd_m": 7.5
|
|
4231
|
+
},
|
|
4232
|
+
{
|
|
4233
|
+
"section": "process_1 / specs_1",
|
|
4234
|
+
"covers": "how-it-works / spec tables",
|
|
4235
|
+
"revenue_exposure_usd_m": null
|
|
4236
|
+
},
|
|
4237
|
+
{
|
|
4238
|
+
"section": "transformation_1",
|
|
4239
|
+
"covers": "transformation timelines",
|
|
4240
|
+
"revenue_exposure_usd_m": 6.8
|
|
4241
|
+
},
|
|
4242
|
+
{
|
|
4243
|
+
"section": "offer_close_1",
|
|
4244
|
+
"covers": "normalized offer-close block",
|
|
4245
|
+
"revenue_exposure_usd_m": null
|
|
4246
|
+
},
|
|
4247
|
+
{
|
|
4248
|
+
"section": "mapper_aliases",
|
|
4249
|
+
"covers": "CI-checked aliases for offer_*/cta_*/author_* mapper drift",
|
|
4250
|
+
"revenue_exposure_usd_m": 50.0
|
|
4251
|
+
}
|
|
4252
|
+
]
|
|
4253
|
+
}
|
|
4254
|
+
}
|