docs: def flatten(self, condition=None, start=None):
          """
          Iterate over the subgraph that is entirely reachable by condition
          starting from the given start node or the ObjectGraph root
          """
          if start is None:
              start = self
          start = self.getRawIdent(start)
          return self.graph.iterdata(start=start, condition=condition)