Tocar json Read e parâmetros padrão para a classe case?

Estou com um problema com os parâmetros padrão e usando o Play Json Read. Aqui está o meu código:

  case class Test(action: String, storeResult: Option[Boolean] = Some(true), returndata: Option[Boolean] = Some(true))

  val json =
    """
      {"action": "Test"}"""

  implicit val testReads: Reads[Test] =
    (
      (JsPath \\ "action").read[String](minLength[String](1)) and
        (JsPath \\ "store_result").readNullable[Boolean] and
        (JsPath \\ "returndata").readNullable[Boolean]
      ) (Test.apply _)
  val js = Json.parse(json)

  js.validate[Test] match {
    case JsSuccess(a, _) => println(a)
    case JsError(errors) =>
      println("Here")
      println(errors)
  }

O que eu esperava conseguir no final é

Test("Test", Some(true), Some(true))

mas eu consegui:

Test("Test",None,None)

Porque isto é assim? Se eu não forneça parâmetro no json, por que ele não obteve o valor padrão? Como conseguir o que eu quero?

questionAnswers(3)

yourAnswerToTheQuestion