text schema updates
diff --git a/docs/json/helpers/textCaps.json b/docs/json/helpers/textCaps.json
new file mode 100644
index 0000000..f8d9620
--- /dev/null
+++ b/docs/json/helpers/textCaps.json
@@ -0,0 +1,19 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "type": "number",
+  "oneOf": [
+    {
+      "standsFor": "Regular",
+      "const": 0
+    },
+    {
+      "standsFor": "All Caps",
+      "const": 1
+    },
+    {
+      "standsFor": "Small Caps",
+      "const": 2
+    }
+  ],
+  "default": 0
+}
diff --git a/docs/json/helpers/textJustification.json b/docs/json/helpers/textJustification.json
new file mode 100644
index 0000000..5abf285
--- /dev/null
+++ b/docs/json/helpers/textJustification.json
@@ -0,0 +1,35 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "type": "number",
+  "oneOf": [
+    {
+      "standsFor": "Left Justify",
+      "const": 0
+    },
+    {
+      "standsFor": "Right Justify",
+      "const": 1
+    },
+    {
+      "standsFor": "Center Justify",
+      "const": 2
+    },
+    {
+      "standsFor": "Full Justify Last Line Left",
+      "const": 3
+    },
+    {
+      "standsFor": "Full Justify Last Line Right",
+      "const": 4
+    },
+    {
+      "standsFor": "Full Justify Last Line Center",
+      "const": 5
+    },
+    {
+      "standsFor": "Full Justify Last Line Full",
+      "const": 6
+    }
+  ],
+  "default": 0
+}
diff --git a/docs/json/layers/image.json b/docs/json/layers/image.json
index 247c863..7d11d9a 100644
--- a/docs/json/layers/image.json
+++ b/docs/json/layers/image.json
@@ -109,5 +109,6 @@
       "description": "id pointing to the source image defined on 'assets' object",
       "type": "string"
     }
-  }
+  },
+  "required": ["ty", "ks", "ip", "op", "refId"]
 }
diff --git a/docs/json/layers/null.json b/docs/json/layers/null.json
index f71b4ca..83e6677 100644
--- a/docs/json/layers/null.json
+++ b/docs/json/layers/null.json
@@ -83,5 +83,6 @@
       "description": "Layer Parent. Uses ind of parent.",
       "type": "number"
     }
-  }
+  },
+  "required": ["ty", "ks", "ip", "op"]
 }
diff --git a/docs/json/layers/preComp.json b/docs/json/layers/preComp.json
index 9fbee13..4350911 100644
--- a/docs/json/layers/preComp.json
+++ b/docs/json/layers/preComp.json
@@ -112,7 +112,8 @@
       "title": "Time Remapping",
       "description": "Comp's Time remapping",
       "type": "number",
-      "$ref": "#/properties/valueKeyframed"
+      "$ref": "#/properties/multiDimensionalKeyframed"
     }
-  }
+  },
+  "required": ["ty", "ks", "ip", "op", "refId"]
 }
diff --git a/docs/json/layers/solid.json b/docs/json/layers/solid.json
index 1b151d2..871c99c 100644
--- a/docs/json/layers/solid.json
+++ b/docs/json/layers/solid.json
@@ -116,5 +116,6 @@
       "description": "Width of the solid.",
       "type": "number"
     }
-  }
+  },
+  "required": ["ty", "ks", "ip", "op", "sc", "sh", "sw"]
 }
