private static void ApplyCEOLoyalty(GameEntity company, TeamInfo team, GameContext gameContext,
                                            ref Bonus <int> bonus, GameEntity worker, WorkerRole role)
        {
            bool hasCeo = HasMainManagerInTeam(company.team.Teams[0]);

            bonus.AppendAndHideIfZero("No CEO", hasCeo ? 0 : -4);

            var manager = GetMainManagerRole(team);
            var lead    = GetWorkerByRole(manager, team, gameContext);

            if (lead == null)
            {
                bonus.Append($"No {Humans.GetFormattedRole(manager)} in team", -4);
            }
            else
            {
                var CEORating    = Humans.GetRating(lead);
                var workerRating = Humans.GetRating(worker);

                if (CEORating < workerRating)
                {
                    bonus.Append($"Incompetent leader (leader rating less than {workerRating})", -1);
                }
            }
        }
        private static void ApplyDuplicateWorkersLoyalty(GameEntity company, TeamInfo team, GameContext gameContext,
                                                         ref Bonus <int> bonus, GameEntity worker, WorkerRole role)
        {
            var  roles = team.Managers.Select(h => h.WorkerComponent.WorkerRole);
            bool hasDuplicateWorkers = roles.Count(r => r == role) > 1;

            if (hasDuplicateWorkers)
            {
                bonus.AppendAndHideIfZero("Too many " + Humans.GetFormattedRole(role) + "'s", -10);
            }
        }