badge=0 wont be considered as "unspecified"

I suggest it will be the developer's decision whether or not there's a difference between a 0 badge and no badge.
I preserve the default behaviour as "badge unspecified"