docs: function RequirementsSandbox(gameName, requirementsObj) {
      var errBegin;
      errBegin = 'GameLoader.loadRequirementsDir: ' + gameName + ': ';
      this.add = function(cb, params) {
          if ('function' !== typeof cb) {
              throw new TypeError(errBegin + 'requirement must be function. ' +
                                 'Found: ' + cb);
          }
          if (!requirementsObj.requirements) requirementsObj.requirements = [];
          requirementsObj.requirements.push({ cb: cb, params: params });
      };
      this.onSuccess = function(cb) {
          if ('function' !== typeof cb) {
              throw new TypeError(errBegin + 'onSuccess callback must be ' +
                                  'function. Found: ' + cb);
          }
          requirementsObj.onSuccess = cb;
      };
      this.onFailure = function(cb) {
          if ('function' !== typeof cb) {
              throw new TypeError(errBegin + 'onFailure callback must be ' +
                                  'function. Found: ' + cb);
          }
          requirementsObj.onFailure = cb;
      };
      this.setMaxExecutionTime = function(maxTime) {
          if ('number' !== typeof maxTime) {
              throw new TypeError(errBegin + 'max execution time must be ' +
                                  'number. Found: ' + maxTime);
          }
          requirementsObj.maxExecTime = maxTime;
      };
      this.gameName = gameName;
  }