control/definingproperty-state
Sketch Symbol Best Practices
Lloyd Humphreys
96216

To me the follwoing structure makes sense:

object/class/state

e.g.

button/danger/hover

The attribute you’re most likely to want to vary is last, in order that replacing objects is easy.

Maybe this is overkill though, and a flatter structure may prove easier to use.