Referensi manifest (ralyoo.json)
Dihasilkan dari MANIFEST_SCHEMA di @ralyoo/sdk 1.1.0, skema yang sama yang dipakai ralystudioo lint dan registry. Penjelasan tiap field berbahasa Inggris.
Skema JSON untuk editor: /schema/ralyoo.json. Taruh di baris pertama manifest supaya editor memberi saran dan peringatan:
{ "$schema": "https://docs.ralyoo.com/schema/ralyoo.json" }
| Field | Tipe | Arti | |
|---|---|---|---|
id |
wajib | string; min. 3 karakter, maks. 40 karakter | Permanent identifier: lowercase letters, digits, and dashes. Part of the bundle URL and of the storage key, so it never changes after the first upload. |
version |
wajib | string | Version of the game (semver). Every upload needs a new one; a published version is immutable. |
sdk |
wajib | string; maks. 40 karakter | SDK versions the game runs on, as a semver range, e.g. ">=1.1 <2". Checked against the platform at upload and before the game is mounted. |
title |
wajib | teks, atau teks per bahasa ({ "id": "…" }); maks. 22 karakter |
Name shown in the catalog, the countdown, and the menu. One line in the lobby. |
description |
wajib | teks, atau teks per bahasa ({ "id": "…" }); maks. 100 karakter |
One or two short sentences under the title: two lines in the lobby. |
controls |
teks, atau teks per bahasa ({ "id": "…" }); maks. 60 karakter |
How it is played, in a few words, e.g. "Joystick, dorong, nempel". | |
badge |
teks, atau teks per bahasa ({ "id": "…" }); maks. 24 karakter |
Optional short tag on the catalog card, e.g. "Demo SDK". | |
author |
wajib | objek | Who made the game. |
author.name |
wajib | string; maks. 60 karakter | |
author.url |
string; maks. 200 karakter | ||
players |
wajib | objek | How many players the game supports (the platform seats 1–4). |
players.min |
wajib | integer; 1–4 | |
players.max |
wajib | integer; 1–4 | |
pillars |
wajib | daftar: "konsol" atau "rahasia"; min. 1 isi |
Which Ralyoo pillar the game belongs to: "konsol" (the phone is a gamepad) or "rahasia" (the phone shows secret information). |
locales |
wajib | daftar: string; min. 1 isi | Languages the game ships, default first. Localized manifest texts must cover the default. |
media |
wajib | objek | Catalog artwork: paths inside the bundle, and the game colour. |
media.icon |
wajib | string; maks. 120 karakter | Square icon used as a mask (one colour, transparent background). SVG preferred. |
media.cover |
wajib | string; maks. 120 karakter | Cover image, 16:9, at least 1280×720. |
media.color |
wajib | string | Game colour as #rrggbb; must read on the dark host background (≥ 3:1). |
tier |
"free" |
Access tier. Only "free" for now. | |
entry |
objek | Entry points. The host entry is an ES module; controllers are declarative. | |
entry.host |
"main.js" |
||
entry.controller |
"declarative" |
||
inputs |
daftar: "buttons" atau "dpad" atau "joystick" atau "cards" atau "vote" |
Controller widgets the game uses (shown to players before they pick it). | |
permissions |
daftar: "vibrate" |
Device capabilities the game asks for. | |
offline |
boolean | True when the game needs nothing but its own bundle (always, for now). | |
opening |
"platform" atau "game" |
"platform" (default): the platform shows "3·2·1·GAS!". "game": the game runs its own opening. | |
theme |
objek | Colours, frame, and labels of the host menu while the game is on screen. Colours below the contrast floor are ignored as a set. | |
theme.panel |
string | ||
theme.accent |
string | ||
theme.text |
string | ||
theme.frame |
string; maks. 120 karakter | ||
theme.labels |
objek |
Field yang tidak dikenal di akar manifest hanya menghasilkan peringatan, supaya manifest untuk SDK yang lebih baru tetap terbaca.