docs: def patch(self, patch):
          """Change a bunch of node stats at once.
  
          This works similarly to ``update``, but only accepts a dict-like argument,
          and it recurses one level.
  
          The patch is sent to the LiSE core all at once, so this is faster than
          using ``update``, too.
  
          :param patch: a dictionary. Keys are node names, values are other dicts
          describing updates to the nodes, where a value of None means delete the stat.
          Other values overwrite.
  
          """
          self.engine.handle(
              'update_nodes',
              char=self.character.name,
              patch=patch,
              block=False
          )
          for node, stats in patch.items():
              nodeproxycache = self[node]._cache
              for k, v in stats.items():
                  if v is None:
                      del nodeproxycache[k]
                  else:
                      nodeproxycache[k] = v