sendToGC(appid, msgType, protoBufHeader, payload, callback) {
		let sourceJobId = JOBID_NONE;
		if (typeof callback === 'function') {
			sourceJobId = ++this._currentGCJobID;
			this._jobsGC.add(sourceJobId.toString(), callback);
		}

		this.emit('debug', `Sending ${appid} GC message ${msgType}`);

		let header;
		if (protoBufHeader) {
			msgType = (msgType | PROTO_MASK) >>> 0;
			protoBufHeader.jobid_source = sourceJobId;
			let protoHeader = SteamUserGameCoordinator._encodeProto(Schema.CMsgProtoBufHeader, protoBufHeader);
			header = Buffer.alloc(8);
			header.writeUInt32LE(msgType, 0);
			header.writeInt32LE(protoHeader.length, 4);
			header = Buffer.concat([header, protoHeader]);
		} else {
			header = ByteBuffer.allocate(18, ByteBuffer.LITTLE_ENDIAN);
			header.writeUint16(1); // header version
			header.writeUint64(JOBID_NONE);
			header.writeUint64(sourceJobId);
			header = header.flip().toBuffer();
		}

		this._send({
			msg: EMsg.ClientToGC,
			proto: {
				routing_appid: appid
			}
		}, {
			appid,
			msgtype: msgType,
			payload: Buffer.concat([header, payload])
		});
	}
Send a message to a GC. You should be currently "in-game" for the specified app for the message to make it.
@param {int} appid - The ID of the app you want to send a GC message to
@param {int} msgType - The GC-specific msg ID for this message
@param {object|null} protoBufHeader - An object (can be empty) containing the protobuf header for this message, or null if this is not a protobuf message.
@param {Buffer|ByteBuffer} payload
@param {function} [callback] - If this is a job-based message, pass a function here to get the response