{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "TextLayer",
  "type": "object",
  "properties": {
    "ty": {
      "title": "Type",
      "description": "Type of layer: Text.",
      "type": "number",
      "enum": [5]
    },
    "ks": {
      "title": "Transform",
      "description": "Transform properties",
      "oneOf": [
        {
          "$ref": "../helpers/transform.json"
        }
      ],
      "type": "object"
    },
    "ao": {
      "title": "Auto-Orient",
      "description": "Auto-Orient along path AE property.",
      "oneOf": [
        {
          "$ref": "../helpers/boolean.json"
        }
      ],
      "type": "number",
      "default": 0
    },
    "bm": {
      "title": "Blend Mode",
      "description": "Blend Mode",
      "oneOf": [
        {
          "$ref": "../helpers/blendMode.json"
        }
      ],
      "type": "number",
      "default": 0
    },
    "ddd": {
      "title": "3d Layer",
      "description": "3d layer flag",
      "oneOf": [
        {
          "$ref": "../helpers/boolean.json"
        }
      ],
      "type": "number",
      "default": 0
    },
    "ind": {
      "title": "Index",
      "description": "Layer index in AE. Used for parenting and expressions.",
      "type": "number"
    },
    "cl": {
      "title": "Class",
      "description": "Parsed layer name used as html class on SVG/HTML renderer",
      "type": "string"
    },
    "ln": {
      "title": "layer HTML ID",
      "description": "Parsed layer name used as html id on SVG/HTML renderer",
      "type": "string"
    },
    "ip": {
      "title": "In Point",
      "description": "In Point of layer. Sets the initial frame of the layer.",
      "type": "number"
    },
    "op": {
      "title": "Out Point",
      "description": "Out Point of layer. Sets the final frame of the layer.",
      "type": "number"
    },
    "st": {
      "title": "Start Time",
      "description": "Start Time of layer. Sets the start time of the layer.",
      "type": "number"
    },
    "nm": {
      "title": "Name",
      "description": "After Effects Layer Name. Used for expressions.",
      "type": "number"
    },
    "hasMask": {
      "title": "Has Masks",
      "description": "Boolean when layer has a mask. Will be deprecated in favor of checking masksProperties.",
      "type": "number"
    },
    "masksProperties": {
      "title": "Masks Properties",
      "description": "List of Masks",
      "items": {
        "oneOf": [
          {
            "$ref": "../helpers/mask.json"
          }
        ],
        "type": "object"
      },
      "type": "array"
    },
    "ef": {
      "title": "Effects",
      "description": "Auto-Orient along path AE property.",
      "oneOf": [
        {
          "$ref": "../helpers/boolean.json"
        }
      ],
      "type": "number"
    },
    "sr": {
      "title": "Stretch",
      "description": "Layer Time Stretching",
      "type": "number",
      "default": 1
    },
    "parent": {
      "title": "Parent",
      "description": "Layer Parent. Uses ind of parent.",
      "type": "number"
    },
    "t": {
      "title": "Text Data",
      "description": "Text Data",
      "properties": {
        "a": {
          "title": "Animators",
          "description": "Text animators",
          "items": {
            "properties": {
              "p": {
                "title": "Position",
                "description": "Text animator Position",
                "oneOf": [
                  {
                    "$ref": "../properties/multiDimensional.json"
                  },
                  {
                    "$ref": "../properties/multiDimensionalKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "a": {
                "title": "Anchor Point",
                "description": "Text animator Anchor Point",
                "oneOf": [
                  {
                    "$ref": "../properties/multiDimensional.json"
                  },
                  {
                    "$ref": "../properties/multiDimensionalKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "s": {
                "title": "Scale",
                "description": "Text animator Scale",
                "oneOf": [
                  {
                    "$ref": "../properties/multiDimensional.json"
                  },
                  {
                    "$ref": "../properties/multiDimensionalKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "sk": {
                "title": "Skew",
                "description": "Text animator Skew",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "sa": {
                "title": "Skew Axis",
                "description": "Text animator Skew Axis",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "r": {
                "title": "Rotation",
                "description": "Text animator Rotation",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "o": {
                "title": "Opacity",
                "description": "Text animator Opacity",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "sw": {
                "title": "Stroke Width",
                "description": "Text animator Stroke Width",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "sc": {
                "title": "Stroke Color",
                "description": "Text animator Stroke Color",
                "oneOf": [
                  {
                    "$ref": "../properties/multiDimensional.json"
                  },
                  {
                    "$ref": "../properties/multiDimensionalKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "fc": {
                "title": "Fill Color",
                "description": "Text animator Fill Color",
                "oneOf": [
                  {
                    "$ref": "../properties/multiDimensional.json"
                  },
                  {
                    "$ref": "../properties/multiDimensionalKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "fh": {
                "title": "Fill Hue",
                "description": "Text animator Fill Hue",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "fs": {
                "title": "Fill Saturation",
                "description": "Text animator Fill Saturation",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "fb": {
                "title": "Fill Brightness",
                "description": "Text animator Fill Brightness",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              },
              "t": {
                "title": "Tracking",
                "description": "Text animator Tracking",
                "oneOf": [
                  {
                    "$ref": "../properties/value.json"
                  },
                  {
                    "$ref": "../properties/valueKeyframed.json"
                  }
                ],
                "type": "object"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "m": {
          "title": "More Options",
          "description": "Text More Options",
          "properties": {
            "g": {
              "title": "Anchor Point Grouping",
              "description": "Text Anchor Point Grouping",
              "oneOf": [
                {
                  "$ref": "../helpers/textGrouping.json"
                }
              ],
              "type": "number"
            },
            "a": {
              "title": "Grouping Alignment",
              "description": "Text Grouping Alignment",
              "oneOf": [
                {
                  "$ref": "../properties/multiDimensional.json"
                },
                {
                  "$ref": "../properties/multiDimensionalKeyframed.json"
                }
              ],
              "type": "object"
            }
          },
          "type": "object"
        },
        "p": {
          "title": "Text Path",
          "description": "Text Path",
          "type": "object"
        },
        "d": {
          "title": "Document",
          "description": "Text Document Data",
          "properties": {
            "k": {
              "title": "Keyframes",
              "description": "Text Document Data Keyframes",
              "items": {
                "oneOf": [
                  {
                    "properties": {
                      "t": {
                        "title": "Time",
                        "description": "Keyframe Time",
                        "type": "number"
                      },
                      "s": {
                        "title": "Text Properties",
                        "description": "Text Properties",
                        "type": "object",
                        "properties": {
                          "f": {
                            "title": "Font",
                            "description": "Text Font",
                            "type": "string"
                          },
                          "fc": {
                            "title": "Font Color",
                            "description": "Text Font Color",
                            "type": "array"
                          },
                          "j": {
                            "title": "Justificaiton",
                            "description": "Text Justification",
                            "type": "number"
                          },
                          "lh": {
                            "title": "Line Height",
                            "description": "Text Line Height",
                            "type": "number"
                          },
                          "s": {
                            "title": "Size",
                            "description": "Text Font Size",
                            "type": "number"
                          },
                          "t": {
                            "title": "Text",
                            "description": "Text String Value",
                            "type": "string"
                          },
                          "tr": {
                            "title": "Tracking",
                            "description": "Text Tracking",
                            "type": "number"
                          }
                        }
                      }
                    },
                    "type": "object"
                  }
                ],
                "type": "object"
              },
              "type": "array"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    }
  }
}