name : Name inputs : Map<Name,PortDefinition> outputs: Map<Name,PortDefinition> parameters: Map<Name,ParameterDefinition> ComponentType 80.0 40.0 type : ComponentType name: Name inputBindings : Map<Name,Reference> outputBindings : Map<Name,PortReference> Step 580.0 40.0 steps : Map<Name,Step> children : Map<Name,Step> inputReferences : Map<Name,PortReference> outputSources : Map<Name,PortReference> StepContainer 590.0 220.0 step : Name port : Name PortReference 20.0 470.0 Reference 250.0 370.0 location : URL StaticDocumentReference 170.0 470.0 document : Document HereDocumentReference 420.0 470.0 Group 450.0 370.0 Foreach 560.0 370.0 Viewport 670.0 370.0 Choose 780.0 370.0 TryCatch 890.0 370.0 name: Name mainGroup : Group components : Map<Name,ComponentType> Pipeline 80.0 230.0 step containers maintain a map of all the step names to steps including those of step containers that are descedants. This ensures step names are unique within the step. 810.0 150.0 748.0 266.0 Step containers also need to know about "children" steps to known whether an output binding is correct. 380.0 170.0 592.0 283.0 1..*