why not use the FieldByClassEnhancer, as your config uses class names. that way you would not need to store the class name in the defaults.

and your idea would be to instead of having a simple hashmap of source field value => target field value it would be a hashmap of source field value => array of target field name => target field value? i guess we could do that. its a BC break for the configuration and you repeat the target field name for every map entry, but sounds not that horrible to me. we might even support the old format as well, using the `target` field name if there is a scalar as target in the map.
you could already today add a second enhancer that just adds another field. but if you need to set 4 or 5 fields it gets heavy. then again, i wonder if you have that many fields you can set totally static. if it needs to be more calculated things, you would write your own enhancer.