Observation model src

---
config:
  flowchart:
    defaultRenderer: elk
  layout: elk
---
flowchart LR
 subgraph COL1["Global Configurations"]
    direction TB
        OIC["Optical Imaging Configuration"]
        RMC["Radio Mapping Configuration"]
        RTC["Radio Tracking Configuration"]
  end
 subgraph COL2["Target"]
    direction TB
        T["Target"]
        TBM["Target Brightness Model"]
        SBM["Saturation Brightness Model"]
  end
 subgraph COL3["Position"]
    direction TB
        P["Position"]
        FP["Fixed Position"]
        EP["Ephemeral Position"]
        CP["Catalog Position"]
        OP["Orbital Position"]
  end
 subgraph COL4["Coordinates"]
    direction TB
        C["Coordinates"]
        EQ["Equatorial"]
        EC["Ecliptic"]
        GA["Galactic"]
        HO["Horizontal"]
        TO["Topocentric"]
  end
 subgraph COL5["Catalog Objects"]
    direction TB
        CO["Catalog Object"]
        MSS["Major Solar System"]
        PS["Planetary Satellite"]
        MC["MPC Comet"]
        MO["MpcOrbit"]
        NS["Norad Satellite"]
  end
 subgraph COL6["Requests"]
    direction TB
        DR["Data Request[]"]
        OIR["Optical Imaging Request"]
        RTR["Radio Tracking Request"]
        RMR["Radio Mapping Request"]
  end
 subgraph s1["Optical Imaging Request"]
        n1["target SNR | % full-well depth | exposure time"]
        n2["filter specifiers"]
  end
 subgraph s2["Radio Tracking Request"]
        n3["frequency windows"]
        n4["min spectral resolution"]
  end
    O["Observation<br>draft | instance | template"] --> OIC & RMC & RTC & T & DR
    T --> P & TBM & SBM
    P -.- FP & CP & EP & OP
    FP --> C
    C -.- EQ & TO & EC & HO
    C -.- GA
    CP --> CO
    CO -.- MSS & MO & NS & PS & MC
    DR -.- OIR & RTR & RMR
    OIR --> s1
    RTR --> s2
    OIR@{ shape: rect}
    RTR@{ shape: rect}
    RMR@{ shape: rect}
    n2@{ shape: rect}
    n3@{ shape: rect}
    n4@{ shape: rect}
     OIC:::config
     OIC:::Rose
     OIC:::Ash
     RMC:::config
     RMC:::Rose
     RMC:::Ash
     RTC:::config
     RTC:::Rose
     RTC:::Ash
     T:::target
     TBM:::core
     SBM:::core
     P:::core
     FP:::type
     EP:::type
     CP:::type
     OP:::type
     C:::core
     EQ:::type
     EC:::type
     GA:::type
     HO:::type
     TO:::type
     CO:::core
     MSS:::type
     PS:::type
     MC:::type
     MO:::type
     NS:::type
     DR:::requests
     OIR:::reqType
     RTR:::reqType
     RMR:::reqType
     O:::root
    classDef root fill:#f0f4ff,stroke:#365cf5,stroke-width:1.5px
    classDef target fill:#eaf7f0,stroke:#2e7d32,stroke-width:1px
    classDef core fill:#f8fafc,stroke:#64748b,stroke-width:1px
    classDef type fill:#ffffff,stroke:#94a3b8,stroke-dasharray:3 3,stroke-width:1px
    classDef requests fill:#fff7ed,stroke:#ea580c,stroke-width:1px
    classDef reqType fill:#fff7ed,stroke:#ea580c,stroke-dasharray:3 3,stroke-width:1px
    classDef hub fill:#0000,stroke:#0000,stroke-width:0
    classDef Rose stroke-width:1px, stroke-dasharray:none, stroke:#FF5978, fill:#FFDFE5, color:#8E2236
    classDef Ash stroke-width:1px, stroke-dasharray:none, stroke:#999999, fill:#EEEEEE, color:#000000