Cómo implementar escrituras Json implícitas de objetos incrustados en Play Framework 2.x

hay dos clasesFoo yBar. Foo contiene un campo deBar. La pregunta es, ¿cómo implemento un json implícito?Writes para claseFoo?

Aquí está el código:

package models

import play.api.libs.json._

case class Foo(id: String, bar: Bar)

object Foo {
  implicit val implicitFooWrites = new Writes[Foo] {
    def writes(foo: Foo): JsValue = {
      Json.obj(
        "id" -> foo.id,
        "bar" -> foo.bar
      )
    }
  }
}

case class Bar(x: String, y: Int)

object Bar {
  implicit val implicitBarWrites = new Writes[Bar] {
    def writes(bar: Bar): JsValue = {
      Json.obj(
        "x" -> bar.x,
        "y" -> bar.y
      )
    }
  }
}

Cuando intento compilar, me sale el siguiente error:

No se ha encontrado ningún deserializador Json para modelos de tipo. Barra. Trate de implementar una escritura implícita o un formato para este tipo.

No entiendo este error del compilador, ya que implementé una escritura implícita para la clase models.Bar. ¿Cuál es el problema aquí?

Respuestas a la pregunta(1)

Su respuesta a la pregunta