Domyślnie brakujące właściwości w odtwarzanych 2 formatach JSON

Mam odpowiednik następującego modelu w scala gry:

case class Foo(id:Int,value:String)
object Foo{
  import play.api.libs.json.Json
  implicit val fooFormats = Json.format[Foo]
}

Dla następującej instancji Foo

Foo(1, "foo")

Otrzymałbym następujący dokument JSON:

{"id":1, "value": "foo"}

Ten JSON jest utrwalany i odczytywany z magazynu danych. Teraz zmieniły się moje wymagania i muszę dodać właściwość do Foo. Właściwość ma wartość domyślną:

case class Foo(id:String,value:String, status:String="pending")

Pisanie do JSON nie stanowi problemu:

{"id":1, "value": "foo", "status":"pending"}

Odczyt z niego daje jednak błąd JsError dla pominięcia ścieżki „/ status”.

Jak mogę zapewnić domyślne z najmniejszym możliwym hałasem?

(ps: Mam odpowiedź, którą opublikuję poniżej, ale nie jestem z niej bardzo zadowolony i będę głosować i akceptować każdą lepszą opcję)

questionAnswers(7)

yourAnswerToTheQuestion