Deprecate `handleFlow()`?

This one:

  def handleFlow[L, R, B](left: => Future[L])(right: String => Future[R])(
    request: ExtractableRequest[B]
  ): Future[Either[L, R]] = {

makes me spend half an hour looking at it and the “left” and “right” and figuring out how it decides what to do next based on what’s in the request. It slows me down when trying to get things done in Silhouette.

Maybe Silhouette can be made simpler to contribute to, by simplifying this part of S. ?

The caller always knows what to do next, based on which endpoint was called? E.g. sth like GET /login-with-keycloak or GET /login-with-keycloack/callback?state=...code=... — the caller knows if Left or Right is the next step; no need to derive that dynamically by inspecting the request?

What about deprecating handleFlow and instead having methods like startAuthentication and handleAuthenticationResponse? (maybe handleFlow can still be there, for backw compat — but deprecated, and it can call one of those two others? )