    //@include lib_sol.common.Instance.js

    /**
     * @class sol.common.instance.required
     * @extends sol.common.instance.base
     * @eloall
     * @experimental
     * This is an experimental new functionality, which may be removed in future versions.
     *
     * Please be aware that this class does not use sol.define  but sol.common.instance.define
     * and may be working slightly different.
     *
     * This instanceDefinition provides basic functionality to check for required configurations
     *
     * @requires sol.common.instance
     */
    sol.common.instance.define("sol.common.instance.required", {
      initialize: function (config) {
        var me = this;

        (config.requiredConfig || me.$requiredConfig || [])
          .forEach(function (requiredProperty) {
            var property = me[requiredProperty] || (config || {})[requiredProperty];
            if (property == null) {
              throw "[" + me.$name + "] Could not create instance. Missing config property: " + requiredProperty + ". Please ensure all required properties are set: " + JSON.stringify(me.$requiredConfig);
            }
          });
      }
    });