docs: public boolean check(Version caller, Version provider) {
          if (caller == null || provider == null) {
              throw new IllegalArgumentException(format("Both caller (%s) and provider (%s) must be non-null.",
                                                        caller,
                                                        provider));
          }
          if (caller.getMajorVersion() == null || caller.getMinorVersion() == null || provider.getMajorVersion() == null
                  || provider.getMinorVersion() == null) {
              throw new IllegalArgumentException(format("Neither major nor minor version values can be null in either caller %s or provider %s.",
                                                        caller,
                                                        provider));
          }
  
          int callerMajor = caller.getMajorVersion();
          int callerMinor = caller.getMinorVersion();
          int providerMajor = provider.getMajorVersion();
          int providerMinor = provider.getMinorVersion();
  
          return callerMajor == providerMajor && callerMinor <= providerMinor;
      }