I've been pondering the way language works as an attribute in community.
Right now there are two attributes to highlight: NSFW and "only moderators can post".
There is an active pull request to add "only the home instance can allow posting", sort of a variation on the "only moderators" can post: https://github.com/LemmyNet/lemmy/pull/3889
Which is the 20 source file changes for the new feature.
I envision that new attributes will keep coming up, and I see need for an additonal one to make cleaner the [email protected] feature.
Observation
A general 'attributes' table could be created like the existing language table. And then duplicate the logic in Community Edit for picking the languages associated with a community... except you are picking the attributes associated with a community.
This could possibly cut down on the amount of lemmy_server code changes for each new attribute?
I envision in the future there will be 'members only can post' (subscribed only), and variations of NSFW that people want to implement... and it could be done by not having to add new PostgreSQL columns to tables... and just a general scheme to insert a new registered attribute ID...
Been happening to a lot of communities. Good morning to you! https://www.youtube.com/watch?v=g9ixvD0_CmM