A snowball is simply a tarball containing a single directory, with any number of programs, libraries or data files therein. Links to these files come from the external repository meta data, but for simplicity when you create a snowball with snow-chibi it will create a file called "package.scm" in the tarball with much of the same information. The current supported structure of the meta data is as follows:

  ;; The name of a package uses the same namespace as the library names.
  ;; If the package name is not provided, then the package can only be
  ;; referred to by the individual library names in the package.
  (name (wonderland))
  ;; The URL points to a tarred, gzipped file containing a single
  ;; directory - any other format is invalid.  Only available from
  ;; repository info.
  ;; All path references below are relative to that directory.
  (url "http://www.wonderland.org/repo/cheshire-cat.tgz")
  ;; The size of the package tarball in bytes, for information prior
  ;; to downloading and as an additional checksum (since this is
  ;; a checksum this refers to the size of the unzipped tarball).
  (size 1234)
  ;; A package can contain zero or more signatures.  Each signature
  ;; contains the identity of a publisher as registered with reg-key,
  ;; and an RSA signature of one or more of the checksums as hex strings.
  ;; Due to speed concerns generating and verifying signatures is
  ;; disabled by default.
  (signature (email "hatter@wonderland.org")
             (digest sha-256)
             (sha-256 "0123...")
             (rsa "0123..."))

  ;; Packages may contain any number of libraries.
   ;; Every library _must_ have a name.
   (name (wonderland cheshire cat))
   ;; Each library must point to a single library description file
   ;; within the tarball.  It is an error if this path is absolute.
   ;; The extension has no specific meaning and can be chosen at will,
   ;; so it is up to install tools to convert as needed for
   ;; host Scheme implementations.
   (path "cheshire/cat.sch")
   ;; A list of libraries which are required to install the given
   ;; library - installation tools should determine and install the
   ;; transitive closure of dependencies when any library is
   ;; installed.
    (scheme base)
    (srfi 1)
    (rabbit holes))
   ;; List of phases this library is used for, where <phase> can be any
   ;; of final, build or test.  The default is just install.  If used by other
   ;; phases, this library will be installed in a temporary location for use
   ;; during the given phase.
   (use-for final)
   ;; Program containing tests to run before installing this library.
   ;; The program should exit with a success value (0 on POSIX systems)
   ;; if all tests pass.  On failure it should either exit otherwise,
   ;; or output either "ERROR" or "FAIL".  Tools should fail or warn
   ;; before installing libraries for which any tests fail.
   (test "path/to/test-program.scm")
   ;; A list of author names, optionally with email addresses.
   (authors "Charles Dodgson")
   ;; A list of maintainers if different from the authors.
   (maintainers "Alice Caroll <alice@wonderland.org>")
   ;; A URL pointing to the manual for the library.
   (manual "manual.html")
   ;; A short description of the library.
   (description "...")
   ;; A license as a symbol, e.g.
   ;;  * gpl2
   ;;  * gpl3
   ;;  * lgpl
   ;;  * mit
   ;;  * bsd
   ;;  * artistic
   ;;  * apache
   ;;  * public-domain
   (licenses 'bsd)
   ;; Current version string.
   (version "1.2.3"))

  ;; A program has all the same fields as a library, except the name
  ;; is optional, and the path indicates a file containing a single
  ;; top-level program to install in a binary directory.  A package
  ;; can contain a mix of programs and libraries.

  ;; A package can also contain data files, installed relative to
  ;; the library files.

The original Snow2 specification describes many features not yet implemented by clients.