KEKS can store various primitive scalar types (strings, integers, ...) and container types (lists, maps, ...). Serialisation process is just emitting the TLV-like encoding for each item recursively. Possible values for the tag (also see the [encoding/FullTable]): dec | hex | bin | vlen | 000 | 00 | 00000000 | 0 | [encoding/LIST]'s EOC 001 | 01 | 00000001 | 0 | [encoding/PRIM] NIL 002 | 02 | 00000010 | 0 | [encoding/PRIM] FALSE 003 | 03 | 00000011 | 0 | [encoding/PRIM] TRUE 004 | 04 | 00000100 | 16 | [encoding/HEXLET] ... | ... | ... | ... | ... 008 | 08 | 00001000 | 0 | [encoding/LIST] 009 | 09 | 00001001 | 0 | [encoding/MAP] 010 | 0A | 00001010 | 011 | 0B | 00001011 | 8+~ | [encoding/BLOB] 012 | 0C | 00001100 | 1+~ | + [encoding/INT] 013 | 0D | 00001101 | 1+~ | - [encoding/INT] ... | ... | ... | ... | ... 016 | 10 | 00010000 | 2 | [encoding/FLOAT] 16 017 | 11 | 00010001 | 4 | [encoding/FLOAT] 32 018 | 12 | 00010010 | 8 | [encoding/FLOAT] 64 019 | 13 | 00010011 | 16 | [encoding/FLOAT] 128 020 | 14 | 00010100 | 32 | [encoding/FLOAT] 256 ... | ... | ... | ... | ... 024 | 18 | 00011000 | 8 | [encoding/TAI64] 025 | 19 | 00011001 | 12 | [encoding/TAI64] N 026 | 1A | 00011010 | 16 | [encoding/TAI64] NA ... | ... | ... | ... | ... 075 | 4B | 01001011 | 15 | [encoding/MAGIC] ... | ... | ... | ... | ... 128 | 80 | 10LLLLLL | 0 | Binary [encoding/String] len=0 ... | ... | ... | ... | ... 188 | BC | 10111100 | 60 | Binary [encoding/String] len=60 189 | BD | 10111101 | 1+~ | Binary [encoding/String] len of 8b 190 | BE | 10111110 | 2+~ | Binary [encoding/String] len of 16b 191 | BF | 10111111 | 8+~ | Binary [encoding/String] len of 64b 192 | C0 | 11LLLLLL | 0 | UTF-8 [encoding/String] len=0 ... | ... | ... | ... | ... 252 | FC | 11111100 | 60 | UTF-8 [encoding/String] len=60 253 | FD | 11111101 | 1+~ | UTF-8 [encoding/String] len of 8b 254 | FE | 11111110 | 2+~ | UTF-8 [encoding/String] len of 16b 255 | FF | 11111111 | 8+~ | UTF-8 [encoding/String] len of 64b