{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/agentseo-dev/json-schema/agentseo-dev-programmatic-template-params-schema.json",
  "title": "ProgrammaticTemplateParams",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/agentseo-dev-openapi.yaml#/components/schemas/ProgrammaticTemplateParams",
  "type": "object",
  "required": [
    "keyword_pattern",
    "url_pattern",
    "data_sources",
    "variables"
  ],
  "properties": {
    "target": {
      "type": "string",
      "description": "Optional target brand, domain, or product."
    },
    "playbook": {
      "type": "string",
      "enum": [
        "templates",
        "curation",
        "conversions",
        "comparisons",
        "examples",
        "locations",
        "personas",
        "integrations",
        "glossary",
        "translations",
        "directory",
        "profiles",
        "custom"
      ],
      "default": "custom"
    },
    "page_goal": {
      "type": "string",
      "enum": [
        "traffic",
        "lead_generation",
        "trial_signup",
        "demo_request",
        "purchase",
        "authority",
        "support"
      ],
      "default": "lead_generation"
    },
    "keyword_pattern": {
      "type": "string",
      "minLength": 1,
      "maxLength": 180
    },
    "url_pattern": {
      "type": "string",
      "minLength": 1,
      "maxLength": 180
    },
    "audience": {
      "type": "string",
      "maxLength": 180
    },
    "page_count_estimate": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000000,
      "default": 100
    },
    "data_sources": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "type": {
            "type": "string",
            "enum": [
              "first_party",
              "product",
              "user_generated",
              "licensed",
              "public",
              "manual",
              "unknown"
            ],
            "default": "unknown"
          },
          "freshness": {
            "type": "string",
            "enum": [
              "real_time",
              "daily",
              "weekly",
              "monthly",
              "quarterly",
              "static",
              "unknown"
            ],
            "default": "unknown"
          },
          "fields": {
            "type": "array",
            "maxItems": 80,
            "items": {
              "type": "string",
              "maxLength": 80
            },
            "default": []
          }
        }
      }
    },
    "variables": {
      "type": "array",
      "minItems": 1,
      "maxItems": 30,
      "items": {
        "type": "string",
        "maxLength": 80
      }
    },
    "unique_fields": {
      "type": "array",
      "maxItems": 80,
      "items": {
        "type": "string",
        "maxLength": 80
      },
      "default": []
    },
    "sample_records": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "default": []
    },
    "competitors": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string",
        "maxLength": 160
      },
      "default": []
    },
    "conversion_cta": {
      "type": "string",
      "maxLength": 120
    },
    "publishing_cadence": {
      "type": "string",
      "enum": [
        "pilot",
        "weekly_batch",
        "monthly_batch",
        "bulk_import"
      ],
      "default": "pilot"
    },
    "include_schema": {
      "type": "boolean",
      "default": true
    },
    "include_internal_linking": {
      "type": "boolean",
      "default": true
    }
  }
}