The fixed-size file header indicating the type and version of the file:

                             Format major version 1, minor version 0
          |- Zeniro identifier -|  |---------| |---------|
00000000  89 5a 4e 52 0d 0a 1a 0a  00 00 00 01 00 00 00 00  |.ZNR............|

The info section containing JSON-encoded information about the contents of
the file:

          |-Identifier ZNR_INFO-|  |-Section size (510) -|
00000010  5a 4e 52 5f 49 4e 46 4f  00 00 00 00 00 00 01 fe  |ZNR_INFO........|

       Text length (506)
          |---------|
00000020  00 00 01 fa 7b 22 24 53  63 68 65 6d 61 22 3a 22  |....{"$Schema":"|
00000030  75 72 6e 3a 63 6f 6d 2e  69 6f 37 6d 2e 7a 65 6e  |urn:com.io7m.zen|
00000040  69 72 6f 3a 69 6e 66 6f  3a 31 2e 30 22 2c 22 53  |iro:info:1.0","S|
00000050  68 61 70 65 22 3a 7b 22  40 53 68 61 70 65 22 3a  |hape":{"@Shape":|
00000060  22 4d 65 73 68 22 2c 22  4c 65 6e 67 74 68 22 3a  |"Mesh","Length":|
00000070  31 30 30 2c 22 49 6e 64  65 78 22 3a 7b 22 43 6f  |100,"Index":{"Co|
00000080  75 6e 74 22 3a 31 30 30  2c 22 54 79 70 65 22 3a  |unt":100,"Type":|
00000090  22 49 4e 44 45 58 5f 31  36 22 7d 2c 22 42 6f 75  |"INDEX_16"},"Bou|
000000a0  6e 64 73 22 3a 7b 22 58  4d 69 6e 69 6d 75 6d 22  |nds":{"XMinimum"|
000000b0  3a 30 2e 30 2c 22 58 4d  61 78 69 6d 75 6d 22 3a  |:0.0,"XMaximum":|
000000c0  31 30 30 30 30 2e 30 2c  22 59 4d 69 6e 69 6d 75  |10000.0,"YMinimu|
000000d0  6d 22 3a 30 2e 30 2c 22  59 4d 61 78 69 6d 75 6d  |m":0.0,"YMaximum|
000000e0  22 3a 31 30 30 30 30 2e  31 2c 22 5a 4d 69 6e 69  |":10000.1,"ZMini|
000000f0  6d 75 6d 22 3a 30 2e 30  2c 22 5a 4d 61 78 69 6d  |mum":0.0,"ZMaxim|
00000100  75 6d 22 3a 31 30 30 30  30 2e 32 7d 7d 2c 22 53  |um":10000.2}},"S|
00000110  74 72 75 63 74 75 72 65  22 3a 7b 22 43 6f 6d 70  |tructure":{"Comp|
00000120  6f 6e 65 6e 74 73 22 3a  5b 7b 22 4e 61 6d 65 22  |onents":[{"Name"|
00000130  3a 22 70 6f 73 69 74 69  6f 6e 22 2c 22 54 79 70  |:"position","Typ|
00000140  65 22 3a 22 46 4c 4f 41  54 5f 33 32 5f 56 45 43  |e":"FLOAT_32_VEC|
00000150  33 22 2c 22 53 65 6d 61  6e 74 69 63 22 3a 22 63  |3","Semantic":"c|
00000160  6f 6d 2e 69 6f 37 6d 2e  7a 65 6e 69 72 6f 2e 70  |om.io7m.zeniro.p|
00000170  6f 73 69 74 69 6f 6e 22  7d 2c 7b 22 4e 61 6d 65  |osition"},{"Name|
00000180  22 3a 22 6e 6f 72 6d 61  6c 22 2c 22 54 79 70 65  |":"normal","Type|
00000190  22 3a 22 46 4c 4f 41 54  5f 31 36 5f 56 45 43 33  |":"FLOAT_16_VEC3|
000001a0  22 2c 22 53 65 6d 61 6e  74 69 63 22 3a 22 63 6f  |","Semantic":"co|
000001b0  6d 2e 69 6f 37 6d 2e 7a  65 6e 69 72 6f 2e 6e 6f  |m.io7m.zeniro.no|
000001c0  72 6d 61 6c 22 7d 2c 7b  22 4e 61 6d 65 22 3a 22  |rmal"},{"Name":"|
000001d0  75 76 22 2c 22 54 79 70  65 22 3a 22 46 4c 4f 41  |uv","Type":"FLOA|
000001e0  54 5f 31 36 5f 56 45 43  32 22 2c 22 53 65 6d 61  |T_16_VEC2","Sema|
000001f0  6e 74 69 63 22 3a 22 63  6f 6d 2e 69 6f 37 6d 2e  |ntic":"com.io7m.|
00000200  7a 65 6e 69 72 6f 2e 74  65 78 74 75 72 65 5f 63  |zeniro.texture_c|
00000210  6f 6f 72 64 69 6e 61 74  65 22 7d 5d 7d 7d 00 00  |oordinate"}]}}..|
                                                     |---|
                                                    Padding
The component data:

          |-Identifier ZNR_DATA-|  |-Section size (2200)-|
00000220  5a 4e 52 5f 44 41 54 41  00 00 00 00 00 00 08 98  |ZNR_DATA........|
00000230  00 00 00 00 3f 80 00 00  40 00 00 00 00 00 2e 66  |....?...@......f|
00000240  32 66 00 00 21 1f 42 c8  00 00 42 ca 00 00 42 cc  |2f..!.B...B...B.|
00000250  00 00 21 1f 2f 0a 32 b8  21 1f 25 1f 43 48 00 00  |..!./.2.!.%.CH..|
00000260  43 49 00 00 43 4a 00 00  25 1f 2f ae 33 0a 25 1f  |CI..CJ..%./.3.%.|
..............................................................................
00000aa0  46 19 24 00 46 19 28 00  3b d7 3c 52 3c b8 3b d7  |F.$.F.(.;.<R<.;.|
00000ab0  3b ec 46 1a b0 00 46 1a  b4 00 46 1a b8 00 3b ec  |;.F...F...F...;.|
00000ac0  3c 5c 3c c3 3b ec 3c 00  00 00 00 00 00 00 00 00  |<\<.;.<.........|
                                   |-------Padding-------|

The (optional) index data:

          |-Identifier ZNR_INDX-|  |- Section size (200)-|
00000ad0  5a 4e 52 5f 49 4e 44 58  00 00 00 00 00 00 00 c8  |ZNR_INDX........|
00000ae0  00 00 00 01 00 02 00 03  00 04 00 05 00 06 00 07  |................|
00000af0  00 08 00 09 00 0a 00 0b  00 0c 00 0d 00 0e 00 0f  |................|
..............................................................................
00000b90  00 58 00 59 00 5a 00 5b  00 5c 00 5d 00 5e 00 5f  |.X.Y.Z.[.\.].^._|
00000ba0  00 60 00 61 00 62 00 63  00 00 00 00 00 00 00 00  |.`.a.b.c........|
                                   |-------Padding-------|

The metadata section containing arbitrary application-provided text:

          |-Identifier ZNR_META-|  |- Section size (92) -|
00000bb0  5a 4e 52 5f 4d 45 54 41  00 00 00 00 00 00 00 5c  |ZNR_META.......\|
00000bc0  00 00 00 58 7b 22 64 63  2e 69 64 65 6e 74 69 66  |...X{"dc.identif|
00000bd0  69 65 72 22 3a 5b 22 36  31 35 61 36 31 35 38 2d  |ier":["615a6158-|
00000be0  39 63 32 39 2d 34 35 61  61 2d 38 36 33 61 2d 31  |9c29-45aa-863a-1|
00000bf0  62 36 61 62 63 31 33 37  30 30 61 22 5d 2c 22 64  |b6abc13700a"],"d|
00000c00  63 2e 72 69 67 68 74 73  22 3a 5b 22 50 75 62 6c  |c.rights":["Publ|
00000c10  69 63 20 44 6f 6d 61 69  6e 22 5d 7d 00 00 00 00  |ic Domain"]}....|
00000c20  10 10 10 10 20 20 20 20  00 00 00 00 00 00 00 06  |....    ........|

An application-specific private section:

          |-Identifier HELLO!  -|  |- Section size (0)  -|
00000c30  48 45 4c 4c 4f 21 00 00  00 00 00 00 00 00 00 00  |HELLO!..........|

The end section:

          |-Identifier ZNR_END!-|  |- Section size (0)  -|
00000c40  5a 4e 52 5f 45 4e 44 21  00 00 00 00 00 00 00 00  |ZNR_END!........|
00000c50
