Map<String, dynamic> toJson() { return { "version": version, "sender": sender, "expiration": expiration?.toJson(), "gasData": gasData.toJson(), "inputs": inputs, "commands": commands }; }