graph TD subgraph Presentation MAIN[main.rs] ROUTES[routes/] EXTRACT[extractors] OPENAPI[OpenAPI / Scalar] SPA[SPA static files] end subgraph Application SONGS_UC[songs/] TABS_UC[tabs/] AUTH_UC[auth/] end subgraph Domain MODELS[models/] VO[value_objects/] PORTS[ports/] SERVICES[services/] ERRORS[errors/] end subgraph Adapters SQLITE[(SQLite)] UG[UG Parser] JWT[JWT + Argon2] end subgraph "Shared Crates" API_TYPES[api-types] INFRA[infra-wiring] end subgraph Frontend REACT[React SPA] end MAIN --> ROUTES MAIN --> OPENAPI ROUTES --> EXTRACT ROUTES --> SONGS_UC ROUTES --> TABS_UC ROUTES --> AUTH_UC ROUTES --> API_TYPES SONGS_UC --> PORTS TABS_UC --> PORTS AUTH_UC --> PORTS PORTS --> MODELS PORTS --> VO PORTS --> ERRORS SERVICES --> MODELS SERVICES --> VO SQLITE -.->|implements| PORTS UG -.->|implements| PORTS JWT -.->|implements| PORTS MAIN --> INFRA MAIN --> SPA REACT -->|/api/*| ROUTES SPA -->|serves| REACT