class_docstr: Wraps observations and actions by replacing dictionary spaces with the sole contained sub-space.
  This wrapper is for example required when working with external frameworks not supporting dictionary spaces.
code: def __init__(self, env):
      super().__init__(env)
  
      assert isinstance(env.observation_space, gym.spaces.Dict)
      assert len(env.observation_space.spaces) == 1
      self.observation_key = list(env.observation_space.spaces.keys())[
          0
      ]
  
      assert isinstance(env.action_space, gym.spaces.Dict)
      assert len(env.action_space.spaces) == 1
      self.action_key = list(env.action_space.spaces.keys())[0]
  
imports: from typing import Union, Dict, Any, Tuple, Optional
  import gym
  import numpy
  from maze.core.annotations import override
  from maze.core.env.base_env import BaseEnv
  from maze.core.env.maze_action import MazeActionType
  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.wrappers.wrapper import EnvType, Wrapper
label_desc: Use image node_id 1 to create a new NoDictSpacesWrapper object from inherited base classes: Wrapper with example: obj = NoDictSpacesWrapper(env)