docs: private <I, V, O extends Option<I, V>> OptionsContainer getMostSpecificContainer(Class<O> optionType) {
  		OptionsContainer container;
  
  		if ( propertyName != null ) {
  			for ( Class<?> clazz : hierarchy ) {
  				for ( OptionValueSource source : sources ) {
  					container = source.getPropertyOptions( clazz, propertyName );
  					if ( !container.getAll( optionType ).isEmpty() ) {
  						return container;
  					}
  				}
  			}
  		}
  
  		if ( entityType != null ) {
  			for ( Class<?> clazz : hierarchy ) {
  				for ( OptionValueSource source : sources ) {
  					container = source.getEntityOptions( clazz );
  					if ( !container.getAll( optionType ).isEmpty() ) {
  						return container;
  					}
  				}
  			}
  		}
  
  		for ( OptionValueSource source : sources ) {
  			container = source.getGlobalOptions();
  			if ( !container.getAll( optionType ).isEmpty() ) {
  				return container;
  			}
  		}
  
  		return OptionsContainer.EMPTY;
  	}