The discussion and tag slugs are handled in very different ways.
The discussion slugs have less constraints, because they aren't actually used as identifiers. The discussion ID is used in the URL, and the slug is just for cosmetic/SEO and can change when the discussion is renamed. The slug must be generated automatically and a same discussion title should always result in the same slug. For this reason this slug is generated using Laravel's
Str::slug() method server-side.