normalize will now raise a key error if there are missing required fields from the dict