   can run as a child of another supervision in the tree. The generated
   `child_spec/1` can be customized with the following options:
 
-    * `:id` - the child specification id, defaults to the current module
+    * `:id` - the child specification identifier, defaults to the current module
     * `:start` - how to start the child process (defaults to calling `__MODULE__.start_link/1`)
     * `:restart` - when the supervisor should be restarted, defaults to `:permanent`
 

  # Note we have inlined all types for readability
  @typedoc "The supervisor specification"
  @type child_spec :: %{
          required(:id) => term(),
          required(:start) => {module(), atom(), [term()]},
          optional(:restart) => :permanent | :transient | :temporary,
          optional(:shutdown) => timeout() | :brutal_kill,

  The child specification describes how the supervisor starts, shuts down,
  and restarts child processes.

  The child specification contains 6 keys. The first two are required,
  and the remaining ones are optional:

    * `:id` - any term used to identify the child specification
      internally by the supervisor; defaults to the given module.
      In the case of conflicting `:id` values, the supervisor will refuse
      to initialize and require explicit IDs. This key is required.
