internal void Apply()
        {
            for (int i = 0; i < AddComponentToChunks.Length; i++)
            {
                var op = ((AddComponentChunkOp *)AddComponentToChunks.Ptr)[i];

#if ENABLE_UNITY_COLLECTIONS_CHECKS
                for (int j = 0; j < op.Count; j++)
                {
                    ((ArchetypeChunk *)op.Chunks)[j].Invalid();
                }
#endif

                _uem.AddComponentChunks((ArchetypeChunk *)op.Chunks, op.Count, op.TypeIndex);
            }

            for (int i = 0; i < RemoveComponentFromChunks.Length; i++)
            {
                var op = ((RemoveComponentChunkOp *)RemoveComponentFromChunks.Ptr)[i];

#if ENABLE_UNITY_COLLECTIONS_CHECKS
                for (int j = 0; j < op.Count; j++)
                {
                    ((ArchetypeChunk *)op.Chunks)[j].Invalid();
                }
#endif
                _uem.RemoveComponentChunks((ArchetypeChunk *)op.Chunks, op.Count, op.TypeIndex);
            }

            for (int i = 0; i < CreateChunks.Length; i++)
            {
                var op = ((CreateChunksOp *)CreateChunks.Ptr)[i];
                ChunkScratch.ResizeUninitialized(op.EntityCount * sizeof(Entity));
                _uem.CreateEntity(op.Archetype, ChunkScratch.Ptr, op.EntityCount);
            }

            for (int i = 0; i < RemoveComponentBatches.Length; i++)
            {
                var op = ((RemoveComponentBatchOp *)RemoveComponentBatches.Ptr)[i];
                _uem.RemoveComponentEntitiesBatch(op.EntityBatches, op.TypeIndex);
            }

            for (int i = 0; i < AddComponentBatches.Length; i++)
            {
                var op = ((AddComponentBatchOp *)AddComponentBatches.Ptr)[i];
                _uem.AddComponentEntitiesBatch(op.EntityBatches, op.TypeIndex);
            }
        }