docs: def to_namedtuple(self):
          """
          Convert class and all subclasses (:class:`Author`, :class:`Optionals`)
          to namedtuple.
  
          Note:
              This method is neccessary for AMQP communication.
  
          Returns:
              namedtuple: Representation of the class as simple structure.
          """
          keys = filter(lambda x: not x.startswith("_"), self.__dict__)
          opt_nt = namedtuple(self.__class__.__name__, keys)
  
          filt_dict = dict(map(lambda x: (x, self.__dict__[x]), keys))
  
          # convert Author objects to namedtuple
          authors = []
          for author in filt_dict["authors"]:
              authors.append(author.to_namedtuple())
  
          filt_dict["authors"] = authors
  
          # convert optionals to namedtuple if set, or to None if not
          if filt_dict["optionals"]._any_set:
              filt_dict["optionals"] = filt_dict["optionals"].to_namedtuple()
          else:
              filt_dict["optionals"] = None
  
          return opt_nt(**filt_dict)