Como serializar e desserializar uma hierarquia de sealed classes do Dart de e para JSON
Coloque um campo discriminador no JSON, faça um switch nele em uma factory na base sealed e faça um switch no subtipo para escrevê-lo de volta. Três versões funcionais no Dart 3.13.7: correspondência de padrões escrita à mão, json_serializable 6.15.2 e Freezed 4.0.3 com unionKey e fallbackUnion, além das armadilhas que cada uma esconde.