I happened to have this example, using as you say just reflection. For some reason, colors are appealing in this context. I suppose it awaits a macro solution, where you ask for the categories, something like Value[Spectral].
object Colors extends Enumeration {
sealed trait Spectral
sealed trait GirlsFavorite
case object Red extends Val with Spectral
case object Blue extends Val with Spectral
case object Pink extends Val with GirlsFavorite
case object Purple extends Val with GirlsFavorite
val Magenta = Value