What is the purpose of `id` and `label` fields on CommandLineTool

https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool

Fields for id (“The unique identifier for this object.”) and label (“A short, human-readable label of this object.”) are listed, but its not clear how these are used, and what they are used for.

From my own investigation, I have found that these influence internal identifiers in Toil that are used to describe the workflow tasks. However it would be helpful to know more details about their intended usages. Thanks.

The id field corresponds to the identifier used by a workflow step run field. The id field often does not appear explicitly, instead the the file:// URI of the document is injected at load time.

The label field is a human friendly name intended to show up in user interfaces. It is distinct from doc which is an abritrarily long description.