Modules group 1 or more files together. They are also the smallest unit of code that can be sandboxed separately.

Modules have a namespace that is local to the world.

Users can request a namespace for all their code, which doesn't necessarily have to match their username, but must be globally unique, like a twitter address.

A module by 'nathanael' could have this namespace, for example.


Modules can contain subdirectories, which always mirror the namespace packages.
They can contain CSS files, javascript/coffeescript files, and weaver files.


Extensibility is important, especially in town centers.

Every code file could define a 'register' function that returns a dictionary of 'event'->'handlers'. (multiple handlers can be defined for one event, if needed).