reach for the JSON flag type when a variation is more than a word. Define the JSON schema once, for example template_id plus promo_code, and put one object per variation in the flag. In code, fetch the JSON assignment and validate the fields exist before using them, so a half-published flag fails loudly instead of rendering a broken template. This keeps related fields consistent: the template and the copy always come from the same variation. The same pattern works for onboarding flows, pricing page layouts, or any UI where several pieces must change together.