graph TD
subgraph "View Layer"
App[HuggingModelsApp] -->|Injects EnvironmentObject| CV[ContentView]
end
subgraph "ViewModel Layer"
CV <-->|Observes & Interacts| VM[ViewModel]
end
subgraph "Model & Logic Layer"
VM -->|Debounced Search| HF[HuggingFaceService]
VM -->|Calculates Requirements| Calc[VRAMCalculator]
end
subgraph "External API"
HF -->|Fetches Metadata & Config| HfAPI[Hugging Face API]
end
subgraph "Data Structures"
VM -.->|Uses| Config[HFConfig]
VM -.->|Uses| Result[VRAMResult]
VM -.->|Uses| SearchRes[HFModelSearchResponse]
Calc -.->|Produces| Result
HF -.->|Produces| Config
HF -.->|Produces| SearchRes
end
style App fill:#f9f,stroke:#333,stroke-width:2px
style CV fill:#bbf,stroke:#333,stroke-width:2px
style VM fill:#dfd,stroke:#333,stroke-width:2px
style Calc fill:#ffd,stroke:#333,stroke-width:2px
style HF fill:#ffd,stroke:#333,stroke-width:2px
style HfAPI fill:#eee,stroke:#333,stroke-dasharray: 5 5