task_id: task_create_page_home entity_id: page_home generated_at: '2025-12-18T15:16:50.293122' workflow_version: v001 target: type: page definition: id: page_home path: / title: Discover Music description: Main discovery feed data_needs: - api_id: api_get_trending_songs purpose: Show trending songs on_load: true - api_id: api_get_new_releases purpose: Show new releases on_load: true - api_id: api_get_genres purpose: Genre navigation on_load: true components: - component_song_card - component_genre_badge - component_section_header auth: required: false related: models: [] apis: - id: api_get_new_releases definition: &id003 id: api_get_new_releases method: GET path: /api/discover/new-releases description: Get recently released songs query_params: limit: integer offset: integer responses: - status: 200 description: List of new releases schema: songs: - id: uuid title: string release_date: string auth: required: false depends_on_models: - model_song - id: api_get_trending_songs definition: &id005 id: api_get_trending_songs method: GET path: /api/discover/trending description: Get trending songs query_params: limit: integer offset: integer responses: - status: 200 description: List of trending songs schema: songs: - id: uuid title: string artist: stage_name: string play_count: integer auth: required: false depends_on_models: - model_song - model_artist - id: api_get_genres definition: &id006 id: api_get_genres method: GET path: /api/discover/genres description: Get all genres responses: - status: 200 description: List of genres schema: genres: - id: uuid name: string slug: string auth: required: false depends_on_models: - model_genre components: - id: component_genre_badge definition: &id001 id: component_genre_badge name: GenreBadge description: Genre tag display props: - name: genre type: Genre required: true - name: clickable type: boolean default: true events: - name: onClick payload: genreSlug: string uses_apis: [] uses_components: [] - id: component_section_header definition: &id002 id: component_section_header name: SectionHeader description: Section title with optional action props: - name: title type: string required: true - name: actionLabel type: string required: false events: - name: onActionClick payload: null uses_apis: [] uses_components: [] - id: component_song_card definition: &id004 id: component_song_card name: SongCard description: Song display card with play button props: - name: song type: Song required: true - name: showArtist type: boolean default: true - name: showAlbum type: boolean default: false events: - name: onPlay payload: songId: string - name: onAddToPlaylist payload: songId: string uses_apis: [] uses_components: [] dependencies: entity_ids: - component_genre_badge - component_section_header - api_get_new_releases - component_song_card - api_get_trending_songs - api_get_genres definitions: - id: component_genre_badge type: component definition: *id001 - id: component_section_header type: component definition: *id002 - id: api_get_new_releases type: api definition: *id003 - id: component_song_card type: component definition: *id004 - id: api_get_trending_songs type: api definition: *id005 - id: api_get_genres type: api definition: *id006 files: to_create: - app//page.tsx reference: [] acceptance: - criterion: Page renders at / verification: Navigate to / - criterion: Data fetching works verification: Check network tab - criterion: Components render correctly verification: Visual inspection