The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
{
   "count" : 1625,
   "tests" : {
      "all-2recs" : {
         "schema" : {
            "of" : [
               {
                  "required" : {
                     "key" : {
                        "type" : "//int"
                     }
                  },
                  "rest" : "//any",
                  "type" : "//rec"
               },
               {
                  "required" : {
                     "opt" : {
                        "type" : "//bool"
                     }
                  },
                  "rest" : "//any",
                  "type" : "//rec"
               }
            ],
            "type" : "//all"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        1
                     ],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        1
                     ],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        1
                     ],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0,
                        "required",
                        "key"
                     ],
                     "data" : [
                        "key"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "any" : {
         "schema" : {
            "type" : "//any"
         },
         "test" : {
            "arr/0" : {
               "errors" : [],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [],
               "input" : "\"x\""
            }
         }
      },
      "any-bool-nil" : {
         "schema" : {
            "of" : [
               "//bool",
               "//nil"
            ],
            "type" : "//any"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "none"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "array-3-int" : {
         "schema" : {
            "contents" : {
               "type" : "//int"
            },
            "length" : {
               "max" : 3
            },
            "type" : "//arr"
         },
         "test" : {
            "arr/0" : {
               "errors" : [],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [
                        "contents"
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [
                        "contents"
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [
                        "contents"
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/empty" : {
               "errors" : [],
               "input" : "[]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [
                        "contents"
                     ],
                     "data" : [
                        0
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "array-free" : {
         "schema" : {
            "contents" : {
               "type" : "//def"
            },
            "type" : "//arr"
         },
         "test" : {
            "arr/0" : {
               "errors" : [],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "bool" : {
         "schema" : {
            "type" : "//bool"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "composed-person" : {
         "composedtype" : {
            "schema" : {
               "optional" : {
                  "middlename" : "//str"
               },
               "required" : {
                  "firstname" : "//str",
                  "lastname" : "//str"
               },
               "type" : "//rec"
            },
            "uri" : "tag:www.example.com:types/rx/person"
         },
         "schema" : {
            "type" : "tag:www.example.com:types/rx/person"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "person/empty" : {
               "errors" : [
                  {
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "person/first" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"firstname\": \"John\"}"
            },
            "person/first-last" : {
               "errors" : [],
               "input" : "{\"firstname\": \"John\", \"lastname\": \"Smith\"}"
            },
            "person/first-last-null" : {
               "errors" : [
                  {
                     "check" : [
                        "required",
                        "lastname"
                     ],
                     "data" : [
                        "lastname"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"firstname\": \"John\", \"lastname\": null }"
            },
            "person/first-last-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"firstname\": \"John\", \"lastname\": \"Smith\", \"unknown\": \"x\"}"
            },
            "person/first-middle-last" : {
               "errors" : [],
               "input" : "{\"firstname\": \"John\", \"middlename\": \"Q\", \"lastname\": \"Smith\"}"
            },
            "person/unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"unknown\": \"x\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "composed-person-prefix" : {
         "composedtype" : {
            "prefix" : [
               "example",
               "tag:www.example.com:types/rx/"
            ],
            "schema" : {
               "optional" : {
                  "middlename" : "//str"
               },
               "required" : {
                  "firstname" : "//str",
                  "lastname" : "//str"
               },
               "type" : "//rec"
            },
            "uri" : "tag:www.example.com:types/rx/person"
         },
         "schema" : {
            "type" : "/example/person"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "person/empty" : {
               "errors" : [
                  {
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "person/first" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{\"firstname\": \"John\"}"
            },
            "person/first-last" : {
               "errors" : [],
               "input" : "{\"firstname\": \"John\", \"lastname\": \"Smith\"}"
            },
            "person/first-last-null" : {
               "errors" : [
                  {
                     "check" : [
                        "required",
                        "lastname"
                     ],
                     "data" : [
                        "lastname"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"firstname\": \"John\", \"lastname\": null }"
            },
            "person/first-last-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"firstname\": \"John\", \"lastname\": \"Smith\", \"unknown\": \"x\"}"
            },
            "person/first-middle-last" : {
               "errors" : [],
               "input" : "{\"firstname\": \"John\", \"middlename\": \"Q\", \"lastname\": \"Smith\"}"
            },
            "person/unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"unknown\": \"x\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "def" : {
         "schema" : {
            "type" : "//def"
         },
         "test" : {
            "arr/0" : {
               "errors" : [],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [],
               "input" : "\"x\""
            }
         }
      },
      "fail" : {
         "schema" : {
            "type" : "//fail"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "fail"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "int" : {
         "schema" : {
            "type" : "//int"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E10" : {
               "errors" : [],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "int-0" : {
         "schema" : {
            "type" : "//int",
            "value" : 0
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "int-range" : {
         "schema" : {
            "range" : {
               "max" : 51,
               "min-ex" : 5
            },
            "type" : "//int"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "int-range-empty" : {
         "schema" : {
            "range" : {},
            "type" : "//int"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "invalid/all-no-of" : {
         "invalid" : true,
         "schema" : {
            "type" : "//all"
         }
      },
      "invalid/all-of-0" : {
         "invalid" : true,
         "schema" : {
            "of" : [],
            "type" : "//all"
         }
      },
      "invalid/any-of-0" : {
         "invalid" : true,
         "schema" : {
            "of" : [],
            "type" : "//any"
         }
      },
      "invalid/arr-arr-cont" : {
         "invalid" : true,
         "schema" : {
            "contents" : [],
            "type" : "//arr"
         }
      },
      "invalid/arr-no-content" : {
         "invalid" : true,
         "schema" : {
            "type" : "//arr"
         }
      },
      "invalid/arr-unknown-arg" : {
         "invalid" : true,
         "schema" : {
            "contents" : {
               "type" : "//int"
            },
            "type" : "//arr",
            "unknown" : "this will cause an explosion"
         }
      },
      "invalid/arr-untyped-cont" : {
         "invalid" : true,
         "schema" : {
            "contents" : {},
            "type" : "//arr"
         }
      },
      "invalid/composed-cycle" : {
         "composedtype" : {
            "invalid" : true,
            "schema" : {
               "type" : "tag:www.example.com:rx/cycle"
            },
            "uri" : "tag:www.example.com:rx/cycle"
         },
         "schema" : "tag:www.example.com:rx/cycle"
      },
      "invalid/composed-invalid" : {
         "composedtype" : {
            "invalid" : true,
            "schema" : {
               "type" : "//rec",
               "unknown" : "this will cause an explosion"
            },
            "uri" : "tag:www.example.com:rx/person"
         },
         "schema" : {
            "type" : "tag:www.example.com:rx/person"
         }
      },
      "invalid/composed-unknown-arg" : {
         "invalid" : true,
         "schema" : {
            "type" : "tag:www.example.com:rx/person",
            "unknown" : "this will cause an explosion"
         }
      },
      "invalid/int-unknown-arg" : {
         "invalid" : true,
         "schema" : {
            "type" : "//int",
            "unknown" : "this will make things explode"
         }
      },
      "invalid/rec-both-req-opt" : {
         "invalid" : true,
         "schema" : {
            "optional" : {
               "key" : {
                  "type" : "//bool"
               }
            },
            "required" : {
               "key" : {
                  "type" : "//int"
               }
            },
            "type" : "//rec"
         }
      },
      "invalid/rec-unknown-arg" : {
         "invalid" : true,
         "schema" : {
            "type" : "//rec",
            "unknown" : "this will cause things to explode"
         }
      },
      "invalid/seq-no-cont" : {
         "invalid" : true,
         "schema" : {
            "type" : "//seq"
         }
      },
      "invalid/seq-obj-cont" : {
         "invalid" : true,
         "schema" : {
            "contents" : {},
            "type" : "//seq"
         }
      },
      "invalid/seq-unknown-arg" : {
         "invalid" : true,
         "schema" : {
            "contents" : [],
            "type" : "//seq",
            "unknown" : "this will cause things to explode"
         }
      },
      "map-int" : {
         "schema" : {
            "type" : "//map",
            "values" : {
               "type" : "//int"
            }
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [
                        "values"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [
                        "values"
                     ],
                     "data" : [
                        "key"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "multi/all-ii" : {
         "schema" : {
            "of" : [
               {
                  "type" : "//int",
                  "value" : 1
               },
               {
                  "range" : {
                     "max" : 2,
                     "min" : 0
                  },
                  "type" : "//int"
               }
            ],
            "type" : "//all"
         },
         "test" : {
            "num/5" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  },
                  {
                     "check" : [
                        "of",
                        1
                     ],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5"
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [
                        "of",
                        0
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  },
                  {
                     "check" : [
                        "of",
                        1
                     ],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "multi/array-3-int" : {
         "schema" : {
            "contents" : {
               "type" : "//int"
            },
            "length" : {
               "max" : 3,
               "min" : 3
            },
            "type" : "//arr"
         },
         "test" : {
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  },
                  {
                     "check" : [
                        "contents"
                     ],
                     "data" : [
                        0
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            }
         }
      },
      "multi/map-int" : {
         "schema" : {
            "type" : "//map",
            "values" : {
               "type" : "//int"
            }
         },
         "test" : {
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [
                        "values"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  },
                  {
                     "check" : [
                        "values"
                     ],
                     "data" : [
                        "rest"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            }
         }
      },
      "multi/rec-key-opt" : {
         "schema" : {
            "optional" : {
               "opt" : {
                  "type" : "//bool"
               }
            },
            "required" : {
               "key" : {
                  "type" : "//int"
               }
            },
            "type" : "//rec"
         },
         "test" : {
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  },
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  },
                  {
                     "check" : [
                        "optional",
                        "opt"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            }
         }
      },
      "multi/rec-key-opt-rest" : {
         "schema" : {
            "optional" : {
               "opt" : {
                  "type" : "//bool"
               }
            },
            "required" : {
               "key" : {
                  "type" : "//int"
               }
            },
            "rest" : {
               "type" : "//map",
               "values" : "//bool"
            },
            "type" : "//rec"
         },
         "test" : {
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  },
                  {
                     "check" : [
                        "optional",
                        "opt"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  },
                  {
                     "check" : [
                        "rest",
                        "values"
                     ],
                     "data" : [
                        "rest"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            }
         }
      },
      "multi/seq-ii" : {
         "schema" : {
            "contents" : [
               {
                  "type" : "//int"
               },
               {
                  "type" : "//int"
               }
            ],
            "type" : "//seq"
         },
         "test" : {
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  },
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            }
         }
      },
      "multi/seq-ii-2bools" : {
         "schema" : {
            "contents" : [
               {
                  "type" : "//int"
               },
               {
                  "type" : "//int"
               }
            ],
            "tail" : {
               "contents" : {
                  "type" : "//bool"
               },
               "length" : {
                  "max" : 2
               },
               "type" : "//arr"
            },
            "type" : "//seq"
         },
         "test" : {
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  },
                  {
                     "check" : [
                        "tail"
                     ],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  },
                  {
                     "check" : [
                        "tail",
                        "contents"
                     ],
                     "data" : [
                        2
                     ],
                     "error" : [
                        "type"
                     ]
                  },
                  {
                     "check" : [
                        "tail",
                        "contents"
                     ],
                     "data" : [
                        4
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  },
                  {
                     "check" : [
                        "contents",
                        0
                     ],
                     "data" : [
                        0
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            }
         }
      },
      "nil" : {
         "schema" : {
            "type" : "//nil"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "num" : {
         "schema" : {
            "type" : "//num"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "num-0" : {
         "schema" : {
            "type" : "//num",
            "value" : 0
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "num-range" : {
         "schema" : {
            "range" : {
               "max" : 51,
               "min-ex" : 5
            },
            "type" : "//num"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "range"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "one" : {
         "schema" : {
            "type" : "//one"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [],
               "input" : "\"x\""
            }
         }
      },
      "rec-key" : {
         "schema" : {
            "required" : {
               "key" : {
                  "type" : "//int"
               }
            },
            "type" : "//rec"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [
                        "required",
                        "key"
                     ],
                     "data" : [
                        "key"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "rec-key-opt" : {
         "schema" : {
            "optional" : {
               "opt" : {
                  "type" : "//bool"
               }
            },
            "required" : {
               "key" : {
                  "type" : "//int"
               }
            },
            "type" : "//rec"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [
                        "optional",
                        "opt"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "unexpected"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [
                        "required",
                        "key"
                     ],
                     "data" : [
                        "key"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "rec-key-rest" : {
         "schema" : {
            "required" : {
               "key" : {
                  "type" : "//int"
               }
            },
            "rest" : {
               "type" : "//map",
               "values" : "//bool"
            },
            "type" : "//rec"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [
                        "rest",
                        "values"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [
                        "rest",
                        "values"
                     ],
                     "data" : [
                        "unknown"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [
                        "required",
                        "key"
                     ],
                     "data" : [
                        "key"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "rec-key-rest-longuri" : {
         "schema" : {
            "required" : {
               "key" : {
                  "type" : "tag:codesimply.com,2008:rx/core/int"
               }
            },
            "rest" : {
               "type" : "tag:codesimply.com,2008:rx/core/map",
               "values" : "tag:codesimply.com,2008:rx/core/bool"
            },
            "type" : "tag:codesimply.com,2008:rx/core/rec"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "missing"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [
                        "rest",
                        "values"
                     ],
                     "data" : [
                        "opt"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [
                        "rest",
                        "values"
                     ],
                     "data" : [
                        "unknown"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [
                        "required",
                        "key"
                     ],
                     "data" : [
                        "key"
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "seq-ii" : {
         "schema" : {
            "contents" : [
               {
                  "type" : "//int"
               },
               {
                  "type" : "//int"
               }
            ],
            "type" : "//seq"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [
                        "contents",
                        1
                     ],
                     "data" : [
                        1
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "seq-isi-2bools" : {
         "schema" : {
            "contents" : [
               {
                  "type" : "//int"
               },
               {
                  "type" : "//str"
               },
               {
                  "type" : "//int"
               }
            ],
            "tail" : {
               "contents" : {
                  "type" : "//bool"
               },
               "length" : {
                  "max" : 2
               },
               "type" : "//arr"
            },
            "type" : "//seq"
         },
         "test" : {
            "arr/0-str-3" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [
                        "tail",
                        "contents"
                     ],
                     "data" : [
                        3
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [
                        "tail"
                     ],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [
                        "tail",
                        "contents"
                     ],
                     "data" : [
                        4
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "seq-isi-2bools-short" : {
         "schema" : {
            "contents" : [
               "//int",
               "//str",
               "//int"
            ],
            "tail" : {
               "contents" : "//bool",
               "length" : {
                  "max" : 2
               },
               "type" : "//arr"
            },
            "type" : "//seq"
         },
         "test" : {
            "arr/0-str-3" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [
                        "tail",
                        "contents"
                     ],
                     "data" : [
                        3
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [
                        "tail"
                     ],
                     "data" : [],
                     "error" : [
                        "size"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [
                        "tail",
                        "contents"
                     ],
                     "data" : [
                        4
                     ],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "str" : {
         "schema" : {
            "type" : "//str"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [],
               "input" : "\"false\""
            },
            "str/len-6" : {
               "errors" : [],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [],
               "input" : "\"abcdefghi\""
            },
            "str/null" : {
               "errors" : [],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [],
               "input" : "\"x\""
            }
         }
      },
      "str-empty" : {
         "schema" : {
            "type" : "//str",
            "value" : ""
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "str-length" : {
         "schema" : {
            "length" : {
               "max" : 8,
               "min" : 6
            },
            "type" : "//str"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "length"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/len-6" : {
               "errors" : [],
               "input" : "\"abcdef\""
            },
            "str/len-9" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "length"
                     ]
                  }
               ],
               "input" : "\"abcdefghi\""
            },
            "str/x" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "length"
                     ]
                  }
               ],
               "input" : "\"x\""
            }
         }
      },
      "str-x" : {
         "schema" : {
            "type" : "//str",
            "value" : "x"
         },
         "test" : {
            "arr/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0 ]"
            },
            "arr/0-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1 ]"
            },
            "arr/0-1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1 ]"
            },
            "arr/0-1-1-2" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, 1, 1, 2 ]"
            },
            "arr/0-s1-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"1\", 1 ]"
            },
            "arr/0-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\" ]"
            },
            "arr/0-str-3" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3 ]"
            },
            "arr/0-str-3-18" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, 18 ]"
            },
            "arr/0-str-3-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true ]"
            },
            "arr/0-str-3-T-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false ]"
            },
            "arr/0-str-3-T-F-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, false, true ]"
            },
            "arr/0-str-3-T-str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[ 0, \"string\", 3, true, \"false\" ]"
            },
            "arr/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[]"
            },
            "arr/str" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\" ]"
            },
            "arr/str-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "[\"string\", 1 ]"
            },
            "bool/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "false"
            },
            "bool/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "true"
            },
            "null/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "null"
            },
            "num/-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-0"
            },
            "num/-5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5"
            },
            "num/-5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.0"
            },
            "num/-5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "-5.1"
            },
            "num/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0"
            },
            "num/0e0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "0e0"
            },
            "num/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5"
            },
            "num/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.0"
            },
            "num/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1"
            },
            "num/5.1e1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5.1e1"
            },
            "num/5E1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E1"
            },
            "num/5E10" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "5E10"
            },
            "obj/alpha-num" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5, \"f\": 6, \"g\": 7, \"h\": 8}"
            },
            "obj/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{}"
            },
            "obj/key-0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0 }"
            },
            "obj/key-0-opt-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": 1 }"
            },
            "obj/key-0-opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true }"
            },
            "obj/key-0-opt-T-rest-F" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 0, \"opt\": true, \"rest\": false}"
            },
            "obj/key-1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1 }"
            },
            "obj/key-1-unknown" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": 1, \"unknown\": 2 }"
            },
            "obj/key-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"key\": \"pants\" }"
            },
            "obj/opt-T" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": true }"
            },
            "obj/opt-pants-rest-pants" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "type"
                     ]
                  }
               ],
               "input" : "{\"opt\": \"pants\", \"rest\": \"pants\"}"
            },
            "str/0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"0\""
            },
            "str/05" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"05\""
            },
            "str/5" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5\""
            },
            "str/5." : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5.\""
            },
            "str/5.0" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5.0\""
            },
            "str/5.1" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"5.1\""
            },
            "str/empty" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"\""
            },
            "str/false" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"false\""
            },
            "str/null" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"null\""
            },
            "str/true" : {
               "errors" : [
                  {
                     "check" : [],
                     "data" : [],
                     "error" : [
                        "value"
                     ]
                  }
               ],
               "input" : "\"true\""
            },
            "str/x" : {
               "errors" : [],
               "input" : "\"x\""
            }
         }
      }
   }
}