Server-side payload is commonly a JSON-string or opaque string. Keep it as dynamic if you want to allow either Map or String.
final Map<String, dynamic> payload;