Each .HF file contains one or more scripts. For performance reasons, it is best if the scripts in each .HF file are inter-related and often call each other. The compression algorithm used has yet to be decided; for now, we simply store the scripts as raw Type-B format, with a header.
|BYTE||Number of scripts in this file|
|INT||Total number of bytes of compressed script data|
|For each script:
The id of this script
The length of this script (Type B) in bytes.
Following the header is the raw script data; the entire data section is compressed together. For this reason, the interpreter may choose to cache every script in the file when it has to decompress even one of them.