Map<String, dynamic> getFields(O o) { return Map<String, dynamic>.fromEntries(fieldsNames(o) .map((key) => MapEntry<String, dynamic>(key, getField(o, key)))); }