Ended up with a pretty gross and not total From/To-JSON instance for Signature:
https://git.sr.ht/~jonn/do-auth/commit/c5ec5c21709066bc9d788eefde6419b597c95225
I'm embracing partial functions on purpose (I wish #haskell had #purescript's Partial typeclass).
I'd like my mission-critical software to crash when something unexpected happens and rather enter a recovery mode, a la #erlang
But that's also the reason why I'll most likely do a rewrite of #doauth in #elixir for v1 -- fault tolerance facilities are virtually limitless in the #BEAM world.