The parameters definitions form a tree. The leaves in this tree are the individual parameters, which have types and other meta-data. The contents of an inner node can either be defined in the same script, or it can contain a parameter tree imported from another script.
The run-time value for a parameter can be specified in multiple places, either in the script itself or by callers, recursively, since callers have access to parameters of scripts that they call, via imports. The actual value is the one from the first (outermost) specification. In effect, parameters are write-once, or equivalently parameter values are not set, only parameter default values.
When a script runs another script that it has imported parameters from, the corresponding sub-tree with arguments must be provided by the caller, using the namespace parameter to the load-target or run-script commands.