@startuml team-create-activity title CR-Core — Create Team (activity diagram) start :Player runs /team create [visibility]; if (Name already in use?) then (yes) :Reply "team name already taken"; stop else (no) endif if (Tag already in use?) then (yes) :Reply "team tag already taken"; stop else (no) endif if (Player already in a team?) then (yes) :Reply "you already belong to a team"; stop else (no) endif if (Color valid?) then (no) :Reply "unknown color"; stop else (yes) endif :Create Team(id = randomUUID, name, tag, color, leaderId = playerId, visibility); note right: visibility defaults to PRIVATE\nif not specified :Add player as TeamMember(role = LEADER); :Persist via TeamRepository.save(team); :Reply "team created"; stop @enduml