The change here is to make it easier for the consumer to debug the api.
Such that they can `match` on individual errors instead of having to
parse text.
eyre is convenient, but mostly from a consumers perspective
This extracts the client (strategy pattern), this is so that it is will be possible to test the actual querier, without hitting / requiring the dagger-engine running.