private static XElement WriteTweens(Tweens tweens)
        {
            var tweensEl = new XElement("tweens");

            if (tweens.Move != default)
            {
                tweensEl.Add(new XAttribute("move", tweens.Move));
            }
            if (tweens.MoveShadow != default)
            {
                tweensEl.Add(new XAttribute("moveShadow", tweens.MoveShadow));
            }
            if (tweens.Hit != default)
            {
                tweensEl.Add(new XAttribute("hit", tweens.Hit));
            }
            if (tweens.HitShadow != default)
            {
                tweensEl.Add(new XAttribute("hitShadow", tweens.HitShadow));
            }

            return(tweensEl);
        }
        private Tweens ReadTweens(XElement tweensEl)
        {
            var tweens = new Tweens();

            foreach (var tweensAttr in tweensEl.Attributes())
            {
                var tweensAttrName = tweensAttr.Name.ToString();
                switch (tweensAttrName)
                {
                case "move": tweens.Move = tweensAttr.Value; break;

                case "moveShadow": tweens.MoveShadow = tweensAttr.Value; break;

                case "hit": tweens.Hit = tweensAttr.Value; break;

                case "hitShadow": tweens.HitShadow = tweensAttr.Value; break;

                default: log.Debug($"Unknown tweens attribute: '{tweensAttrName}'."); break;
                }
            }

            return(tweens);
        }