@override Map<String, dynamic>? toJson(T? value) { if (value == null) return null; return value.json; }