Cómo limitar el spray jsonFormat

Estoy implementando algunas API de descanso que usan spray y akka. La API debería exponer algún tipo de CRUD de usuario. Usaré solo crear usuario en esta pregunta ...

case class User(id:String, name:String)  
case class Register(user:User, registrationId:String) 

trait DefaultJsonFormats extends DefaultJsonProtocol with SprayJsonSupport with MetaMarshallers {}

class RegistrationService(registration: ActorRef)
   (implicit executionContext: ExecutionContext) 
                   extends Directives with DefaultJsonFormats {
  implicit val timeout = Timeout(2.seconds)
  implicit val userFormat = jsonFormat3(User)
  implicit val registerFormat = jsonFormat1(Register)
  implicit val registeredFormat = jsonFormat1(Registered)

  val route =
      path("register") {
          post {  handleWith { ru: Register => (registration ?   ru).mapTo[Registered] } }
}

Ahora supongamos que la clase Usuario tiene 30 campos pero no hay jsonFormat30 (...) ¿Cómo puedo usar tales implicidades para cualquier objeto de clase de caso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta