Draft: #3419493 change field type of `diff` and `form_data` to `map`
This MR also introduces field formatters because otherwise the view_pre_render
couldn't have set the field to an arbitrary new value.
This MR also introduces field formatters because otherwise the view_pre_render
couldn't have set the field to an arbitrary new value.