JavaScript module manager
- Can be used for assigning functions in "namespaces" (global window object) with dependecies
- Has built-in event emmiter
If for some reason you need your app API to be avaiable in the window object (maybe for like dynamically changing it after initial scripts are loaded) this can be really usefull. Otherwise, I'dont suggest you organize you app this way.