Autoselect lower options – effective design patterns

I have series of options that I currently render as checkboxes. However, the options themselves "stack" in the sense that selecting one, should auto-select all the options below it.

ex. If we have the following 3 options:

  • opt1
  • opt2
  • opt3

User selection ==> result

  • opt3 ==> opt3
  • opt2 ==> opt2, opt3
  • opt1 ==> opt1, opt2, opt3

The challenge is that some other, previously selected configurations determine whether or not you can select specific options, which has been a serious source of confusion.

If anyone has any ideas of examples of design patterns that would make this a more intuitive experience, I'd really appreciate the feedback!