Block a user
TASK: Implement replacement planner for played playlist tracks
TASK: Implement Plex webhook endpoint with validation
TASK: Persist generated playlist session atomically
TASK: Add category-parallel generation orchestrator
TASK: Implement global dedupe allocator across categories
TASK: Implement per-category all-tracks pass generator
TASK: Implement per-category favorites pass generator
TASK: Implement candidate query providers for LRA/LRP/LOF/random
TASK: Formalize playlist rule engine contracts
TASK: Add ingestion unit and integration test suite
TASK: Build incremental sync and drift reconciliation
TASK: Add process pool for CPU-heavy transformation paths
TASK: Add partitioned ingestion execution model
TASK: Build initial full-library import workflow
TASK: Implement Plex API client and auth configuration
TASK: Build schema and repository fixtures for tests
TASK: Build typed async repository layer
TASK: Implement PlaybackEvent entity with idempotency key
TASK: Implement PlaylistSession and PlaylistEntry entities
TASK: Implement Track and Category SQLModel entities