{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hyperframes.heygen.com/schema/hyperframes.json",
  "title": "Hyperframes Project Config",
  "description": "Per-project configuration for a Hyperframes project (hyperframes.json). Tells `hyperframes add` which registry to pull items from and where to drop them in the project tree. Created by `hyperframes init`; users may edit it to point at custom registries or reshape their project layout.",
  "type": "object",
  "required": ["registry", "paths"],
  "additionalProperties": false,
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri",
      "description": "JSON Schema URL — https://hyperframes.heygen.com/schema/hyperframes.json."
    },
    "registry": {
      "type": "string",
      "format": "uri",
      "minLength": 1,
      "description": "Base URL of the registry to pull items from. Point at the official Hyperframes registry or a custom one."
    },
    "paths": {
      "type": "object",
      "description": "Target paths for each item type, relative to the project root.",
      "required": ["blocks", "components", "assets"],
      "additionalProperties": false,
      "properties": {
        "blocks": {
          "type": "string",
          "minLength": 1,
          "description": "Where `hyperframes:block` items land. Defaults to `compositions`."
        },
        "components": {
          "type": "string",
          "minLength": 1,
          "description": "Where `hyperframes:component` items land. Defaults to `compositions/components`."
        },
        "assets": {
          "type": "string",
          "minLength": 1,
          "description": "Where asset files (images, fonts, videos) land. Defaults to `assets`."
        }
      }
    }
  }
}
