{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "ip": {
      "title": "In Point",
      "description": "In Point of the Time Ruler. Sets the initial Frame of the animation.",
      "type": "number"
    },
    "op": {
      "title": "Out Point",
      "description": "Out Point of the Time Ruler. Sets the final Frame of the animation",
      "type": "number"
    },
    "fr": {
      "title": "Frame Rate",
      "description": "Frame Rate",
      "type": "number"
    },
    "w": {
      "title": "Width",
      "description": "Composition Width",
      "type": "number"
    },
    "ddd": {
      "title": "3-D",
      "description": "Composition has 3-D layers",
      "enum": [
        0,
        1
      ],
      "type": "number"
    },
    "h": {
      "title": "Height",
      "description": "Composition Height",
      "type": "number"
    },
    "v": {
      "title": "Version",
      "description": "Bodymovin Version",
      "type": "string"
    },
    "nm": {
      "title": "Name",
      "description": "Composition name",
      "type": "string"
    },
    "layers": {
      "title": "Layers",
      "description": "List of Composition Layers",
      "items": {
        "oneOf": [
          {
            "$ref": "./layers/shape.json"
          },
          {
            "$ref": "./layers/solid.json"
          },
          {
            "$ref": "./layers/image.json"
          },
          {
            "$ref": "./layers/null.json"
          },
          {
            "$ref": "./layers/text.json"
          },
          {
            "$ref": "./layers/preComp.json"
          }
        ],
        "type": "object"
      },
      "type": "array"
    },
    "assets": {
      "title": "Assets",
      "description": "source items that can be used in multiple places. Comps and Images for now.",
      "items": {
        "oneOf": [
          {
            "$ref": "./sources/image.json"
          },
          {
            "$ref": "./sources/preComp.json"
          }
        ],
        "type": "object"
      },
      "type": "array"
    },
    "chars": {
      "title": "Chars",
      "description": "source chars for text layers",
      "items": {
        "oneOf": [
          {
            "$ref": "./sources/chars.json"
          }
        ],
        "type": "object"
      },
      "type": "array"
    },
    "fonts": {
      "title": "Fonts",
      "description": "Available fonts.",
      "properties": {
        "list": {
          "items": {
            "oneOf": [
              {
                "$ref": "./sources/font.json"
              }
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    }
  }
}