---
config:
  layout: elk
  elk:
    mergeEdges: false
    nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart RL
 subgraph Coordinator["Display Coordinator"]
        CoordinatorDisplayRegApi(["Display registration API"])
        CoordinatorDisplayManagement["Display management logic"]
  end
 subgraph EngineDriver["Display engine driver"]
        DisplayRegistration["Display registration logic"]
  end
 subgraph PanelDriver["Panel driver"]
        PanelDisplayTimings(["Timing provision logic"])
        PanelCapabilitiesApi(["Capabilities API"])
  end
    CoordinatorDisplayRegApi === CoordinatorDisplayManagement
    PanelDisplayTimings --> PanelCapabilitiesApi
    PanelCapabilitiesApi -- Display timings --> DisplayRegistration
    DisplayRegistration -- Display modes --> CoordinatorDisplayRegApi

    CoordinatorDisplayRegApi@{ shape: stadium }
    PanelCapabilitiesApi@{ shape: stadium }

    PanelDisplayTimings@{ shape: rect}
    DisplayRegistration@{ shape: rect}