using MessagePack; using System.Text.Json.Serialization; namespace SVSim.EmulatedEntrypoint.Models.Dtos; /// /// gathering_notification on /mypage/refresh — slim "matching established?" notification flag for /// gathering events. Single field carrying either an empty string (no match) or the localized /// "matching established" message (active match). /// /// **Distinct from **, which is what /mypage/index emits under the /// gathering_info key — that DTO carries the viewer's full event participation state /// (has_invite / is_entry). They share a topic ("gathering events") but solve different problems /// and live at different wire keys; don't conflate them. /// /// Consumed unconditionally at MyPageRefreshTask.cs:31: /// jsonData["data"]["gathering_notification"]["matching_established_message"].ToString(). /// [MessagePackObject] public class GatheringNotification { /// Empty string when no match — correct for fresh viewers and idle states. Prod sends "". [JsonPropertyName("matching_established_message")] [Key("matching_established_message")] public string MatchingEstablishedMessage { get; set; } = string.Empty; }