code: public <T, K extends T> K configuration(final Class<T> type) {
          return configurationTree().valueByUniqueDeclaredType(type);
      }
docs: May be used to access unique sub configuration object. This is helpful for bundles universality:
  suppose bundle X requires configuration object XConf and we are sure that only one declaration of XConf would
  be used in target configuration class, then we can simply request it:
  {@code configuration(XConf.class) == <instance of XConf or null>}.
  <p>
  Note that uniqueness is checked by declaration class:
  <pre>{@code class Config extends Configuration {
  Sub sub;
  SubExt ext; // SubExt extends Sub
  }}</pre>
  are unique declarations (declaration of the same type never appears in configuration on any level).
  {@code configuration(Sub.class) == sub} and {@code configuration(SubExt.class) == ext}.
  <p>
  Example of accessing server config from dropwizard configuration:
  {@code configuration(ServerFactory.class) == DefaultServerFactory (or SimpleServerFactory)}
  (see dropwizard {@link Configuration} class).
  
  @param type target configuration declaration type
  @param <T> declaration type
  @param <K> required value type (may be the same or extending type)
  @return unique configuration value or null if value is null or no declaration found
  @see #configurationTree() for custom configuration searches