{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://vclaw.dev/schemas/video/artifacts/flow-characters.schema.json",
  "title": "FlowCharactersArtifact",
  "description": "Registered Google Flow v1 reusable characters (locked identity + optional bundled voice). Written by src/video/flow-character-library.ts (vclaw video flow-register-characters). characterRef values are used as character_1..7 on the veo-useapi route.",
  "type": "object",
  "required": ["schemaVersion", "projectSlug", "generatedAt", "characters"],
  "additionalProperties": false,
  "properties": {
    "schemaVersion": { "const": 1 },
    "projectSlug": { "type": "string", "minLength": 1 },
    "generatedAt": { "type": "string", "format": "date-time" },
    "characters": {
      "type": "array",
      "items": { "$ref": "#/definitions/FlowCharacter" }
    }
  },
  "definitions": {
    "FlowCharacter": {
      "type": "object",
      "required": ["name", "entityId", "characterRef"],
      "additionalProperties": false,
      "properties": {
        "name": { "type": "string", "minLength": 1 },
        "entityId": { "type": "string", "minLength": 1 },
        "characterRef": { "type": "string", "minLength": 1 },
        "voice": { "type": "string" }
      }
    }
  }
}
