Some interesting ideas here, but urgh, the Rust examples... that is really not things should work...
It seems to work by registering callbacks into a context by name, eschewing any sensible typing relation with the schema. I assume the scaffolding code would lead to panics at startup, or worse, on invocation.
The way to do this would be generating traits and have the user implement the trait.