docs: def export(self, exclude=[]):
          """ returns a dictionary representation of the document
          """
          fields = ( (key, self.get_field(key)) for key in self.schema
              if not key.startswith("_") and key not in exclude )
          
          doc = {name: field.export() for name, field in fields}
          return doc