code: def _recursively_lookup_complex(self, complex_id):
          
          assert complex_id in self.complex_map
  
          expanded_agent_strings = []
          expand_these_next = [complex_id]
          while len(expand_these_next) > 0:
              # Pop next element
              c = expand_these_next[0]
              expand_these_next = expand_these_next[1:]
  
              # If a complex, add expanding it to the end of the queue
              # If an agent string, add it to the agent string list immediately
              assert c in self.complex_map
              for s in self.complex_map[c]:
                  if s in self.complex_map:
                      expand_these_next.append(s)
                  else:
                      expanded_agent_strings.append(s)
          return expanded_agent_strings
docs: Looks up the constitutents of a complex. If any constituent is
          itself a complex, recursively expands until all constituents are
          not complexes.