prepared to assign not yet earned badges
add hasEarned, default true, to make it possible to show inactive badges to be earned