Preserve field ordering with an OrderedDict