Every field is required: the flow runs the same five checks every time. They run at the same time,
so the call takes about as long as the slowest source rather than the sum of all five.
What comes back
reasons on each box rather than the status code: a call the sources answered returns 200
whatever they concluded. An empty reasons means that check passed. A check that answered nothing
says what stood in the way: source-unavailable for a source that could not be reached, or
details-refused for one that would not accept the details it was sent.
One check answering nothing never fails the others.
When a request is refused
A request missing an identifier, or carrying one of the wrong shape, is refused whole with a422
naming the field. No source is called. The flow answers for all five checks or refuses the request
outright; it never answers for some of them.