code: def prepare_plugins(plugins, parameters={}):
      
  
      required_plugins = [
          DefaultDefinitionBodyPlugin(),
          make_implicit_api_plugin(),
          GlobalsPlugin(),
          make_policy_template_for_function_plugin(),
      ]
  
      plugins = [] if not plugins else plugins
  
      # If a ServerlessAppPlugin does not yet exist, create one and add to the beginning of the required plugins list.
      if not any(isinstance(plugin, ServerlessAppPlugin) for plugin in plugins):
          required_plugins.insert(0, ServerlessAppPlugin(parameters=parameters))
  
      # Execute customer's plugins first before running SAM plugins. It is very important to retain this order because
      # other plugins will be dependent on this ordering.
      return SamPlugins(plugins + required_plugins)
docs: Creates & returns a plugins object with the given list of plugins installed. In addition to the given plugins,
      we will also install a few "required" plugins that are necessary to provide complete support for SAM template spec.
  
      :param plugins: list of samtranslator.plugins.BasePlugin plugins: List of plugins to install
      :param parameters: Dictionary of parameter values
      :return samtranslator.plugins.SamPlugins: Instance of `SamPlugins`