A directory of source files with a metadata file in the root is a module. A directory containing multiple modules is a module tree. The interpreter takes a path to a module tree as input, and looks for a "main" module in the tree, running it if it exists. There can only be one main module per module tree.
Module trees can be packaged into a "bundle" file, which the interpreter can also take a path to. These bundles can then be further packaged into an "application bundle", which is a native executable containing the bundle data. When run it extracts the bundle data, installs the required in…