#import "emsg.steamd"
#import "eresult.steamd"
#import "enums.steamd"
#import "netheader.steamd"

class MsgHdr
{
	EMsg msg = EMsg::Invalid;

	ulong targetJobID = ulong.MaxValue;
	ulong sourceJobID = ulong.MaxValue;
};

class ExtendedClientMsgHdr
{
	EMsg msg = EMsg::Invalid;

	byte headerSize = 36;

	ushort headerVersion = 2;

	ulong targetJobID = ulong.MaxValue;
	ulong sourceJobID = ulong.MaxValue;

	byte headerCanary = 239;

	steamidmarshal ulong steamID;
	int sessionID;
};

class MsgHdrProtoBuf
{
	protomask EMsg msg = EMsg::Invalid;
	int headerLength;

	proto<headerLength> SteamKit2.Internal.CMsgProtoBufHeader proto;
};