First is the number of blocktype entries. Then the entries themselves:

[color] [hp] [move xdir] [move ydir]

Colors
0 red
1 orange
2 yellow
3 green
4 blue
5 indigo
6 violet
7 dark grey
8 black
9 white

HP
0 to whatever (0 = indestructible)

Move dirs
number of pixels moved in one iteration, on the normal x-y plane


Next is the grid. Each blocktype defined in the first section is represented by the
integer value in the order in which it was entered. Numbering starts at 1; 0 means
there is no brick at the specified location.

Example:

1111111111
0220220220

would yield blocks at the locations:

..........
 .. .. ..


So a reference implementation of the level file would be:

4
0 1 0 0
1 2 0 0
2 3 0 0
3 4 0 0
4444444444
3333333333
2222222222
1111111111