Say I define some messages:
sealed trait Command case class A(i: Int) extends Command case class B(str: String) extends Command
And then a cl