public ConfigurableComponent(IConfigurable cfg)
        {
            this.mass       = default;
            this.hasDefense = false;
            this.defense    = default;
            // this.hasOffense = false;
            // this.offense = default;
            this.hasPower      = false;
            this.power         = default;
            this.hasEnergy     = false;
            this.energy        = default;
            this.hasPropulsion = false;
            this.propulsion    = default;

            float v;
            Dictionary <string, float> dict = cfg.Aggregate();

            if (dict.TryGetValue("mass", out v))
            {
                this.mass = v;
            }

            this.hasPropulsion = this.ParseDefense(dict);
            this.hasPropulsion = this.ParsePower(dict);
            this.hasPropulsion = this.ParseEnergy(dict);
            this.hasPropulsion = this.ParsePropulsion(dict);
        }
        private bool ParsePower(IReadOnlyDictionary <string, float> dict)
        {
            float v;
            bool  has = false;

            if (dict.TryGetValue("power", out v))
            {
                this.power.power = v;
                has = true;
            }

            return(has);
        }