Activiti supports both the standard participant XML (humanPerformer and potentialOwner) as well as activiti extension attributes (assignee, candidate users, candidate groups, etc.). We prefer to use the more standard syntax with the addition of the custom resource feature. This way, the same formal expression syntax can be shared across all participant types (except humanPerformer which is a single user by nature).
<formalExpression>user(sam), user(frank), group(engineering), admins</formalExpression>
where any none prefixed values are assumed to be groups
We intend to extend it to support additional identity types (role, privilege). Our current product supports JSON syntax of the form:
{"users":["user1","user2"],"groups":["group1","group2"],"roles":["role1","role2"],"privileges":["priv1","priv2"]}
This syntax also allows sets of identities as opposed to adding a prefix for each.
Any thoughts? If you agree this syntax is useful, we can open a Jira issue and propose an implementation.