public GameObject Convert(bool applyPatch = true, string tableName = null)
        {
            _applyPatch = applyPatch;

            CreateRootHierarchy(tableName);
            CreateFileHierarchy();

            _tableComponent.LegacyContainer = ScriptableObject.CreateInstance <LegacyContainer>();

            ExtractPhysicsMaterials();
            ExtractTextures();
            ExtractSounds();
            SaveData();
            SaveLegacyData();

            var prefabLookup    = InstantiateGameItems();
            var componentLookup = UpdateGameItems(prefabLookup);

            FinalizeGameItems(componentLookup);

            FreeTextures();

            ConfigurePlayer(componentLookup);

            // patch
            if (_applyPatch)
            {
                _patcher?.PostPatch(_tableGo);
            }

            return(_tableGo);
        }