Store optional fields as Map instead of squashing into String