Thanks for that suggested solution @solnic - it’s a bit neater than mine! - though the app I’m working within expects either nil or a hash matching the nested schema, so the translation of an empty string to an empty hash doesn’t quite work out in my particular case.
I can stick with the value coercer for the moment, but certainly if there are suggestions on something neater that returns nil rather than an empty hash, I’d love to hear about them