maybe, but technically it is ok to subclass a case class as long as the subclass is not a case class itself (and you don't mess up equals/hashCode)

I don't mind changing those strategies to ordinary classes and supply apply and toString. I don't see the need for equals/hashCode, copy. Other opinions? // cc @rkuhn