package methods // Server -> client SyncPlayerAllSpirits: top-level List7Bit<SpiritInfo>. // // Incremental roster hydration. The build's handler ignores reason and adds/replaces one view entry, // avoiding a single oversized SyncPlayerAllSpirits payload with every character loadout embedded. // // Return body of AskAllSpiritPanelData: top-level List7Bit<SpiritPanelData>. // --- Coloring (dye) requests. Shapes from ClientToGameDelegate.lua serializers 63030977 / // 63166582 / 63045354 (+ reset 63003069, same frame as GmResetFashionColoringSchemeInfos); // all four returns are empty (midToReturnMessageReader) — the client commits locally on err=0. --- // // Ported from the Lyco donor build (2026-09-26). ⛑ These are C2S: the client is the writer, so the // tag/field layout has to match its serializer byte for byte. The handlers decode defensively // (TryGetArgs) because a wrong Int7/Int32 guess must degrade to "dye not persisted", never to a // decode exception on the only path whose job is to answer the INVOKE. // One plan slot of a fashion: coloringType -> colorCfgId (Auto.FashionColoringInfo).