semi-required => required unless force_random is set