public static LeveledSpell DeepCopy(
     this ILeveledSpellGetter item,
     out LeveledSpell.ErrorMask errorMask,
     LeveledSpell.TranslationMask?copyMask = null)
 {
     return(((LeveledSpellSetterTranslationCommon)((ILeveledSpellGetter)item).CommonSetterTranslationInstance() !).DeepCopy(
                item: item,
                copyMask: copyMask,
                errorMask: out errorMask));
 }
        public static void DeepCopyIn(
            this ILeveledSpellInternal lhs,
            ILeveledSpellGetter rhs,
            out LeveledSpell.ErrorMask errorMask,
            LeveledSpell.TranslationMask?copyMask = null)
        {
            var errorMaskBuilder = new ErrorMaskBuilder();

            ((LeveledSpellSetterTranslationCommon)((ILeveledSpellGetter)lhs).CommonSetterTranslationInstance() !).DeepCopyIn(
                item: lhs,
                rhs: rhs,
                errorMask: errorMaskBuilder,
                copyMask: copyMask?.GetCrystal(),
                deepCopy: false);
            errorMask = LeveledSpell.ErrorMask.Factory(errorMaskBuilder);
        }