docs: private static void calculateDifferences(ModelDiff diff) {
          Class<?> modelClass = diff.getBefore().getClass();
          for (Field field : modelClass.getDeclaredFields()) {
              if (field.getName().equals(ModelUtils.MODEL_TAIL_FIELD_NAME)) {
                  continue;
              }
              try {
                  Object before = FieldUtils.readField(field, diff.getBefore(), true);
                  Object after = FieldUtils.readField(field, diff.getAfter(), true);
                  if (!Objects.equal(before, after)) {
                      diff.addDifference(field, before, after);
                  }
              } catch (IllegalAccessException e) {
                  LOGGER.warn("Skipped field '{}' because of illegal access to it", field.getName(), e);
              }
          }
      }