I think @mgetka makes some good points. I'm afraid I don't have enough detail to provide an authoritative answer. From what you've said, I think you could do this with roles, application registrations, groups or even user actions. You could for example, have three different groups of roles (they are just strings, and you can add more than one to a user):
...
team1_member
team2_member
...
position1_holder
position2_holder
...
access_perm_1
access_perm_2
...
I guess it also depends on how you want to consume these. Are you going to be looking up the user via FusionAuth API calls? Or will you want this embedded in a JWT for portable claims?
In the former case (API calls) you can make multiple calls and learn a lot about the user.
In the latter case, even though you have the JWT populate lambda, it is limited to what is on the user and registration objects.
So you couldn't, for example, know the group name (though I believe you have the group id) in the lambda, so you couldn't put it in the JWT. More on this issue.