   @typedoc """
   A mapping between plugin name and its current state.
   """
-  @type plugin_state_map :: %{atom => plugin_state}
-
-  @typedoc """
-  A pair of the repository URL to checkout and corresponding
+  @type plugin_state_map :: %{module => plugin_state}
+
+  @typedoc """
+  A plugin and its initial configuration.
+  """
+  @type plugin_config_t :: {module, any}
+
+  @typedoc """
+  A pair of the repository Coordinate to checkout and corresponding
   BaumeisterFile
   """
   @type result_t :: {Coordinate.t, String.t}

  Configures the observer with a single plugin `mod` and
  configuration `config`.
  """
  def configure(observer, mod, config) do
    configure(observer, [{mod, config}])
  end

  Configures the observer with a tuple of plugin `mod` and
  configuration `config`.
  """
  @spec configure(pid, plugin_config_t) :: :ok
  def configure(observer, {mod, config}) do
    configure(observer, [{mod, config}])
  end
