class ABCModel with _$ABCModel {
    factory ABCModel({
      @JsonKey(name: "id") @Default('') String id,
      @JsonKey(name: "name") @Default('') String name,
    }) = _ABCModel;

    factory ABCModel.fromJson(Map<String, dynamic> json) => _$ABCModelFromJson(json);

  class EFGModel with _$EFGModel {
    factory EFGModel({
      @JsonKey(name: "abc") @Default(ABCModel()) ABCModel abc, //empty ABCModel
    }) = _EFGModel;

    factory EFGModel.fromJson(Map<String, dynamic> json) => _$EFGModelFromJson(json);

If EFGModel get an empty or null abc json value, what is the suitable value to put on @Default() freezed annotation, @Default(ABCModel()) is not correct

Solution 1: Locohost

Note the Player.blank() constructor below. Like this...

class Player with _$Player {

  factory Player({
    @Default('') String handle,
    @Default('') String realname,
    Contact? contactinfo,
    @Default(false) bool emailverified,
    @Default(false) bool showemail,
    @Default(false) bool showphone,
    @Default('') String avatarurl,
    DateTime? datejoined,
    @Default(0) int transactions,
    DateTime? datelasttransaction,
    DateTime? datelastlogin,
    @Default([]) List<String> tags,
    @Default([]) List<String> leagues,
    @Default([]) List<String> events,
    @Default(0) int views,
    @Default(0) int likes,
    @Default(0) int loginfails,
    @JsonKey(ignore: true) @Default('') String password,
    @JsonKey(ignore: true) @Default('') String confirm,
    required Meta meta,
  }) = _Player;

  factory Player.blank() => Player(contactinfo: Contact(), meta: Meta());
  factory Player.fromJson(Map<String, dynamic> json) => _$PlayerFromJson(json);