private static bool ShouldProcessTypeMember(ITypeMember typeMember)
        {
            // Note that UnityEditor has a lot of InternalsVisibleTo, including for Unity.Collections and Unity.Entities
            // so make sure these projects are not part of the solution used to run this action!
            if (!typeMember.CanBeVisibleToSolution() || typeMember is IConstructor || typeMember is IAccessor)
            {
                return(false);
            }

            // Ignore Unity.Mathematics swizzling operators (all combinations of x,y,z and w)
            if (IsSwizzlingProperty(typeMember))
            {
                return(false);
            }

            if (typeMember.GetContainingType() is IEnum enumTypeElement)
            {
                if (typeMember.ShortName == "iPhoneAndiPad" || typeMember.ShortName == "SetiPhoneLaunchScreenType")
                {
                    return(false); // "andi", "seti"
                }
                // Don't do anything with the AdvertisingNetwork enum. It's full of weird names that would be nice to
                // not show typos for in comments (e.g. AerServ), but we have to split that into words, so we get "aer"
                // and "serv" as words in the dictionary, which are not useful
                // Same goes for Stores
                if (enumTypeElement.GetClrName().FullName == "UnityEngine.Analytics.AdvertisingNetwork" ||
                    enumTypeElement.GetClrName().FullName == "UnityEngine.Monetization.Store")
                {
                    return(false);
                }
            }

            return(true);
        }