Currently, in many circumstances, specifying a key to a mapping in a circumstance where it's unexpectedly not a mapping will raise a ValidationError. Instead, we should use more appropriate logic, e.g. for setting values we should use exists_ok to determine whether to raise a more appropriate error or to overwrite with the mapping.