Map<String, dynamic> toJson() { return { 'address': address, 'sub_account': subAccount?.toJson(), 'metadata': metadata, }..removeWhere((key, value) => value == null); }