Hi Eric,
I have been struggling with this in the past.
There are 2 things to solve :
Each block screen has his own $public.validation... context with access to execute the api only on its own fields, so you´ ll have to pass them into your generic solution.
You´ll have to find a way to trigger a rerender on each screen / block from within your generic solution .
I´ ll try to make a demo app tonight.
Dorine