message CMsgSOSingleObject {
	optional fixed64 owner = 1;
	optional int32 type_id = 2;
	optional bytes object_data = 3;
	optional fixed64 version = 4;
}

message CMsgSOMultipleObjects {
	message SingleObject {
		optional int32 type_id = 1;
		optional bytes object_data = 2;
	}

	optional fixed64 owner = 1;
	repeated .CMsgSOMultipleObjects.SingleObject objects = 2;
	optional fixed64 version = 3;
}

message CMsgSOCacheSubscribed {
	message SubscribedType {
		optional int32 type_id = 1;
		repeated bytes object_data = 2;
	}

	optional fixed64 owner = 1;
	repeated .CMsgSOCacheSubscribed.SubscribedType objects = 2;
	optional fixed64 version = 3;
}

message CMsgSOCacheUnsubscribed {
	optional fixed64 owner = 1;
}

message CMsgSOCacheSubscriptionCheck {
	optional fixed64 owner = 1;
	optional fixed64 version = 2;
}

message CMsgSOCacheSubscriptionRefresh {
	optional fixed64 owner = 1;
}

message CMsgSOCacheVersion {
	optional fixed64 version = 1;
}

message CMsgAccountDetails {
	optional bool valid = 1;
	optional string account_name = 2;
	optional bool public_profile = 4;
	optional bool public_inventory = 5;
	optional bool vac_banned = 6;
	optional bool cyber_cafe = 7;
	optional bool school_account = 8;
	optional bool free_trial_account = 9;
	optional bool subscribed = 10;
	optional bool low_violence = 11;
	optional bool limited = 12;
	optional bool trusted = 13;
	optional uint32 package = 14;
	optional fixed32 time_cached = 15;
	optional bool account_locked = 16;
}

