internal bool TryRemoveTrait(SynthesizedTrait trait)
        {
            if (!TryRemove(trait, m_Traits))
            {
                return(false);
            }

            if (HasValidDataId)
            {
                trait.RemoveTrait(m_DataID);
            }

            return(true);
        }
        internal bool TryAddTrait(SynthesizedTrait trait)
        {
            if (!TryAdd(trait, m_Traits))
            {
                return(false);
            }

            if (!trait.HasFunctionalityInjected)
            {
                this.InjectFunctionalitySingle(trait);
            }

            if (HasValidDataId)
            {
                trait.AddTrait(m_DataID);
            }

            return(true);
        }