Documents now have a type associated with this. This is used when reloading
the document. It forces a convention on consumers that they define a Type which
they'll be able to use when reserializing objects.