code: def initialize_simulation_from_model_specification(model_specification_file: str) -> InteractiveContext:
      
      model_specification = build_model_specification(model_specification_file)
  
      plugin_config = model_specification.plugins
      component_config = model_specification.components
      simulation_config = model_specification.configuration
  
      plugin_manager = PluginManager(plugin_config)
      component_config_parser = plugin_manager.get_plugin('component_configuration_parser')
      components = component_config_parser.get_components(component_config)
  
      return InteractiveContext(simulation_config, components, plugin_manager)
docs: Construct a simulation from a model specification file.
  
      The simulation context returned by this method still needs to be setup by
      calling its setup method. It is mostly useful for testing and debugging.
  
      Parameters
      ----------
      model_specification_file
          The path to a model specification file.
  
      Returns
      -------
          An initialized (but not set up) simulation context.