its mostly that we we want to do this correctly you liukely will want to "retry" in so many different ways. a different model, a differnt prompt, extra context, etc. (esp when it comes to parsing errors).
we figured the best way to express this was code, not something declarative. which is why we preferred this current route where its in the host lang.
we do have a solution to this in 1.0 that is elegant!