docs: public static Map<String, Field> findFields(final Class<?> clazz) {
          Map<String, Field> foundFields = new HashMap<>();
          Class<?> searchType = clazz;
          while (!Object.class.equals(searchType) && (searchType != null)) {
              Field[] fields = searchType.getDeclaredFields();
              for (Field field : fields) {
                  field.setAccessible(true);
                  if(foundFields.get(field.getName()) == null) {
                      foundFields.put(field.getName(), field);
                  }
              }
              searchType = searchType.getSuperclass();
          }
          return foundFields;
      }