{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://money.local/schemas/competitor-snapshot-intake.json",
  "title": "CompetitorSnapshotIntake",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "product_name",
    "category",
    "geography",
    "tier"
  ],
  "properties": {
    "product_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Product or company being analysed"
    },
    "category": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "One-line category, e.g. AI meeting notes for PMs"
    },
    "known_competitors": {
      "type": "array",
      "maxItems": 3,
      "items": {
        "type": "string",
        "maxLength": 80
      },
      "description": "Optional known competitors (up to 3)"
    },
    "geography": {
      "type": "string",
      "enum": [
        "UK",
        "US",
        "EU",
        "global",
        "uk",
        "us",
        "eu"
      ],
      "description": "Primary market"
    },
    "tier": {
      "type": "string",
      "enum": [
        "quick",
        "deep"
      ],
      "description": "Must match the paid SKU path"
    },
    "url": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional landing page / product URL"
    },
    "positioning_one_liner": {
      "type": "string",
      "maxLength": 280,
      "description": "Optional 'we're X for Y'"
    },
    "off_limits": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional competitors / angles to skip"
    },
    "delivery_email_or_webhook": {
      "type": "string",
      "maxLength": 300,
      "description": "Where to send the brief within 48h"
    }
  }
}