← GPT-AI-LP
FILE · 4.9 KB

test/fixtures/lp-result.schema.json

Workspace snapshot · 08/31 23:51

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": ["headlines", "sections", "qualityGate"],
  "properties": {
    "headlines": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "object", "additionalProperties": false, "required": ["id", "axis", "copy", "reason"], "properties": { "id": {"type":"string"}, "axis": {"type":"string"}, "copy": {"type":"string"}, "reason": {"type":"string"} } } },
    "sections": { "type": "array", "minItems": 12, "maxItems": 22, "items": { "$ref": "#/$defs/section" } },
    "qualityGate": {
      "type": "object",
      "additionalProperties": false,
      "required": ["applied", "skipped", "known", "hypotheses", "unconfirmed"],
      "properties": {
        "applied": { "type": "array", "items": { "type": "string" } },
        "skipped": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": ["item", "reason"],
            "properties": {
              "item": { "type": "string" },
              "reason": { "type": "string" }
            }
          }
        },
        "known": { "type": "array", "items": { "type": "string" } },
        "hypotheses": { "type": "array", "items": { "type": "string" } },
        "unconfirmed": { "type": "array", "items": { "type": "string" } }
      }
    }
  },
  "$defs": {
    "item": { "type":"object", "additionalProperties":false, "required":["eyebrow","title","description","proof"], "properties":{"eyebrow":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"proof":{"type":"string"}} },
    "metric": { "type":"object", "additionalProperties":false, "required":["value","label","source"], "properties":{"value":{"type":"string"},"label":{"type":"string"},"source":{"type":"string"}} },
    "section": { "type":"object", "additionalProperties":false, "required":["id","type","layoutVariant","label","role","userQuestion","title","body","proof","content","contentModel","asset","implementation","cta","layout","imageBrief"], "properties": {
      "id":{"type":"string"},"type":{"type":"string"},"layoutVariant":{"type":"string"},"label":{"type":"string"},"role":{"type":"string"},"userQuestion":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"proof":{"type":"string"},"content":{"type":"string"},"asset":{"type":"string"},"implementation":{"type":"string"},"cta":{"type":"string"},"layout":{"type":"string"},
      "imageBrief":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":{"type":"string"}}]},
      "contentModel":{"type":"object","additionalProperties":false,"required":["items","steps","metrics","faqs","plans","comparison","beforeAfter","caseStudy","quote","quoteAttribution","sourceNote"],"properties":{
        "items":{"type":"array","items":{"$ref":"#/$defs/item"}},"steps":{"type":"array","items":{"$ref":"#/$defs/item"}},"metrics":{"type":"array","items":{"$ref":"#/$defs/metric"}},
        "faqs":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["question","answer"],"properties":{"question":{"type":"string"},"answer":{"type":"string"}}}},
        "plans":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","price","period","description","features","note","cta"],"properties":{"name":{"type":"string"},"price":{"type":"string"},"period":{"type":"string"},"description":{"type":"string"},"features":{"type":"array","items":{"type":"string"}},"note":{"type":"string"},"cta":{"type":"string"}}}},
        "comparison":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["columns","rows"],"properties":{"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["label","cells"],"properties":{"label":{"type":"string"},"cells":{"type":"array","items":{"type":"string"}}}}}}}]},
        "beforeAfter":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["before","after"],"properties":{"before":{"$ref":"#/$defs/item"},"after":{"$ref":"#/$defs/item"}}}]},
        "caseStudy": {
          "anyOf": [
            { "type": "null" },
            {
              "type": "object",
              "additionalProperties": false,
              "required": ["subject", "issue", "action", "result", "source", "metrics"],
              "properties": {
                "subject": { "type": "string" },
                "issue": { "type": "string" },
                "action": { "type": "string" },
                "result": { "type": "string" },
                "source": { "type": "string" },
                "metrics": { "type": "array", "items": { "$ref": "#/$defs/metric" } }
              }
            }
          ]
        },
        "quote":{"type":"string"},"quoteAttribution":{"type":"string"},"sourceNote":{"type":"string"}
      }}
    } }
  }
}