Prod /arena/get_challenge_info capture (Season 26):
- reward_step_info.reward_step_list is a Dict<string,string>
({"5":"5","10":"10","15":"15"}), not the List<int> I'd assumed
- max_reward_step is stringified
The previous stub would have parsed at the client (LitJson tolerates the
shape via indexed iteration), but cleaning to match prod exactly.
Also stubs /arena/get_challenge_ranking_history (new endpoint observed
in the same capture). Prod ships {two_pick: [], sealed: []} with no
history populated — empty lists match. Routing smoke added.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
20 lines
669 B
C#
20 lines
669 B
C#
using System.Text.Json.Serialization;
|
|
using MessagePack;
|
|
|
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.Arena;
|
|
|
|
/// <summary>
|
|
/// Wire shape for /arena/get_challenge_ranking_history. Prod returns two empty lists
|
|
/// (two_pick + sealed) per the season-26 capture. Populated history is per-viewer + per-season
|
|
/// ranking snapshots; not tracked locally yet.
|
|
/// </summary>
|
|
[MessagePackObject]
|
|
public class GetChallengeRankingHistoryResponseDto
|
|
{
|
|
[JsonPropertyName("two_pick")] [Key("two_pick")]
|
|
public List<object> TwoPick { get; set; } = new();
|
|
|
|
[JsonPropertyName("sealed")] [Key("sealed")]
|
|
public List<object> Sealed { get; set; } = new();
|
|
}
|