I agree that we don't know and cannot tell what is rare or not. The reason of adding this kind of directives is to keep the library fast and the organization of code simple. I disagree that the users that are using this library are looking for something simple and I am totally sure that many of them will not know or even bother to go to a wiki to search for a custom directive and manually add it to their application. Most of the times, they just pass and look for another alternative that supports it out of the box.

So, IMO this is another discussion we should take in the near future (cc: @pkozlowski-opensource ) about how far we want to go :-)

Now, in terms of consistency, I believe that all optional directives should be evaluated as boolean for the same reasons as above. If this directive makes the library bloated or unmaintainable I also agree to remove, but leaving out a feature for the shake of 15 LOC added is not possibly the best.