docs: private Map<String, Field> getAllFields(Class<?> type) {
          Map<String, Field> fields = new HashMap<String, Field>();
          for (Class<?> c = type; c != null; c = c.getSuperclass()) {
              for(Field f : c.getDeclaredFields()) {
                  fields.put(f.getName(), f);
              }
          }
          return fields;
      }