i could see it making more sense in some use cases to use the default value for unset fields in the resulting hash, rather than omitting them. it could be controlled by an optional parameter here. but that's a possible future enhancement, not something you need to do in this commit.