options to allow raising error when user fields are invalid
check output info and raise error if the field is invalid type or unknown
invalid type info includes expected type
transformation functions to transform user values
optional transform object that specifies functions that should be applied to user values
cleanup/refactor
remove unused functions, extract setFields, setFromUserKey, checkUnknownFields