Caught by revive's unused-parameter check. The four error-path tests don't read the request body, so the parameter is properly named _.
Implements the HTTP client for ListenBrainz submit-listens with typed sentinel errors (ErrAuth, ErrPermanent, ErrTransient, *RetryAfterError) so the scrobble worker can branch on response semantics. All 9 httptest- driven tests pass.