While technically there's no reason to know this, it is a little helpful to see a bit of the implementation. So here is how the information about your playpen and project packages are stored. For a lot more information, see Chapter 6.
There are two lists of packages maintained in the Wigwam tree.
the packages (and their versions) that are installed in this Wigwam playpen.
the packages (and their versions) that are supposed to be installed to use this project.
For each package archive, there is a list of packages available from that archive and information about the layout of the archive. ARCHIVE-NAME is the url with / converted to the underscore (_) character.
A list of all packages and their version numbers from the package archive.
The arrangement of the files in the package archive. This is mostly for compatibility; usually it is just set to deep.
Packages and their associated configuration and build files will be downloaded to ext/packages. Therefore, you should use packages to contain local overrides for the configuration.
You can use the update-packages command to synchronize the playpen's packages with the project's package list. It will only recompile packages that have changed.