removed empty fields from text serialization

these provide no value and only lead to confusion (cf. #58)

I'm not confident that this all Right - for example, perhaps there's potential for simplification on the corresponding deserialization side, or perhaps even confusion WRT default values or backwards compatiblity. So please review carefully.

Also, feel free to reject this if deemed undesirable.