The package command provides an alternate way to organize script libraries. It also supports extensions that are added with the load command. The package command supports a provide/require model where packages are provided by scripts in a library, and your application specifies what it needs with package require commands. The package facility supports multiple versions of a package, if necessary. Packages are described on page 163.