...and it doesn't compile.
The callback is passed to the builder, but one of the callback implementation methods references that same client that is being built. π vs π₯ circular dependency.
Not sure what to really do about it, but I think it suggests a gap in the design.