update (options) {
        if (!_.isObject(options)) {
            return;
        }
        // set type and value.
        // @note that we cannot update the key, once created during construction
        _.has(options, 'type') && this.valueType(options.type, _.has(options, 'value'));
        _.has(options, 'value') && this.set(options.value);
        _.has(options, 'system') && (this.system = options.system);
        _.has(options, 'disabled') && (this.disabled = options.disabled);
        _.has(options, 'description') && (this.describe(options.description));
    }
Updates the type and value of a variable from an object or JSON definition of the variable.

@param {Variable.definition} options -