{
  "void": "native",
  "container": "native",
  "i8": "native",
  "switch": "native",
  "compound": "native",
  "nbtTagName": "native",
  "i16": "native",
  "u16": "native",
  "i32": "native",
  "i64": "native",
  "f32": "native",
  "f64": "native",
  "pstring": "native",
  "shortString": [
    "pstring",
    {
      "countType": "u16"
    }
  ],
  "byteArray": [
    "array",
    {
      "countType": "i32",
      "type": "i8"
    }
  ],
  "list": [
    "container",
    [
      {
        "name": "type",
        "type": "nbtMapper"
      },
      {
        "name": "value",
        "type": [
          "array",
          {
            "countType": "i32",
            "type": [
              "nbtSwitch",
              {
                "type": "type"
              }
            ]
          }
        ]
      }
    ]
  ],
  "intArray": [
    "array",
    {
      "countType": "i32",
      "type": "i32"
    }
  ],
  "longArray": [
    "array",
    {
      "countType": "i32",
      "type": "i64"
    }
  ],
  "nbtMapper": [
    "mapper",
    {
      "type": "i8",
      "mappings": {
        "0": "end",
        "1": "byte",
        "2": "short",
        "3": "int",
        "4": "long",
        "5": "float",
        "6": "double",
        "7": "byteArray",
        "8": "string",
        "9": "list",
        "10": "compound",
        "11": "intArray",
        "12": "longArray"
      }
    }
  ],
  "nbtSwitch": [
    "switch",
    {
      "compareTo": "$type",
      "fields": {
        "end": "void",
        "byte": "i8",
        "short": "i16",
        "int": "i32",
        "long": "i64",
        "float": "f32",
        "double": "f64",
        "byteArray": "byteArray",
        "string": "shortString",
        "list": "list",
        "compound": "compound",
        "intArray": "intArray",
        "longArray": "longArray"
      }
    }
  ],
  "nbt": [
    "container",
    [
      {
        "name": "type",
        "type": "nbtMapper"
      },
      {
        "name": "name",
        "type": "nbtTagName"
      },
      {
        "name": "value",
        "type": [
          "nbtSwitch",
          {
            "type": "type"
          }
        ]
      }
    ]
  ],
  "anonymousNbt": [
    "container",
    [
      {
        "name": "type",
        "type": "nbtMapper"
      },
      {
        "name": "value",
        "type": [
          "nbtSwitch",
          {
            "type": "type"
          }
        ]
      }
    ]
  ],
  "anonOptionalNbt": [
    "optionalNbtType",
    {
      "tagType": "anonymousNbt"
    }
  ],
  "optionalNbt": [
    "optionalNbtType",
    {
      "tagType": "nbt"
    }
  ]
}