{
  "ABIRoot": {
    "kind": "Root",
    "name": "TopLevel",
    "printedName": "TopLevel",
    "children": [
      {
        "kind": "Import",
        "name": "Foundation",
        "printedName": "Foundation",
        "declKind": "Import",
        "moduleName": "Meerkat",
        "declAttributes": [
          "RawDocComment"
        ]
      },
      {
        "kind": "TypeDecl",
        "name": "CalSchema",
        "printedName": "CalSchema",
        "children": [
          {
            "kind": "Var",
            "name": "rawValue",
            "printedName": "rawValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "MRKCalSchema",
                "printedName": "Meerkat.MRKCalSchema",
                "usr": "c:MRKCalSchema.h@T@MRKCalSchemaRef"
              }
            ],
            "declKind": "Var",
            "usr": "s:7Meerkat9CalSchemaV8rawValueSo06MRKCalC3Refavp",
            "mangledName": "$s7Meerkat9CalSchemaV8rawValueSo06MRKCalC3Refavp",
            "moduleName": "Meerkat",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "MRKCalSchema",
                    "printedName": "Meerkat.MRKCalSchema",
                    "usr": "c:MRKCalSchema.h@T@MRKCalSchemaRef"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:7Meerkat9CalSchemaV8rawValueSo06MRKCalC3Refavg",
                "mangledName": "$s7Meerkat9CalSchemaV8rawValueSo06MRKCalC3Refavg",
                "moduleName": "Meerkat",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(rawValue:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "Meerkat.CalSchema?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "CalSchema",
                    "printedName": "Meerkat.CalSchema",
                    "usr": "s:7Meerkat9CalSchemaV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "MRKCalSchema",
                "printedName": "Meerkat.MRKCalSchema",
                "usr": "c:MRKCalSchema.h@T@MRKCalSchemaRef"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:7Meerkat9CalSchemaV8rawValueACSgSo06MRKCalC3Refa_tcfc",
            "mangledName": "$s7Meerkat9CalSchemaV8rawValueACSgSo06MRKCalC3Refa_tcfc",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(decoding:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "CalSchema",
                "printedName": "Meerkat.CalSchema",
                "usr": "s:7Meerkat9CalSchemaV"
              },
              {
                "kind": "TypeNominal",
                "name": "Data",
                "printedName": "Foundation.Data",
                "usr": "s:10Foundation4DataV"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:7Meerkat9CalSchemaV8decodingAC10Foundation4DataV_tKcfc",
            "mangledName": "$s7Meerkat9CalSchemaV8decodingAC10Foundation4DataV_tKcfc",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "throwing": true,
            "init_kind": "Designated"
          },
          {
            "kind": "Var",
            "name": "dataSchemas",
            "printedName": "dataSchemas",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Dictionary",
                "printedName": "[Swift.String : Meerkat.DataSchema]",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "DataSchema",
                    "printedName": "Meerkat.DataSchema",
                    "usr": "s:7Meerkat10DataSchemaV"
                  }
                ],
                "usr": "s:SD"
              }
            ],
            "declKind": "Var",
            "usr": "s:7Meerkat9CalSchemaV11dataSchemasSDySSAA04DataC0VGvp",
            "mangledName": "$s7Meerkat9CalSchemaV11dataSchemasSDySSAA04DataC0VGvp",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Dictionary",
                    "printedName": "[Swift.String : Meerkat.DataSchema]",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "String",
                        "printedName": "Swift.String",
                        "usr": "s:SS"
                      },
                      {
                        "kind": "TypeNominal",
                        "name": "DataSchema",
                        "printedName": "Meerkat.DataSchema",
                        "usr": "s:7Meerkat10DataSchemaV"
                      }
                    ],
                    "usr": "s:SD"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:7Meerkat9CalSchemaV11dataSchemasSDySSAA04DataC0VGvg",
                "mangledName": "$s7Meerkat9CalSchemaV11dataSchemasSDySSAA04DataC0VGvg",
                "moduleName": "Meerkat",
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Subscript",
            "name": "subscript",
            "printedName": "subscript(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "Meerkat.DataSchema?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "DataSchema",
                    "printedName": "Meerkat.DataSchema",
                    "usr": "s:7Meerkat10DataSchemaV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "String",
                "printedName": "Swift.String",
                "usr": "s:SS"
              }
            ],
            "declKind": "Subscript",
            "usr": "s:7Meerkat9CalSchemaVyAA04DataC0VSgSScip",
            "mangledName": "$s7Meerkat9CalSchemaVyAA04DataC0VSgSScip",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Optional",
                    "printedName": "Meerkat.DataSchema?",
                    "children": [
                      {
                        "kind": "TypeNominal",
                        "name": "DataSchema",
                        "printedName": "Meerkat.DataSchema",
                        "usr": "s:7Meerkat10DataSchemaV"
                      }
                    ],
                    "usr": "s:Sq"
                  },
                  {
                    "kind": "TypeNominal",
                    "name": "String",
                    "printedName": "Swift.String",
                    "usr": "s:SS"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:7Meerkat9CalSchemaVyAA04DataC0VSgSScig",
                "mangledName": "$s7Meerkat9CalSchemaVyAA04DataC0VSgSScig",
                "moduleName": "Meerkat",
                "accessorKind": "get"
              }
            ]
          }
        ],
        "declKind": "Struct",
        "usr": "s:7Meerkat9CalSchemaV",
        "mangledName": "$s7Meerkat9CalSchemaV",
        "moduleName": "Meerkat",
        "declAttributes": [
          "AccessControl",
          "RawDocComment"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "RawRepresentable",
            "printedName": "RawRepresentable",
            "children": [
              {
                "kind": "TypeWitness",
                "name": "RawValue",
                "printedName": "RawValue",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "MRKCalSchema",
                    "printedName": "Meerkat.MRKCalSchema",
                    "usr": "c:MRKCalSchema.h@T@MRKCalSchemaRef"
                  }
                ]
              }
            ],
            "usr": "s:SY",
            "mangledName": "$sSY"
          }
        ]
      },
      {
        "kind": "TypeDecl",
        "name": "DataSchema",
        "printedName": "DataSchema",
        "children": [
          {
            "kind": "Var",
            "name": "rawValue",
            "printedName": "rawValue",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "MRKDataSchema",
                "printedName": "Meerkat.MRKDataSchema",
                "usr": "c:MRKDataSchema.h@T@MRKDataSchemaRef"
              }
            ],
            "declKind": "Var",
            "usr": "s:7Meerkat10DataSchemaV8rawValueSo07MRKDataC3Refavp",
            "mangledName": "$s7Meerkat10DataSchemaV8rawValueSo07MRKDataC3Refavp",
            "moduleName": "Meerkat",
            "declAttributes": [
              "HasStorage",
              "AccessControl"
            ],
            "isLet": true,
            "hasStorage": true,
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "MRKDataSchema",
                    "printedName": "Meerkat.MRKDataSchema",
                    "usr": "c:MRKDataSchema.h@T@MRKDataSchemaRef"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:7Meerkat10DataSchemaV8rawValueSo07MRKDataC3Refavg",
                "mangledName": "$s7Meerkat10DataSchemaV8rawValueSo07MRKDataC3Refavg",
                "moduleName": "Meerkat",
                "implicit": true,
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Constructor",
            "name": "init",
            "printedName": "init(rawValue:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Optional",
                "printedName": "Meerkat.DataSchema?",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "DataSchema",
                    "printedName": "Meerkat.DataSchema",
                    "usr": "s:7Meerkat10DataSchemaV"
                  }
                ],
                "usr": "s:Sq"
              },
              {
                "kind": "TypeNominal",
                "name": "MRKDataSchema",
                "printedName": "Meerkat.MRKDataSchema",
                "usr": "c:MRKDataSchema.h@T@MRKDataSchemaRef"
              }
            ],
            "declKind": "Constructor",
            "usr": "s:7Meerkat10DataSchemaV8rawValueACSgSo07MRKDataC3Refa_tcfc",
            "mangledName": "$s7Meerkat10DataSchemaV8rawValueACSgSo07MRKDataC3Refa_tcfc",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl"
            ],
            "init_kind": "Designated"
          },
          {
            "kind": "Var",
            "name": "hasConstraints",
            "printedName": "hasConstraints",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Bool",
                "printedName": "Swift.Bool",
                "usr": "s:Sb"
              }
            ],
            "declKind": "Var",
            "usr": "s:7Meerkat10DataSchemaV14hasConstraintsSbvp",
            "mangledName": "$s7Meerkat10DataSchemaV14hasConstraintsSbvp",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "accessors": [
              {
                "kind": "Accessor",
                "name": "Get",
                "printedName": "Get()",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "Bool",
                    "printedName": "Swift.Bool",
                    "usr": "s:Sb"
                  }
                ],
                "declKind": "Accessor",
                "usr": "s:7Meerkat10DataSchemaV14hasConstraintsSbvg",
                "mangledName": "$s7Meerkat10DataSchemaV14hasConstraintsSbvg",
                "moduleName": "Meerkat",
                "accessorKind": "get"
              }
            ]
          },
          {
            "kind": "Function",
            "name": "encode",
            "printedName": "encode(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Data",
                "printedName": "Foundation.Data",
                "usr": "s:10Foundation4DataV"
              },
              {
                "kind": "TypeNominal",
                "name": "ProtocolComposition",
                "printedName": "Any"
              }
            ],
            "declKind": "Func",
            "usr": "s:7Meerkat10DataSchemaV6encodey10Foundation0B0VypKF",
            "mangledName": "$s7Meerkat10DataSchemaV6encodey10Foundation0B0VypKF",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "throwing": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "decode",
            "printedName": "decode(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "ProtocolComposition",
                "printedName": "Any"
              },
              {
                "kind": "TypeNominal",
                "name": "Data",
                "printedName": "Foundation.Data",
                "usr": "s:10Foundation4DataV"
              }
            ],
            "declKind": "Func",
            "usr": "s:7Meerkat10DataSchemaV6decodeyyp10Foundation0B0VKF",
            "mangledName": "$s7Meerkat10DataSchemaV6decodeyyp10Foundation0B0VKF",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "throwing": true,
            "funcSelfKind": "NonMutating"
          },
          {
            "kind": "Function",
            "name": "checkConstraints",
            "printedName": "checkConstraints(_:)",
            "children": [
              {
                "kind": "TypeNominal",
                "name": "Void",
                "printedName": "()"
              },
              {
                "kind": "TypeNominal",
                "name": "ProtocolComposition",
                "printedName": "Any"
              }
            ],
            "declKind": "Func",
            "usr": "s:7Meerkat10DataSchemaV16checkConstraintsyyypKF",
            "mangledName": "$s7Meerkat10DataSchemaV16checkConstraintsyyypKF",
            "moduleName": "Meerkat",
            "declAttributes": [
              "AccessControl",
              "RawDocComment"
            ],
            "throwing": true,
            "funcSelfKind": "NonMutating"
          }
        ],
        "declKind": "Struct",
        "usr": "s:7Meerkat10DataSchemaV",
        "mangledName": "$s7Meerkat10DataSchemaV",
        "moduleName": "Meerkat",
        "declAttributes": [
          "AccessControl",
          "RawDocComment"
        ],
        "conformances": [
          {
            "kind": "Conformance",
            "name": "RawRepresentable",
            "printedName": "RawRepresentable",
            "children": [
              {
                "kind": "TypeWitness",
                "name": "RawValue",
                "printedName": "RawValue",
                "children": [
                  {
                    "kind": "TypeNominal",
                    "name": "MRKDataSchema",
                    "printedName": "Meerkat.MRKDataSchema",
                    "usr": "c:MRKDataSchema.h@T@MRKDataSchemaRef"
                  }
                ]
              }
            ],
            "usr": "s:SY",
            "mangledName": "$sSY"
          }
        ]
      }
    ],
    "json_format_version": 8
  },
  "ConstValues": []
}