Only valid when `type: File` or is an array of `items: File`.

Provides a pattern or expression specifying files or
directories that should be included alongside the primary
file. Secondary files may be required or optional. When not
explicitly specified, secondary files specified for `inputs`
are required and `outputs` are optional. An implementation
must include matching `Files` and Directories in the
`secondaryFiles` property of the primary file. These `Files`
and Directories must be transferred and staged alongside the
primary file. An implementation may fail workflow execution
if a required secondary file does not exist.

If the value is an expression, the value of `self` in the expression
must be the primary input or output `File` object to which this binding
applies. The `basename`, `nameroot` and `nameext` fields must be
present in `self`. For `CommandLineTool` outputs the `path` field must
also be present. The expression must return a filename string relative
to the path to the primary `File`, a `File` or `Directory` object with either
`path` or `location` and `basename` fields set, or an array consisting
of strings or `File` or `Directory` objects. It is legal to reference an
unchanged `File` or `Directory` object taken from input as a secondaryFile.
The expression may return "null" in which case there is no secondaryFile
from that expression.

To work on non-filename-preserving storage systems, portable tool
descriptions should avoid constructing new values from `location`, but
should construct relative references using `basename` or `nameroot`
instead.

If a value in `secondaryFiles` is a string that is not an expression,
it specifies that the following pattern should be applied to the path
of the primary file to yield a filename relative to the primary `File`:

1. If string ends with `?` character, remove the last `?` and mark
   the resulting secondary file as optional.
1. If string begins with one or more caret `^` characters, for each
   caret, remove the last file extension from the path (the last
   period `.` and all following characters). If there are no file
   extensions, the path is unchanged.
1. Append the remainder of the string to the end of the file path.
