Okay. I'll throw my helper function back in.

To make sure I'm on the same page: files would always be a feature used at the toplevel of an object structure, correct? The data for deserialization is either given directly or else somehow read out of the given files. So for an embedded serializer it there's no reason I can't assume to just use data, and pass None to files.

I'll put that code back in this evening and revert this change.