Protocol/Packets/DataPackagePacket.cs

Packet definitions for a DataPackage message in the protocol. Declares DataPackagePacket with a Data payload, and related DTOs DataPackageObject and GameDataPackage that hold version, per-game dictionaries, checksums, and name-to-id maps.

Networking
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; }
}