Files
GaCy-GO/docs/comic-dessert-current-contract.md
T
2026-10-28 18:54:43 +07:00

3.3 KiB

ComicDessert current Client contract

Proven data and preview entry

ComicDessertCatalog.json retains all four Cycle rows and fifteen Level rows captured from the current Client assembly. The catalog preserves 64-bit TextID hashes, requires a complete two-table capture, rejects duplicate IDs, and checks that each cycle references existing levels. It includes the ordinary cycle levels and the Greedy Feast and Long Tail configuration paths; those paths alone do not prove that their gameplay is implemented.

Current assembly SHA256: 4aa08a0706f27d2cf9951b61920c179140ece9ea94f7e34422c18e46922939b6.

The native GetData consumer at 0xd4dbc60 reads response offset +0x3c into _SetUpProgress (0xd4dbcf0). The protobuf getter for FNIAAEAFGDE reads that same offset (0x1fc3dcd0). Progress synchronization at 0x16c8dab0 writes the cycle ID at +0x18; the actual CurrentCycleId getter (0x16c8d980) reads +0x18. HNOCFELOAFJ supplies the completed-level collection.

The root implementation responds to GetData with the resource's first cycle, without fabricated completed levels, upgrades, currency or rewards. This is preview state, not a working cooking-run implementation. A zero cycle ID led to the Date dialog view-model failure observed before this response existed.

Request family

These are the actual current command-table names, paired from the live concrete NetworkService method signatures. Numeric IDs are documentation of the current table, not aliases to register in source.

Operation Request Response Current IDs
GetData MGCJKEEOPEC LPLCFFGANFC 10215 → 10208
StartLevel MECNLNGKDHA CIDKLLMAIGP 10204 → 10220
FinishLevel CBMLONMBLNE PEFBGOANFHP 10216 → 10209
UpgradeDevice DONCOCHMEBC NLJOCMODADF 10207 → 10206
ChangeCycle JLBJPLGJBFF NBIBDLLLCLH 10213 → 10212
StartLongTail FHJMEFOOOAB PIGILFCALBA 10211 → 10218
FinishLongTail CGHKNHAJBGL CMHFBLDNPGB 10219 → 10210

The concrete NetworkService has OFHMHPKEECI(UInt32) returning IPromise<CIDKLLMAIGP> and <StartLevelAsync>b__2_0(CIDKLLMAIGP). StartLevel request carries level_id at tag 4. Its response additionally has HOGEMAHFFEF (uint32, tag 1) and NLMEEEKBPKO (string, tag 2), plus retcode at tag 12. The purpose and required values of the uint/string have not been proven. A retcode-only success must not be advertised as working gameplay.

Next bounded capture

tools/comic_level_start_metadata.lua is inactive outside scripts/. It reads the already constructed NetworkService and LevelStartFlowService, plus the actual Start response type obtained from the NetworkService return type. It records at most eight methods/properties per non-battle heartbeat and invokes no gameplay or scene methods.

After capture, resolve current-process MethodHandles through record +8, verify the resulting entry lies inside the current GameAssembly, and disassemble the StartLevel consumer and response getters. Handles from an exited Client cannot be reused. Map the string/uint consumers before implementing a successful Start response or persistent cooking run.

No Start/Finish/Upgrade/ChangeCycle/LongTail implementation, deployment, runtime draw, save mutation or gameplay confirmation was performed by the entry audit.