discriminated<T> static method
Discriminated union codec.
tag is the discriminator key. cases maps each tag value to a branch
codec. encode maps domain values back to (tag, body).
Implementation
static Codec<T> discriminated<T>({
required String tag,
required Map<String, Codec<T>> cases,
required (String, Map<String, Object?>) Function(T) encode,
}) =>
_DiscriminatedCodec<T>(tag, cases, encode);