Files
SVSimServer/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/Arena/GetChallengeRankingHistoryResponseDto.cs
gamer147 ac2f31103d fix(arena): match prod get_challenge_info wire shape; stub ranking_history
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>
2026-05-31 13:21:44 -04:00

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();
}