task_id: task_create_component_artist_roster entity_id: component_artist_roster generated_at: '2025-12-18T17:43:33.732960' workflow_version: v003 target: type: component definition: id: component_artist_roster name: ArtistRoster props: - name: artists type: Artist[] required: true description: List of signed artists - name: isOwner type: boolean required: false default: false description: Show management controls - name: emptyMessage type: string required: false default: No artists signed yet description: Message when roster is empty events: - name: onRemoveArtist payload: string description: Fires when remove clicked, payload is artist ID - name: onArtistClick payload: string description: Fires when artist clicked uses_apis: [] uses_components: [] internal_state: - removingArtistId variants: - grid - list related: models: [] apis: [] components: [] dependencies: entity_ids: [] definitions: [] files: to_create: - app/components/ArtistRoster.tsx reference: [] acceptance: - criterion: Component renders without errors verification: Import and render in test - criterion: Props are typed correctly verification: TypeScript compilation - criterion: Events fire correctly verification: Test event handlers