public Player( string name, string email, Status playerStatus, int personalNumber, string?nickname, string[] roles, PlayerItem?playerItem = null, string?uniqueId = null, bool?hidden = null) { Name = name ?? throw new ArgumentNullException(nameof(name)); Email = email; // allow null PlayerStatus = playerStatus; PersonalNumber = (personalNumber != 0 ? personalNumber : playerItem?.GetPersonalNumber()) ?? 0; Nickname = string.IsNullOrEmpty(nickname) ? name : nickname; Roles = roles ?? new string[0]; // nullable fields PlayerItem = playerItem; Hidden = hidden ?? false; UniqueId = uniqueId ?? Guid.NewGuid().ToString(); }