Want to be able to apply annotations to groups of parameters or workflow steps. This would principally be metadata documentation -- need to decide if this should include features that affect runtime execution or not. The goal is to have a way to provide better documentation & user interface for tool use.
Syntax options:
inputs:
parameter1: string
parameter2: int
groups:
group1:
groupMembers: [parmeter1, parameter2]
doc: "parameters related to the foobar feature"
inputs:
parameter1:
type: string
groupMember: group1
parameter2:
type: int
groupMember: group1
groups:
group1:
doc: "parameters related to the foobar feature"
Discussion points
should groups include things that are meaningful to runtime, e.g. applying a hint or requirement to several steps? rejected
Can an item be a member of more than one group? rejected
Should it be possible for groups to be members of other groups? rejected
What kind of metadata should be specified?
label, doc, 'expanded'
Are groups the appropriate place to declare dependencies between inputs, for example if optional input A is specified then optional input B is actually required
The user guide describes option groups using records and unions but nobody uses that in practice
rejected
specifying order that parameters / groups appear in UI
suck for the user but decided we need this because we can't guarantee order in JSON/YAML documents
should decide if reusing "position" field is appropriate, in CommandLineTool it allows either integers or expressions, but expressions don't make sense here.
Want to be able to apply annotations to groups of parameters or workflow steps. This would principally be metadata documentation -- need to decide if this should include features that affect runtime execution or not. The goal is to have a way to provide better documentation & user interface for tool use.
Syntax options:
Discussion points