We have products where some variants should be personalized, but other variants can't be personalized. Using existing features of the Storefront comes close to these constraints, but it doesn't quite work.
  1. Personalization contains steps, but can't restrict the next step based on the specific content of the previous personalization.
2a. Options/Variants can sort of allow "dependent dropdowns" by specifying valid SKUs as in-stock variant inventory, but variants don't provide textboxes or file uploads.
2b. The other downside to variant inventory is these types of products might be "on-demand," where tracking variant inventory doesn't make sense.
The motivating example is a workwear shirt, which can be embroidered with a known set of departments, but only a subset of departments can be personalized with a name.