{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://zeitmint.com/launch-kit.schema.json",
  "title": "ZeitMint Launch Kit",
  "description": "A portable creative handoff for token launch platforms.",
  "type": "object",
  "required": ["$schema", "schemaVersion", "source", "token", "creative", "campaign", "handoff", "review"],
  "properties": {
    "$schema": { "const": "https://zeitmint.com/launch-kit.schema.json" },
    "schemaVersion": { "const": "1.0" },
    "source": {
      "type": "object",
      "required": ["name", "url"],
      "properties": {
        "name": { "const": "ZeitMint" },
        "url": { "type": "string", "format": "uri" }
      },
      "additionalProperties": false
    },
    "token": {
      "type": "object",
      "required": ["name", "symbol", "description"],
      "properties": {
        "name": { "type": "string", "minLength": 1, "maxLength": 80 },
        "symbol": { "type": "string", "minLength": 1, "maxLength": 16 },
        "description": { "type": "string", "minLength": 1, "maxLength": 1000 }
      },
      "additionalProperties": false
    },
    "creative": {
      "type": "object",
      "required": ["culturalLane", "hook", "artDirection"],
      "properties": {
        "culturalLane": { "type": "string" },
        "hook": { "type": "string" },
        "artDirection": { "type": "string" }
      },
      "additionalProperties": false
    },
    "campaign": {
      "type": "object",
      "required": ["posts"],
      "properties": {
        "posts": {
          "type": "array",
          "minItems": 1,
          "items": { "type": "string" }
        }
      },
      "additionalProperties": false
    },
    "handoff": {
      "type": "object",
      "required": ["mode", "preferredLaunchpad", "preferredChain", "integrationStatus", "launchpadControls"],
      "properties": {
        "mode": { "const": "launchpad-ready" },
        "preferredLaunchpad": {
          "type": "string",
          "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
        },
        "preferredChain": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
        },
        "integrationStatus": {
          "enum": ["partnership-target", "integration-candidate", "open-standard"]
        },
        "launchpadControls": {
          "type": "array",
          "items": { "type": "string" },
          "uniqueItems": true
        }
      },
      "additionalProperties": false
    },
    "review": {
      "type": "object",
      "required": ["creatorApprovalRequired", "promisesReturns", "deploysToken"],
      "properties": {
        "creatorApprovalRequired": { "type": "boolean" },
        "promisesReturns": { "const": false },
        "deploysToken": { "const": false }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