diff --git a/docs/json/layers/text.json b/docs/json/layers/text.json
index b5c9d05..26149ff 100644
--- a/docs/json/layers/text.json
+++ b/docs/json/layers/text.json
@@ -104,7 +104,82 @@
     "t": {
       "title": "Text Data",
       "description": "Text Data",
-      "properties": [
+      "properties": {
+        "d": {
+          "title": "Text Document",
+          "description": "Text Document",
+          "properties": {
+            "k": {
+              "title": "Text Document Keyframes",
+              "description": "Text Document Keyframes",
+              "type": "array",
+              "items": {
+                "title": "Text Document Keyframe",
+                "description": "Text Document Keyframe",
+                "properties": {
+                  "t": {
+                    "title": "Time",
+                    "description": "Keyframe Time",
+                    "type": "number"
+                  },
+                  "s": {
+                    "title": "Text Properties",
+                    "description": "Text Properties",
+                    "type": "object",
+                    "properties": {
+                      "s": {
+                        "title": "Size",
+                        "description": "Text Font Size",
+                        "type": "number"
+                      },
+                      "f": {
+                        "title": "Font",
+                        "description": "Text Font",
+                        "type": "string"
+                      },
+                      "t": {
+                        "title": "Text",
+                        "description": "Text String Value",
+                        "type": "string"
+                      },
+                      "j": {
+                        "title": "Justification",
+                        "description": "Text Justification",
+                        "$ref": "#/helpers/textJustification"
+                      },
+                      "lh": {
+                        "title": "Line Height",
+                        "description": "Text Line Height",
+                        "type": "number"
+                      },
+                      "tr": {
+                        "title": "Tracking",
+                        "description": "Text Tracking",
+                        "type": "number"
+                      },
+                      "fc": {
+                        "title": "Font Color",
+                        "description": "Text Font Color",
+                        "type": "array"
+                      },
+                      "ca": {
+                        "title": "Text Caps",
+                        "description": "Text Caps",
+                        "$ref": "#/helpers/textCaps"
+                      }
+                    },
+                    "required": ["s", "f", "t", "j", "lh", "tr", "fc"]
+                  }
+                },
+                "type": "object",
+                "required": ["t"]
+              }
+            }
+          },
+          "type": "object"
+        }
+      },
+      "properties2": [
         {
           "title": "Animators",
           "description": "Text animators",
@@ -447,77 +522,10 @@
           "title": "Text Path",
           "description": "Text Path",
           "type": "number"
-        },
-        {
-          "title": "Document",
-          "description": "Text Document Data",
-          "properties": [
-            {
-              "title": "Keyframes",
-              "description": "Text Document Data Keyframes",
-              "items": {
-                "oneOf": [
-                  {
-                    "properties": [
-                      {
-                        "title": "Time",
-                        "description": "Keyframe Time",
-                        "type": "number"
-                      },
-                      {
-                        "title": "Text Properties",
-                        "description": "Text Properties",
-                        "type": "object",
-                        "properties": [
-                          {
-                            "title": "Font",
-                            "description": "Text Font",
-                            "type": "string"
-                          },
-                          {
-                            "title": "Font Color",
-                            "description": "Text Font Color",
-                            "type": "array"
-                          },
-                          {
-                            "title": "Justificaiton",
-                            "description": "Text Justification",
-                            "type": "string"
-                          },
-                          {
-                            "title": "Line Height",
-                            "description": "Text Line Height",
-                            "type": "number"
-                          },
-                          {
-                            "title": "Size",
-                            "description": "Text Font Size",
-                            "type": "number"
-                          },
-                          {
-                            "title": "Text",
-                            "description": "Text String Value",
-                            "type": "string"
-                          },
-                          {
-                            "title": "Tracking",
-                            "description": "Text Tracking",
-                            "type": "number"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "type": "object"
-              },
-              "type": "array"
-            }
-          ],
-          "type": "object"
         }
       ],
       "type": "object"
     }
-  }
+  },
+  "required": ["ty", "ks", "ip", "op", "t"]
 }
diff --git a/docs/json/sources/chars.json b/docs/json/sources/chars.json
index f669495..575620a 100644
--- a/docs/json/sources/chars.json
+++ b/docs/json/sources/chars.json
@@ -15,7 +15,7 @@
     "size": {
       "title": "Font Size",
       "description": "Character Font Size",
-      "type": "string"
+      "type": "number"
     },
     "style": {
       "title": "Font Style",
@@ -30,32 +30,18 @@
     "data": {
       "title": "Character Data",
       "description": "Character Data",
-      "properties": [
-        {
-          "title": "Character Shapes",
-          "description": "Character Composing Shapes",
+      "properties": {
+        "shapes": {
+          "title": "Shapes",
+          "description": "List of Shapes",
           "items": {
-            "properties": [
-              {
-                "title": "Items",
-                "description": "Character Items",
-                "properties": [
-                  {
-                    "title": "keys",
-                    "description": "Character Items Keys",
-                    "$ref": "#/properties/shape",
-                    "type": "object"
-                  }
-                ],
-                "type": "object"
-              }
-            ],
-            "type": "object"
+            "$ref": "#/shapes/group"
           },
           "type": "array"
         }
-      ],
+      },
       "type": "object"
     }
-  }
+  },
+  "required": ["ch", "fFamily", "size", "style", "w", "data"]
 }
diff --git a/docs/json/sources/image.json b/docs/json/sources/image.json
index 6f08ed0..f0e2b02 100644
--- a/docs/json/sources/image.json
+++ b/docs/json/sources/image.json
@@ -27,5 +27,6 @@
       "description": "Image path",
       "type": "string"
     }
-  }
+  },
+  "required": ["p"]
 }
diff --git a/docs/json/sources/precomp.json b/docs/json/sources/precomp.json
index c1a3651..44b838d 100644
--- a/docs/json/sources/precomp.json
+++ b/docs/json/sources/precomp.json
@@ -35,5 +35,6 @@
       },
       "type": "array"
     }
-  }
+  },
+  "required": ["layers"]
 }