package methods // // 趴趴 (Bubble / SocialMedia) contracts for build 4229938. // Why this file exists: the Bubble panel opens but is empty. BubbleBasePanelStore.lua:32 // calls NewBubbleMgr.AskPostList() on open, which fills postDict from nothing but // AskMomentsPostSimpleInfos (63452251, NewBubbleMgr.lua:1061-1065). The server used // to answer that INVOKE with an empty list, so BuildPostList() had nothing to build and // every tab rendered zero rows. // What the server actually owns here is only the post instance: an id, which // SocialMediaConfig row it is (PostConfigId), when it was published and how it is // flagged. Text, images, video and comment bodies live in tables the client already has // (SocialMediaConfig 55 rows / SocialMediaCommentConfig 231 rows), so this payload // is 55 short rows instead of the whole social graph. // Field order is the wire layout and must not be reordered: UxSerializer writes public fields in // declaration order and the client's own writer // (RPCSerializeAuto.lua:8310-8329 Auto.WritePostSimpleClientInfo) emits them in this same // order. The IL2CPP dump declares PostSimpleClientInfo as an empty class, so the Lua writer is the // only usable source here (see hard rule 22: treat it as the field list, verify by client log). // // // One comment the player wrote under a post = Auto.WritePostPlayerCommentClientInfo // (RPCSerializeAuto.lua:8302). Only used by the comment flow (T1-39); the list is empty today. // // // SyncOssBucketInfo(64833344) — where the client should fetch the images referenced by object key. // This is the missing half of the feature: every 趴卜 post sets // store.bucketName = SocialMediaConfig.ImageOSS[1] (NewBubbleMgr.lua:883-889), and that // bare key ("Bubble/xxx.png") only becomes a download URL through AliOssManager, whose // _bucketName / _endpoint are filled by nothing but this packet // (AliOssManager.SetOssBucketInfo(bucketName, endpoint), called from // GameToClientImpl.SyncOssBucketInfo). Nothing in GameAssembly.dll contains an // aliyuncs.com / oss-cn- string, so there is no compiled-in default — until the server // pushes this, every image request has nowhere to go and only text renders. // ⛑ The presence byte is a guess: UXRPCMethodArgs64833344 carries a single info field // and the official frame has never been captured. If the client logs deserialize failed for // 64833344, flip this contract to Inline = true (no 0xFF marker) — that is the only // difference between the two readings. // // // One row of AskMomentsPostSimpleInfos' answer = Auto.WritePostSimpleClientInfo. // Read back as a list element, so it is not inline: it carries the 0xFF presence byte. // // // Request body of AskMomentsMarkRead(63132673) / AskMomentsPostInfos(63879443): a list of wanted // post ids. Both count generations turn up in this family (the reference branch needed an Int32 // twin for each), so here only the 7-bit variant is declared — reading it is best-effort and any // failure falls back to "no ids", which is safe because every id list is a filter, never a proof. //