class_docstr: An wrapper stacking the observations of multiple subsequent time steps.
  
  Provides functionality for:
  
      - selecting which observations to stack
      - how many past observations should be stacked
      - stacking deltas with the current step observation (instead of the observations itself)
  
  :param env: Environment/wrapper to wrap.
  :param stack_config: The observation stacking configuration.
  
      observation:        The name (key) of the respective observation
      keep_original:      Bool, indicates weather to keep or remove the original observation from the dictionary.
      tag:                Optional[str], tag to add to observation (e.g. stacked)
      delta:              Bool, if true deltas are stacked to the previous observation
      stack_steps:        Int, number of past steps to be stacked
docstr: If this is the first step in an episode, reset the observation stack.
docstr_tok: ["If","this","is","the","first","step","in","an","episode",",","reset","the","observation","stack","."]
code: def get_observation_and_action_dicts(
      self,
      maze_state: Optional[MazeStateType],
      maze_action: Optional[MazeActionType],
      first_step_in_episode: bool,
  ) -> Tuple[
      Optional[Dict[Union[int, str], Any]],
      Optional[Dict[Union[int, str], Any]],
  ]:
      """If this is the first step in an episode, reset the observation stack."""
      if first_step_in_episode:
          self._observation_stack: Dict[
              str, List[np.ndarray]
          ] = defaultdict(list)
  
      return super().get_observation_and_action_dicts(
          maze_state, maze_action, first_step_in_episode
      )
  
imports: import copy
  from collections import defaultdict
  from typing import Any, Dict, List, Tuple, Union, Optional
  import numpy
  from gym import spaces
  from maze.core.annotations import override
  from maze.core.env.maze_action import MazeActionType
  from maze.core.env.maze_env import MazeEnv
  from maze.core.env.maze_state import MazeStateType
  from maze.core.env.simulated_env_mixin import SimulatedEnvMixin
  from maze.core.env.structured_env_spaces_mixin import StructuredEnvSpacesMixin
  from maze.core.utils.structured_env_utils import flat_structured_space
  from maze.core.wrappers.wrapper import ObservationWrapper, Wrapper
label_desc: Use image node_id 5 for calling the ObservationStackWrapper obj's underlying member method code with example usage: obj.get_observation_and_action_dicts(maze_state, maze_action, first_step_in_episode) and returns: super