@startuml !theme cerulean participant AGR as AGR1 participant AGR as AGR2 participant DSO == Validate == DSO -> DSO: non-aggregator forecast AGR1 -> DSO: [optional] D-prognosis AGR2 -> DSO: [optional] D-prognosis DSO -> DSO: Grid safety analysis -> NOK AGR2 <- DSO: FlexRequest AGR1 <- DSO: FlexRequest AGR1 <- AGR1: determine offers AGR2 <- AGR2: determine offers AGR2 -> DSO: FlexOffer DSO -> DSO: Evaluate offers AGR2 <- DSO: FlexOrder AGR2 -> DSO: [optional] (updated) D-prognosis DSO -> DSO: Grid safety analysis -> OK DSO -> DSO: Grid safety analysis -> OK @enduml