Future<Map<String, dynamic>> toJsonAsync() async { final resolved = await _resolveFuturesDeep(toMap()); return _toJsonEncodableMap(Map<String, dynamic>.from(resolved as Map)); }