It would be great if Circe could automatically derive Encoder/Decoder for Scala union types, for example,
given [A: Decoder, B: Decoder]: Decoder[A | B] =
Decoder[A] or Decoder[B].widen
given [A: Encoder, B: Encoder]: Encoder[A | B] =
Encoder.instance:
case a: A => Encoder[A].apply(a)
case b: B => Encoder[B].apply(b)