> Maybe because you only have two choices

You have more than that: :source, :ua_name, :ua_ver, :os_name, :arch, :proxy, :office, etc, etc. The more the mixin can detect, the more requirements you can define.