docs: def spawn_actor(self, factory, name=None):
          """Spawns an actor using the given `factory` with the specified `name`.
  
          Returns an immediately usable `Ref` to the newly created actor, regardless of the location of the new actor, or
          when the actual spawning will take place.
          """
          if name and '/' in name:  # pragma: no cover
              raise TypeError("Actor names cannot contain slashes")
          if not self._children:
              self._children = {}
          uri = self.uri / name if name else None
          if name:
              if name.startswith('$'):
                  raise ValueError("Unable to spawn actor at path %s; name cannot start with '$', it is reserved for auto-generated names" % (uri.path,))
              if name in self._children:
                  raise NameConflict("Unable to spawn actor at path %s; actor %r already sits there" % (uri.path, self._children[name]))
          if not uri:
              name = self._generate_name(factory)
              uri = self.uri / name
          assert name not in self._children  # XXX: ordering??
          child = self._children[name] = Cell.spawn(parent_actor=self.ref, factory=factory, uri=uri, node=self.node).ref
          return child