This document describes the file format for solution files. It is a Hamster archive, where the lump names are the level ID number followed by "<tt>.SOL</tt>". All numbers are small-endian (except lump sizes).

Each lump starts with a 16-bit number specifying the level version (see [Level file format] for details). It must match the level version number in the level file in order for the solution to be counted as valid.

After the level version number is the flag byte. Currently only the low 2-bits are defined (the rest must be clear and are reserved for future use):
  *  bit0 = Comment is present
  *  bit1 = Timestamp is present

If the comment is present, a null-terminated comment follows (it should not include any formatting codes).

If the timestamp is present, a 64-bit UNIX timestamp follows.

The rest of the lump data consists of a series of Hero Mesh key codes (see [Hero Mesh key name]).