I'm wondering why TNetstring types come after the data. This means you have to buffer the entire data before you can parse it. Is this intentional?
The other reason was so it was backward compatible with netstrings. The : was already used by netstrings, but the ',' wasn't so overloading that was easiest.