{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cueframe-ai/json-schema/cueframe-ai-brand-kit-create-request-schema.json",
  "title": "BrandKitCreateRequest",
  "description": "POST /brand-kits body. Org/user are server-resolved; never accepted from the body.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cueframe-ai-brand-kits-api-openapi.yml#/components/schemas/BrandKitCreateRequest",
  "type": "object",
  "properties": {
    "kitId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "tagline": {
      "type": "string",
      "maxLength": 500
    },
    "secondaryTagline": {
      "type": "string",
      "maxLength": 500
    },
    "colors": {
      "type": "object",
      "properties": {
        "primary": {
          "type": "string",
          "minLength": 1
        },
        "secondary": {
          "type": "string",
          "minLength": 1
        },
        "accent": {
          "type": "string",
          "minLength": 1
        },
        "background": {
          "type": "string",
          "minLength": 1
        },
        "text": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "primary",
        "secondary",
        "accent",
        "background",
        "text"
      ],
      "additionalProperties": false
    },
    "extraColors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hex": {
            "type": "string",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "minLength": 1
          },
          "usage": {
            "type": "string"
          }
        },
        "required": [
          "hex",
          "label"
        ],
        "additionalProperties": false
      }
    },
    "headingFont": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1
        },
        "fontWeight": {
          "type": "number"
        }
      },
      "required": [
        "fontFamily",
        "fontWeight"
      ],
      "additionalProperties": false
    },
    "bodyFont": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1
        },
        "fontWeight": {
          "type": "number"
        }
      },
      "required": [
        "fontFamily",
        "fontWeight"
      ],
      "additionalProperties": false
    },
    "voiceGuidelines": {
      "type": "string",
      "maxLength": 5000
    },
    "syncCaptions": {
      "type": "boolean"
    },
    "captionProfile": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string"
        },
        "fontSize": {
          "type": "number"
        },
        "fontWeight": {
          "type": "number"
        },
        "color": {
          "type": "string"
        },
        "highlightColor": {
          "type": "string"
        },
        "backgroundColor": {
          "type": "string"
        },
        "plate": {
          "type": "string",
          "enum": [
            "glass",
            "solid",
            "none"
          ]
        },
        "position": {
          "type": "string",
          "enum": [
            "top",
            "center",
            "bottom"
          ]
        },
        "textTransform": {
          "type": "string",
          "enum": [
            "none",
            "uppercase"
          ]
        },
        "entrance": {
          "type": "string",
          "enum": [
            "none",
            "fade",
            "word-pop",
            "stagger-up"
          ]
        },
        "entranceMs": {
          "type": "number"
        },
        "entranceStaggerMs": {
          "type": "number"
        },
        "exitMs": {
          "type": "number"
        },
        "emphasisColor": {
          "type": "string"
        },
        "emphasisScale": {
          "type": "number"
        },
        "emphasisFontFamily": {
          "type": "string"
        },
        "emphasisFontWeight": {
          "type": "number"
        },
        "emphasisFontStyle": {
          "type": "string",
          "enum": [
            "normal",
            "italic"
          ]
        },
        "emphasisTextTransform": {
          "type": "string",
          "enum": [
            "none",
            "uppercase"
          ]
        },
        "emphasisLetterSpacing": {
          "type": "number"
        },
        "emphasisPlate": {
          "type": "boolean"
        },
        "emphasisPlateColor": {
          "type": "string"
        },
        "emphasisPlateTextColor": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "motion": {
      "type": "object",
      "properties": {
        "duration": {
          "type": "number"
        },
        "easing": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "linear",
                "ease",
                "ease-in",
                "ease-out",
                "ease-in-out"
              ]
            },
            {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "const": "cubic-bezier"
                },
                "x1": {
                  "type": "number"
                },
                "y1": {
                  "type": "number"
                },
                "x2": {
                  "type": "number"
                },
                "y2": {
                  "type": "number"
                }
              },
              "required": [
                "kind",
                "x1",
                "y1",
                "x2",
                "y2"
              ],
              "additionalProperties": false
            }
          ]
        },
        "entrance": {
          "type": "string",
          "enum": [
            "none",
            "fade",
            "word-pop",
            "stagger-up"
          ]
        },
        "staggerMs": {
          "type": "number"
        },
        "exitMs": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "logo": {
      "type": "object",
      "properties": {
        "src": {
          "type": "string",
          "minLength": 1
        },
        "alt": {
          "type": "string"
        },
        "placement": {
          "type": "string",
          "enum": [
            "tl",
            "tr",
            "bl",
            "br"
          ]
        },
        "sizePct": {
          "type": "number"
        }
      },
      "required": [
        "src"
      ],
      "additionalProperties": false
    },
    "intro": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "card",
            "video"
          ]
        },
        "src": {
          "type": "string",
          "minLength": 1
        },
        "title": {
          "type": "string"
        },
        "subtitle": {
          "type": "string"
        },
        "durationMs": {
          "type": "number"
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    },
    "outro": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "card",
            "video"
          ]
        },
        "src": {
          "type": "string",
          "minLength": 1
        },
        "title": {
          "type": "string"
        },
        "subtitle": {
          "type": "string"
        },
        "durationMs": {
          "type": "number"
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    },
    "watermark": {
      "type": "object",
      "properties": {
        "src": {
          "type": "string",
          "minLength": 1
        },
        "opacity": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "placement": {
          "type": "string",
          "enum": [
            "tl",
            "tr",
            "bl",
            "br"
          ]
        }
      },
      "required": [
        "src"
      ],
      "additionalProperties": false
    },
    "spacing": {
      "type": "object",
      "properties": {
        "base": {
          "type": "number"
        },
        "lg": {
          "type": "number"
        },
        "sm": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "sizing": {
      "type": "object",
      "properties": {
        "fontSizeHeading": {
          "type": "number"
        },
        "fontSizeBody": {
          "type": "number"
        },
        "fontSizeLabel": {
          "type": "number"
        },
        "borderRadius": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "audio": {
      "type": "object",
      "properties": {
        "sfxIntensity": {
          "type": "string",
          "enum": [
            "off",
            "light",
            "standard",
            "dense"
          ]
        },
        "musicEnabled": {
          "type": "boolean"
        },
        "musicMood": {
          "type": "string",
          "maxLength": 300
        },
        "sonicLogo": {
          "description": "A brand sound signature bound to the intro/outro bookend. `ref` = a palette reference; bound only when the kit carries the matching bumper (intro/outro), else a non-blocking advisory.",
          "type": "object",
          "properties": {
            "ref": {
              "type": "string",
              "minLength": 1
            },
            "placement": {
              "type": "string",
              "enum": [
                "intro",
                "outro",
                "both"
              ]
            },
            "offsetMs": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000
            }
          },
          "required": [
            "ref",
            "placement"
          ],
          "additionalProperties": false
        },
        "uiSoundSet": {
          "description": "Per-family SFX overrides (the brand's own tick/pop/…). Highest-priority tier over the org palette + pack default in the compose SFX draw.",
          "type": "object",
          "properties": {
            "tick": {
              "type": "string",
              "minLength": 1
            },
            "pop": {
              "type": "string",
              "minLength": 1
            },
            "impact": {
              "type": "string",
              "minLength": 1
            },
            "confirm": {
              "type": "string",
              "minLength": 1
            },
            "error": {
              "type": "string",
              "minLength": 1
            },
            "whoosh": {
              "type": "string",
              "minLength": 1
            },
            "riser": {
              "type": "string",
              "minLength": 1
            }
          },
          "additionalProperties": false
        },
        "bedStyle": {
          "description": "Preferred music bed (`bedId`) or a style hint (`genre` / `bpmRange`). Surfaced for driving agents; compose does not auto-select a pack bed.",
          "type": "object",
          "properties": {
            "bedId": {
              "type": "string",
              "minLength": 1
            },
            "genre": {
              "type": "string",
              "maxLength": 120
            },
            "bpmRange": {
              "type": "object",
              "properties": {
                "min": {
                  "type": "number"
                },
                "max": {
                  "type": "number"
                }
              },
              "required": [
                "min",
                "max"
              ],
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "ambiencePreference": {
          "description": "Preferred ambience bed (`{ref}`) or explicit null (opt-out). Surfaced for driving agents; compose has no ambience auto-placement.",
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "ref": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "ref"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "exemplarKeys": {
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "contactSheetKey": {
      "type": "string",
      "minLength": 1
    },
    "motifs": {
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "observed": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "body": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "card"
                  },
                  "html": {
                    "type": "string",
                    "minLength": 1
                  },
                  "tokens": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "kind",
                  "html"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "overlay"
                  },
                  "primitiveId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "params": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "kind",
                  "primitiveId"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "component"
                  },
                  "componentId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "props": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "kind",
                  "componentId"
                ],
                "additionalProperties": false
              }
            ],
            "type": "object"
          },
          "motion": {
            "type": "object",
            "properties": {
              "preset": {
                "type": "string",
                "enum": [
                  "fade-up",
                  "slide-in-left",
                  "slide-in-right",
                  "scale-pop",
                  "stagger-reveal"
                ]
              },
              "enterMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 5000
              },
              "exitMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 5000
              },
              "staggerMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 2000
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "high",
                  "low"
                ]
              }
            },
            "required": [
              "preset"
            ],
            "additionalProperties": false
          },
          "role": {
            "type": "string",
            "enum": [
              "title-card",
              "stat",
              "lower-third",
              "pull-quote",
              "hero",
              "logo-tag",
              "enumeration",
              "sequence",
              "comparison"
            ]
          },
          "zone": {
            "type": "object",
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              },
              "w": {
                "type": "number"
              },
              "h": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y",
              "w",
              "h"
            ],
            "additionalProperties": false
          },
          "evidence": {
            "maxItems": 24,
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "diffScore": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "coverage": {
            "type": "string",
            "enum": [
              "reproduced",
              "approximated",
              "skipped"
            ]
          },
          "skipReason": {
            "type": "string",
            "maxLength": 300
          }
        },
        "required": [
          "id",
          "observed",
          "body",
          "role",
          "coverage"
        ],
        "additionalProperties": false
      }
    },
    "styleRubric": {
      "type": "string",
      "maxLength": 4000
    },
    "density": {
      "type": "object",
      "properties": {
        "graphicsPerMin": {
          "type": "number",
          "minimum": 0,
          "maximum": 60
        },
        "maxSimultaneous": {
          "type": "integer",
          "minimum": 1,
          "maximum": 6
        }
      },
      "required": [
        "graphicsPerMin",
        "maxSimultaneous"
      ],
      "additionalProperties": false
    },
    "inspiration": {
      "type": "object",
      "properties": {
        "sources": {
          "minItems": 1,
          "maxItems": 24,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "extractedAt": {
          "type": "number"
        },
        "extractionVersion": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60
        }
      },
      "required": [
        "sources",
        "extractedAt",
        "extractionVersion"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "kitId",
    "name",
    "colors",
    "headingFont",
    "bodyFont"
  ],
  "additionalProperties": false
}