I suggest adding an additional requirement field to styles, individually, inside of designs. This field could just be for advancements, which would do most of the functionality, but could also include player statistics if it were to be more expansive. Fundamentally, it is important to remember advancements can be hidden, so they'd just be the perfect check field to tap onto player activity, such as checks for having killed a mob, used an item, visited a place, crafting an item, etc., without the need for any mod code (asides from checking for the advancement of course).
Even with the design on the Styling Table, or with it being a default design, a player needs to have met the additional requirement (advancement) to be allowed to see the option to set such design.
It should be set it per style, so you can have additional requirements for styles in default designs, where you just need to get the advancement and it appears in your Styling Table, or you can have Styles that both need to depend on having the appropriate Design Item and an advancement
That second option would allow for stuff such as finding a bestiary Design item that gives you Styles for every mob you beat (even if you beat it before finding that Design item), rather than they just being always available in the Styling Table.
Some other possibilities for this Feature Request include:
Designs Items that send you on an adventure quest tree with advancements;
Rewards for new, modded and vanilla advancements;
Mob and boss trophy designs;
Reward designs for visiting biomes and structures;
Joke/Easter Egg styles that get unlocked after a player doing a weirdly specific game actions.
These are just some of the possibilities of this feature. I truly believe this is the single most important Feature Request I've submitted for this mod.
I suggest adding an additional requirement field to styles, individually, inside of designs. This field could just be for advancements, which would do most of the functionality, but could also include player statistics if it were to be more expansive. Fundamentally, it is important to remember advancements can be hidden, so they'd just be the perfect check field to tap onto player activity, such as checks for having killed a mob, used an item, visited a place, crafting an item, etc., without the need for any mod code (asides from checking for the advancement of course). Even with the design on the Styling Table, or with it being a default design, a player needs to have met the additional requirement (advancement) to be allowed to see the option to set such design. It should be set it per style, so you can have additional requirements for styles in default designs, where you just need to get the advancement and it appears in your Styling Table, or you can have Styles that both need to depend on having the appropriate Design Item and an advancement That second option would allow for stuff such as finding a bestiary Design item that gives you Styles for every mob you beat (even if you beat it before finding that Design item), rather than they just being always available in the Styling Table. Some other possibilities for this Feature Request include: