docs: public static String getMessage(ConstraintViolation<?> v, Invocable invocable) {
          final Pair<Path, ? extends ConstraintDescriptor<?>> of =
                  Pair.of(v.getPropertyPath(), v.getConstraintDescriptor());
          final String cachePrefix = PREFIX_CACHE.getIfPresent(of);
          if (cachePrefix == null) {
              final String prefix = calculatePrefix(v, invocable);
              PREFIX_CACHE.put(of, prefix);
              return prefix + v.getMessage();
          }
          return cachePrefix + v.getMessage();
      }