ExplicitBadgeRenderer
Renders the explicit-content badge. One class serves every surface the badge appears on — the episode single page, archive cards, the [benecaster_episodes] list, the [benecaster_player] title strip, and the [benecaster_explicit_badge] shortcode — so the three badge filters apply everywhere without each caller re-implementing them.
Stateless and not container-bound. Instantiate it directly wherever you need it; there is no registered service to resolve and nothing to inject. Templates and shortcodes both do exactly that.
The class also owns the resolution step. resolve_mode() collapses the episode override against the show default and applies benecaster_explicit_badge_mode, so callers get a single settled value rather than having to know that an episode set to inherit needs its show consulted.