Como representar campos opcionais no spray-json?

Eu tenho um campo opcional nos meus pedidos:

case class SearchRequest(url: String, nextAt: Option[Date])

Meu protocolo é:

object SearchRequestJsonProtocol extends DefaultJsonProtocol {
    implicit val searchRequestFormat = jsonFormat(SearchRequest, "url", "nextAt")
}

Como faço para marcar o campo nextAt opcional, de forma que os seguintes objetos JSON sejam lidos e aceitos corretamente:

{"url":"..."}
{"url":"...", "nextAt":null}
{"url":"...", "nextAt":"2012-05-30T15:23Z"}

Eu realmente não me importo com o caso nulo, mas se você tiver detalhes, seria legal. Estou usando o spray-json e fiquei com a impressão de que usar uma Opção ignoraria o campo se ele estivesse ausente no objeto JSON original.

questionAnswers(6)

yourAnswerToTheQuestion