@Override
    public void read(DataReader in) throws IOException {
        revision = new UnityVersion(in.readStringNull(255));
        attributes = in.readInt();
        embedded = in.readBoolean();
        int numBaseClasses = in.readInt();

        for (int i = 0; i < numBaseClasses; i++) {
            int classID = in.readInt();

            TypeRoot typeRoot = new TypeRoot();
            typeRoot.classID(classID);

            if (classID < 0) {
                UnityHash128 scriptID = new UnityHash128();
                in.readStruct(scriptID);
                typeRoot.scriptID(scriptID);
            }

            UnityHash128 oldTypeHash = new UnityHash128();
            in.readStruct(oldTypeHash);
            typeRoot.oldTypeHash(oldTypeHash);

            if (embedded) {
                Node<T> node = new Node<>();
                readNode(in, node);
                typeRoot.nodes(node);
            }

            typeMap.put(classID, typeRoot);
        }
    }
@author Nico Bergemann <barracuda415 at yahoo.de>
disunity-core/src/main/java/info/ata4/junity/serialize/typetree/TypeTreeV3.java