task_id: task_create_page_genre_browse entity_id: page_genre_browse generated_at: '2025-12-18T15:16:50.309059' workflow_version: v001 target: type: page definition: id: page_genre_browse path: /genre/:slug title: Browse Genre description: Browse songs by genre data_needs: - api_id: api_get_songs_by_genre purpose: Load genre songs on_load: true components: - component_genre_header - component_song_card auth: required: false related: models: [] apis: - id: api_get_songs_by_genre definition: &id002 id: api_get_songs_by_genre method: GET path: /api/discover/genres/:slug description: Get songs by genre query_params: limit: integer offset: integer responses: - status: 200 description: List of songs in genre schema: genre: name: string songs: array auth: required: false depends_on_models: - model_genre - model_song components: - id: component_genre_header definition: &id001 id: component_genre_header name: GenreHeader description: Genre browse page header props: - name: genre type: Genre required: true events: [] uses_apis: [] uses_components: [] - id: component_song_card definition: &id003 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_header - api_get_songs_by_genre - component_song_card definitions: - id: component_genre_header type: component definition: *id001 - id: api_get_songs_by_genre type: api definition: *id002 - id: component_song_card type: component definition: *id003 files: to_create: - app/genre/:slug/page.tsx reference: [] acceptance: - criterion: Page renders at /genre/:slug verification: Navigate to /genre/:slug - criterion: Data fetching works verification: Check network tab - criterion: Components render correctly verification: Visual inspection