A tree is a group or track of rewards or “fruits” in a branching pattern. You must unlock these fruits in the branching order (you can pick branches but you can’t skip fruits in the branch to get to a nicer fruit).
A tree defines how a user gains experiences and levels up to earn skill points to spend on fruits. configurable by the same options as a grove.
Trees always exist in a “Grove”.
A grove is a group of one or more trees that share xp (growth). A grove combines xp sources. for all trees in the grove.
This means
A server can have multiple groves.
fruits of labour (rewards), are “harvested” by spending skill points. rewards can be configured to result in different perks (e.g. a role with certain permissions, or access to a locked channel).
Should figure out a way to set up external rewards that could integrate with other discord bots or permissions or features in an external game (e.g. minecraft roles with luckperms, custom skins in a cs2 community server, though these external rewards may be left for third party devs. maybe simplify by just having a defined webhook / messaging system that people can build plugins around for their own apps).