docs: static boolean compareValues(Object v1, Object v2) {
          if (v1.equals(v2)) {
              return true;
          }
  
          if (isValue(v1) && isValue(v2)
                  && Obj.equals(((Map<String, Object>) v1).get("@value"),
                          ((Map<String, Object>) v2).get("@value"))
                  && Obj.equals(((Map<String, Object>) v1).get("@type"),
                          ((Map<String, Object>) v2).get("@type"))
                  && Obj.equals(((Map<String, Object>) v1).get("@language"),
                          ((Map<String, Object>) v2).get("@language"))
                  && Obj.equals(((Map<String, Object>) v1).get("@index"),
                          ((Map<String, Object>) v2).get("@index"))) {
              return true;
          }
  
          if ((v1 instanceof Map && ((Map<String, Object>) v1).containsKey("@id"))
                  && (v2 instanceof Map && ((Map<String, Object>) v2).containsKey("@id"))
                  && ((Map<String, Object>) v1).get("@id")
                          .equals(((Map<String, Object>) v2).get("@id"))) {
              return true;
          }
  
          return false;
      }