I fixed the bug only to realize we had code that depended on the functionality the bug enabled, so I've rethought how fields get set to make it possible to trigger checking of the value of a non-schema field (which get filtered out in modify) but even though get filtered out in modify() they still cause normalize_field to be called, so all logic can go in there