edbc805333
The Home Playlists row now always renders the For You + Discover + 3× Songs-like slots: a real PlaylistCard when the system playlist has generated, otherwise a PlaylistPlaceholderCard showing its build state — building / failed / seed-needed / pending — derived from GET /api/me/system-playlists-status. Mirrors Flutter's _buildPlaylistsRow + PlaylistPlaceholderCard. * SystemPlaylistsStatus domain + wire; MeApi.getSystemPlaylistsStatus; HomeRepository.getSystemPlaylistsStatus. * HomeViewModel fetches the status in refresh() and exposes it as a StateFlow; HomeScreen collects it and threads it to the row builder. * PlaylistPlaceholderCard widget (sized to match PlaylistCard) with a status chip + variant subtitle. * buildPlaylistsRow / variantFor port the slot logic; user playlists follow the fixed system slots. The offline-pool cards (§4.3) are NOT in this commit — Android has no local recently-played cache (history is fetch-on-visit), so the "Recently played" pool has no offline source. Deferring that half until the history snapshot cache lands; see #28 notes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>