code: def as_dict(self):
          
          d = {"@module": self.__class__.__module__,
               "@class": self.__class__.__name__,
               "name": self.name, "options": self.options}
          if len(self.subkeys) > 0:
              subkeys = []
              for subkey in self.subkeys:
                  subkeys.append(subkey.as_dict())
              d.update({"subkeys": subkeys})
          return d
docs: A JSON serializable dict representation of self.