Using swimlanes in workflow

Workflow swimlanes are assigned the domain-qualified ID of a principal (which can be either a user or a group). If it is set to a user, then a transition of a workflow into that swimlane will result in a task being assigned to a specific user. If it is set to a group, then a transition of a workflow into that swimlane will result in a task being assigned to a group where none of the members of the group are assigned anything. Rather, the task appears in a list of available tasks that any of the members of the group can elect to work on.

We call this a "pooled task". The idea is that members of the group can see the list of available things to work on. They pick one and "claim" it. By claiming it, the task is then assigned to that specific user. The user can work on it and can "unclaim" it to release it back to the group pool. They can also "delegate" the task to someone else in the group as a means of passing the task around between members of a common team.
All of this is available within the main user interface. You'll also find that workflow history keeps a record of all task transitions, assignments, claims and so forth.
To assign to a user, you need to put the user's domain qualified ID in there. You can find this on the Members page if you drill down into a specific member. Their Principal ID is shown. The value looks like "<domainId>/<principalId>". You should copy that full value and use it within the workflow JSON.
To assign to a group, you need to put the team's group domain qualified ID in there. You can find this on the Teams page if you drill down into a specific team. On the overview page, you'll see the team's backing group ID. It is similar in that it has the structure "<domainId>/<principalId>". You should copy this value into the workflow JSON to have swimlanes work with one of your teams.