code: @Nonnull
      public static List<PluginWrapper.Dependency> getImpliedDependencies(String pluginName, String jenkinsVersion) {
          List<PluginWrapper.Dependency> out = new ArrayList<>();
          for (DetachedPlugin detached : getDetachedPlugins()) {
              // don't fix the dependency for itself, or else we'll have a cycle
              if (detached.shortName.equals(pluginName)) {
                  continue;
              }
              if (BREAK_CYCLES.contains(pluginName + ' ' + detached.shortName)) {
                  LOGGER.log(Level.FINE, "skipping implicit dependency {0} → {1}", new Object[]{pluginName, detached.shortName});
                  continue;
              }
              // some earlier versions of maven-hpi-plugin apparently puts "null" as a literal in Hudson-Version. watch out for them.
              if (jenkinsVersion == null || jenkinsVersion.equals("null") || new VersionNumber(jenkinsVersion).compareTo(detached.splitWhen) <= 0) {
                  out.add(new PluginWrapper.Dependency(detached.shortName + ':' + detached.requiredVersion));
                  LOGGER.log(Level.FINE, "adding implicit dependency {0} → {1} because of {2}",
                             new Object[]{pluginName, detached.shortName, jenkinsVersion});
              }
          }
          return out;
      }
docs: Returns all the plugin dependencies that are implicit based on a particular Jenkins version
  
  @since 2.0