I also notice that you have omitempty lines, but you don't test the serialized form to see whether they are present or not. I'm not sure if it matters, but it does seem like something that if we care that they are omitted, we should probably ensure that.