docs: def step(self, action):
          """Supplies an action to the main agent and tells the environment to tick once.
          Primary mode of interaction for single agent environments.
  
          Args:
              action (np.ndarray): An action for the main agent to carry out on the next tick.
  
          Returns:
              tuple: The (state, reward, terminal, info) tuple for the agent. State is a dictionary
              from sensor enum (see :obj:`holodeck.sensors.Sensors`) to np.ndarray.
              Reward is the float reward returned by the environment.
              Terminal is the bool terminal signal returned by the environment.
              Info is any additional info, depending on the world. Defaults to None.
          """
          self._agent.act(action)
  
          self._handle_command_buffer()
  
          self._client.release()
          self._client.acquire()
  
          return self._get_single_state()