That's a complicated case, actually. It's fine to serialize `Some(3)` to `3`, but what should `None` serialize to?
I think the two reasonable possibilities are `null` or simply not including that JSON object key or array value in the output. I think the latter would be more consistent with the extraction case (i.e. if you extract an `Option`, a missing value will extract to `None`), though unfortunately this doesn't generalize: for example, we can serialize `Json(Test(None))` to "{}", but how would be serialize `Json(None)`? It's not an empty object or array... it's just "nothing".
I wonder if the best solution would be to special-case `Option` types in case classes, and forbid them elsewhere. I'll look into that as a possibility for the next release.
https://github.com/propensive/rapture-json/issues/26Cheers,
Jon