Code/Protocol/Packets/DataPackagePacket.cs

Protocol packet types for a "DataPackage" message. Defines APPacket-derived DataPackagePacket containing a DataPackageObject, and supporting types GameDataPackage and the container with version and per-game dictionaries mapping names to ids and a checksum.

using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace APLib.Protocol.Packets;

public sealed class DataPackagePacket : APPacket
{
	public override string Command => "DataPackage";
	
	[JsonPropertyName( "data" )]
	public DataPackageObject Data { get; set; }
}

public sealed class DataPackageObject
{
	[JsonPropertyName( "version" )]
	public int Version { get; set; }
	
	[JsonPropertyName( "games" )]
	public Dictionary<string, GameDataPackage> Games { get; set; }
}

public sealed class GameDataPackage
{
	[JsonPropertyName( "checksum" )]
	public string Checksum { get; set; }
	
	[JsonPropertyName( "item_name_to_id" )]
	public Dictionary<string, long> ItemNameToId { get; set; }
	
	[JsonPropertyName( "location_name_to_id" )]
	public Dictionary<string, long> LocationNameToId { get; set; }
}