The intention for checking readability and writability is that only fields should be serialized that
can be deserialized afterwards.

I see, that makes sense. In my case I have a disjoint set of structures that I serialize and deserialize (i.e. it's one half of a network API) so I don't really require that constraint, but it makes sense none-the-less :)

It's definitely a bug though, that it doesn't serialize a struct that is passed as
const/immutable. Using Unqual inside __traits(allMembers, Unqual!T) should indeed fix it. I'll
check in something later.

Cool, thanks!