private void putRequiredOption( Collection<String> precedentSynonyms, OptionSpec<?> required,
        Map<Collection<String>, Set<OptionSpec<?>>> target ) {

        for ( String each : precedentSynonyms ) {
            AbstractOptionSpec<?> spec = specFor( each );
            if ( spec == null )
                throw new UnconfiguredOptionException( precedentSynonyms );
        }

        Set<OptionSpec<?>> associated = target.get( precedentSynonyms );
        if ( associated == null ) {
            associated = new HashSet<OptionSpec<?>>();
            target.put( precedentSynonyms, associated );
        }

        associated.add( required );
    }