{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string"
    },
    "schemaVersion": {
      "type": "number",
      "const": 1
    },
    "name": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
    },
    "label": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "palette": {
      "type": "object",
      "properties": {
        "background": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        },
        "card": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        },
        "primary": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        },
        "secondary": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        }
      },
      "required": [
        "background",
        "card",
        "primary",
        "secondary"
      ],
      "additionalProperties": false
    },
    "dark": {
      "type": "object",
      "properties": {
        "background": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        },
        "card": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        },
        "primary": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        },
        "secondary": {
          "type": "string",
          "pattern": "^#[\\da-fA-F]{6}$"
        }
      },
      "required": [
        "background",
        "card",
        "primary",
        "secondary"
      ],
      "additionalProperties": false
    },
    "radius": {
      "default": 0.625,
      "type": "number",
      "minimum": 0,
      "maximum": 2
    },
    "blocks": {
      "type": "object",
      "properties": {
        "header": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "footer": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "hero": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "content": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "features": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "services": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "contact": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "cta": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "faqs": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "reviews": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "pricing": {
          "type": "string",
          "pattern": "^@gnosticai\\/[a-z0-9]+(?:-[a-z0-9]+)*$"
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "schemaVersion",
    "name",
    "label",
    "palette",
    "radius",
    "blocks"
  ],
  "additionalProperties": false
}
