|  |  | 
The table below shows which words are reserved and must not be used.
| ARRAY | DWORD | UCHAR | 
| BINARY | FLOAT | ULONGLONG | 
| BINARY_RESOURCE | SDWORD | UNICODE | 
| CHAR | STRING | WORD | 
| CSTRING | SWORD | |
| DOUBLE | TEMPLATE | 
The variable-length header is compulsory and must be at the beginning of the data stream. The header contains the following data.
| Type | Required | Size (in bytes) | Value | Description | 
|---|---|---|---|---|
| Magic Number | x | 4 | xof | |
| Version Number | x | 2 | 03 | Major version 3 | 
| 03 | Minor version 3 | |||
| Format Type | x | 4 | txt | Text File | 
| bin | Binary file | |||
| tzip | MSZip compressed text file | |||
| bzip | MSZip compressed binary file | |||
| Float Size | x | 0064 | 64-bit floats | |
| x | "0032" | 32-bit floats | 
The values in the table are delimited by quotes to call attention to the number of characters in each value. Those with 4 bytes contain four characters, those with 2 bytes contain two characters.
Comments are applicable only in text files. Comments can occur anywhere in the data stream. A comment begins with either C++ style double-slashes (//), or a pound sign (#). The comment runs to the next new line. The following example shows valid comments.
# This is a comment. // This is another comment.