private ModelUtilities.GruntEncryptedMessage CreateMessageForGrunt(Grunt grunt, Grunt targetGrunt, byte[] message)
        {
            List <string> path = _client.ApiGruntsByIdPathByCidGet(grunt.Id ?? default, targetGrunt.Id ?? default).ToList();

            path.Reverse();
            ModelUtilities.GruntEncryptedMessage     finalMessage = null;
            ModelUtilities.GruntEncryptedMessageType messageType  = ModelUtilities.GruntEncryptedMessageType.Tasking;
            foreach (string guid in path)
            {
                Grunt thisGrunt = _client.ApiGruntsGuidByGuidGet(guid);
                finalMessage = ModelUtilities.GruntEncryptedMessage.Create(
                    thisGrunt,
                    message,
                    messageType
                    );
                message     = Common.CovenantEncoding.GetBytes(JsonConvert.SerializeObject(finalMessage));
                messageType = ModelUtilities.GruntEncryptedMessageType.Routing;
            }
            return(finalMessage);
        }