validation may depend on default values in case of "if, ..." statements. Therefore, validation operates on a copy and adds default values. In alternative, it serves a validate_and_fill which avoids a copy.