The too-many-parameters issue can be solved the same way it is solved in AMD:

```js
YUI.add('require', function (Y) {
  return function (mod) {
    return Y.Env._exported[mod];
  };
}, '', {es:true});

YUI().require('require', 'node', 'event', 'charts', 'datatable', 'my-foo', function (mod, Y) {
  var require = mod['default'];
  var myFoo = require('foo');
});
```