{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hinson.consulting/hcg/data/projects.schema.json",
  "title": "HCG and CREVOX Project Dataset",
  "type": "object",
  "required": [
    "version",
    "updated",
    "projects"
  ],
  "properties": {
    "version": {
      "type": "string"
    },
    "updated": {
      "type": "string",
      "format": "date"
    },
    "projects": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "slug",
          "title",
          "short_title",
          "brand",
          "client_display",
          "industry",
          "year",
          "status",
          "record_type",
          "confidentiality",
          "editorial_base_score",
          "primary_services",
          "secondary_services",
          "audiences",
          "objectives",
          "technologies",
          "summary",
          "direct_answer",
          "challenge",
          "constraints",
          "approach",
          "solution",
          "deliverables",
          "outcomes",
          "proof_assets",
          "lessons",
          "next_stage",
          "hero_theme",
          "seo_title",
          "meta_description",
          "primary_query",
          "reader_value",
          "business_value",
          "authority_basis",
          "search_questions"
        ],
        "properties": {
          "slug": {
            "type": "string",
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "title": {
            "type": "string",
            "minLength": 3
          },
          "short_title": {
            "type": "string",
            "minLength": 2
          },
          "brand": {
            "enum": [
              "hcg",
              "crevox",
              "hcg-crevox"
            ]
          },
          "client_display": {
            "type": "string"
          },
          "industry": {
            "enum": [
              "professional-services",
              "ecommerce-retail",
              "ffe-design",
              "hospitality-recreation",
              "membership-nonprofit",
              "corporate-gifting",
              "technology-ai",
              "health-wellness",
              "multi-industry"
            ]
          },
          "year": {
            "type": "string",
            "pattern": "^20[0-9]{2}$"
          },
          "status": {
            "enum": [
              "operational",
              "active",
              "defined",
              "concept"
            ]
          },
          "record_type": {
            "type": "string"
          },
          "confidentiality": {
            "type": "string"
          },
          "editorial_base_score": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "primary_services": {
            "type": "array",
            "minItems": 1,
            "items": {
              "enum": [
                "business-strategy",
                "website-bxp",
                "ai-visibility",
                "content-authority",
                "workflow-automation",
                "data-architecture",
                "crm-revops",
                "analytics-reporting",
                "client-portal",
                "research-diligence",
                "ai-governance",
                "agentic-ai",
                "ecommerce",
                "integration-api",
                "product-platform"
              ]
            },
            "uniqueItems": true
          },
          "secondary_services": {
            "type": "array",
            "items": {
              "enum": [
                "business-strategy",
                "website-bxp",
                "ai-visibility",
                "content-authority",
                "workflow-automation",
                "data-architecture",
                "crm-revops",
                "analytics-reporting",
                "client-portal",
                "research-diligence",
                "ai-governance",
                "agentic-ai",
                "ecommerce",
                "integration-api",
                "product-platform"
              ]
            },
            "uniqueItems": true
          },
          "audiences": {
            "type": "array",
            "minItems": 1,
            "items": {
              "enum": [
                "owner-founder",
                "executive",
                "marketing-growth",
                "operations",
                "sales-revenue",
                "technology-data",
                "investor-advisor",
                "client-service"
              ]
            },
            "uniqueItems": true
          },
          "objectives": {
            "type": "array",
            "minItems": 1,
            "items": {
              "enum": [
                "increase-visibility",
                "modernize-website",
                "reduce-manual-work",
                "improve-data-trust",
                "grow-qualified-pipeline",
                "support-decisions",
                "govern-ai",
                "launch-product",
                "improve-client-experience",
                "organize-knowledge"
              ]
            },
            "uniqueItems": true
          },
          "technologies": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          },
          "summary": {
            "type": "string",
            "minLength": 50
          },
          "direct_answer": {
            "type": "string",
            "minLength": 50
          },
          "challenge": {
            "type": "string",
            "minLength": 50
          },
          "constraints": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "approach": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "solution": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "deliverables": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "outcomes": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "proof_assets": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "lessons": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "string"
            }
          },
          "next_stage": {
            "type": "string",
            "minLength": 20
          },
          "hero_theme": {
            "type": "string",
            "pattern": "^[a-z0-9-]+$"
          },
          "seo_title": {
            "type": "string",
            "minLength": 20,
            "maxLength": 70
          },
          "meta_description": {
            "type": "string",
            "minLength": 80,
            "maxLength": 170
          },
          "primary_query": {
            "type": "string",
            "minLength": 20
          },
          "reader_value": {
            "type": "string",
            "minLength": 50
          },
          "business_value": {
            "type": "array",
            "minItems": 3,
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 25
            }
          },
          "authority_basis": {
            "type": "string",
            "minLength": 60
          },
          "search_questions": {
            "type": "array",
            "minItems": 3,
            "maxItems": 5,
            "items": {
              "type": "object",
              "required": [
                "question",
                "answer"
              ],
              "properties": {
                "question": {
                  "type": "string",
                  "minLength": 15
                },
                "answer": {
                  "type": "string",
                  "minLength": 40
                }
              },
              "additionalProperties": false
            }
          },
          "body_file": {
            "type": "string",
            "pattern": "^projects/[a-z0-9]+(?:-[a-z0-9]+)*\\.html$"
          },
          "date_modified": {
            "type": "string",
            "format": "date"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false,
  "version": "3.0"
}
