A script file is a unit for execution. Scripts are grouped in plugins. Scripts aren’t supposed to be standalone (to exist without a plugin). An asynchronous flow of work is preferable, so scripts shouldn’t wait. Scripts even within one plugin have no common state.
Each plugin has to declare functionality (modules) it’s going to use, an access to undeclared functionality will be denied.