public static PackageReferencesItemGroupXElement AddPackageReferencesItemGroupXElement(this ProjectXElement projectXElement)
        {
            var xItemGroupXElement = projectXElement.AddItemGroupXElement();

            var packageReferencesItemGroupXElement = PackageReferencesItemGroupXElement.New(xItemGroupXElement);

            return(packageReferencesItemGroupXElement);
        }
        // I don't want to create <ItemGroup> elements with no child elements.
        //  Maybe this is a final formatting thing before serialization? 1) Ensure XText nodes sandwich all <Project> element children, 2) Ensure that all empty <ItemGroup> elements are removed.
        //  YES! But, I will also do my best to prevent adding empty <ItemGroup> elements. Doing so at the ProjectXElement extensions level of abstraction might be the wrong level, but .

        // Is there an <ItemGroup> element with a <PackageReference> child?
        // Yes? Use return that <ItemGroup> as a PackageReferencesItemGroupXElement.
        // No? Create

        public static bool HasPackageReferencesItemGroupElement(this ProjectXElement projectXElement, out PackageReferencesItemGroupXElement packageReferencesItemGroupXElement)
        {
            var hasItemGroupElement = projectXElement.HasItemGroupElementWithChildSingleOrDefault(ProjectFileXmlElementName.PackageReference, out var itemGroupElement);

            packageReferencesItemGroupXElement = hasItemGroupElement ? PackageReferencesItemGroupXElement.New(itemGroupElement) : default;

            return(hasItemGroupElement);
        }