# 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` and `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.