پیامها
پاکت همهٔ پیامها یک شکل است. نوع ناشناس را validBridgeMessage دور میاندازد.
کیفیت گرافیک
با قابلیت اختیاری graphics-settings-v1 در پروتکل ۲، شِل انتخاب خودکار، کم، متوسط یا زیاد را روی همین دستگاه ذخیره میکند. init.graphicsSettings و graphics.settings مقدار preference، quality و revision را میفرستند. graphics.settings() را پیش از ساخت صحنه بخوان و با graphics.subscribe تغییرات را اعمال کن. graphics.frame(now, active) فقط فریمهای حرکت واقعی را میسنجد؛ هنگام آمادهسازی و تغییر اندازه graphics.reset() را صدا بزن. حالت خودکار کیفیت اولیه را از نشانههای کلی سختافزار تخمین میزند و پس از افت پایدار یک پله کم میکند؛ انتخاب دستی ثابت میماند. graphics.applied کاهش خودکار را با revision فعلی گزارش میکند. اطلاعات سختافزار از پل عبور نمیکند. شوتبال نخستین مصرفکننده است.
پاکت
{ channel: "xuka.game", version, launchId, type, payload }همیشه در دسترس
| جهت | نوع | بار |
|---|---|---|
| بازی → شِل | ready | { capabilities? } |
| بازی → شِل | progress | { moves, elapsedMs } |
| بازی → شِل | completed | پروتکل ۲ { elapsedMs, stateRevision } هم میفرستد |
| بازی → شِل | error | { message } |
| بازی → شِل | toast | { mode, message, sound? } |
| شِل → بازی | init | { session, displayName, capabilities?, presentation?, audioSettings?, graphicsSettings? } |
| شِل → بازی | pause | {} |
| شِل → بازی | resume | {} |
با قابلیتها
| قابلیت | بازی → شِل | شِل → بازی |
|---|---|---|
assets-v1 | assets.resolve، assets.progress {completed,total}، assets.loaded | assets.result |
session-v1 | session.checkpoint، session.resume | session.result |
session-navigation-v1 | session.navigate | session.navigation-result |
purchases-v1 | purchases.list، purchases.buy | purchases.result |
audio-settings-v1 | audio.settings-applied | audio.settings |
جفت درخواست/نتیجه requestId دارد. شکست { ok: false, error: { code, message } } برمیگرداند. بدون مهاجرت قرارداد نوع تازه اضافه نکن.