internal void Write(EndiannessWriter writer, UInt32 serializationVersion)
    {
        writer.WriteAlignedString(Name);

        writer.WritePPtrArray(PreloadTable, serializationVersion);
        writer.WriteInt32(Container.Length);
        foreach (var container in Container)
        {
            writer.WriteAlignedString(container.Key);
            writer.WriteAssetInfo(container.Value, serializationVersion);
        }

        writer.WriteAssetInfo(MainAsset, serializationVersion);

        writer.WriteUInt32(RuntimeCompatibility);

        writer.WriteAlignedString(AssetBundleName);
        writer.WriteInt32(DependencyAssetBundleNames.Length);
        foreach (var dependencyAssetBundleName in DependencyAssetBundleNames)
        {
            writer.WriteAlignedString(dependencyAssetBundleName);
        }

        writer.WriteBoolean(IsStreamedSceneAssetBundle);
        writer.Align(4);
        writer.WriteInt32(ExplicitDataLayout);
        writer.WriteInt32(PathFlags);

        writer.WriteInt32(SceneHashes.Count);
        foreach (var sceneHash in SceneHashes)
        {
            writer.WriteString(sceneHash.Key);
            writer.WriteString(sceneHash.Value);
        }
    }