- Move isAgeRestrictedMessage to messageMetadata.ts alongside isAgeRestrictedMetadata — single source of truth for NSFW logic - Replace || chain of channel IDs with a Set for O(1) lookup - Import isAgeRestrictedMessage in capture layer instead of inline Co-Authored-By: Claude <noreply@anthropic.com>