I wonder if we can use the deferred loading feature in Dart (I'm not sure what the status is of that though) to keep the relationship more true to the javascript?  In other words, the `require` would load both the ace.js extension _and_ its associated Dart API library (`addCompleter` etc...).  That may not work or end up being too complex, but I am curious to explore it a bit.