/// <summary>
        /// Updates a brain group.
        /// </summary>
        /// <param name="inst">The updater for asynchronous brains like Duplicants.</param>
        /// <param name="asyncProbe">Whether to run path probes asynchronously.</param>
        /// <param name="brainGroup">The brain group to update.</param>
        private static void UpdateBrainGroup(AsyncBrainGroupUpdater inst, bool asyncProbe,
                                             BrainScheduler.BrainGroup brainGroup)
        {
            var brains = brainGroup.brains;

            if (asyncProbe)
            {
                brainGroup.AsyncPathProbe();
            }
            int n = brains.Count;

            if (n > 0)
            {
                int index = brainGroup.nextUpdateBrain % n;
                for (int i = brainGroup.InitialProbeCount(); i > 0; i--)
                {
                    var brain = brains[index];
                    if (brain.IsRunning())
                    {
                        // Add minion and rover brains to the brain scheduler
                        if (brain is MinionBrain mb)
                        {
                            inst.AddBrain(mb);
                        }
                        else if (brain is CreatureBrain cb && cb.species == GameTags.Robots.
                                 Models.ScoutRover)
                        {
                            inst.AddBrain(cb);
                        }
                        else
                        {
                            brain.UpdateBrain();
                        }
                    }
                    index = (index + 1) % n;
                }
                brainGroup.nextUpdateBrain = index;
            }
 internal static void Postfix(float currentFrameTime, float frameTimeDelta,
                              BrainScheduler.BrainGroup __instance)
 {
     DebugMetrics.LogBrainBalance(__instance.GetType().Name, frameTimeDelta,
                                  currentFrameTime, __instance.probeCount, __instance.probeSize);
 }