in implementation this feels like everyting is actually `DECLINED`

I vote adding another field to `HandleCode`, `DECLINED`.

Then most things return `DECLINED`, which means go to the 'next' handler. (auth or otherwise)

`FAIL` should be treated as an error condition.

`FAIL` means something went wrong and you should abort the connection.

`DECLINED` means I wasn't able to service this, but another handler might be able to.