Skip to content

Špecifikácia jazyka Rea — Časť 5: Referencia (Sekcie 28–30)

Späť na hlavnú špecifikáciu

Stav implementácie: Formát súboru a balenie (28) sú plne implementované. Pozrite REA-CHEATSHEET.md pre podrobný stav.


28. Formát súboru a balenie

Súbor .rea

Čistý textový súbor obsahujúci obsah príbehu. Kódovanie UTF-8. Žiadne metadáta — iba naratívny obsah.

Balík .reast

ZIP archív s nasledujúcou štruktúrou:

text
my-story.reast (ZIP)
├── reast.json          (manifest — povinný)
├── story.rea           (hlavný príbeh — povinný)
├── part2.rea           (voliteľné ďalšie časti)
├── media/              (voliteľné médiá)
│   ├── cover.jpg
│   ├── forest.jpg
│   └── theme.ogg
└── moderator/          (voliteľné inštrukcie pre DM)
    └── notes.md

Manifest reast.json

json
{
  "version": "1.0",
  "title": "Môj príbeh",
  "author": "Meno autora",
  "language": "sk",
  "genre": ["fantasy", "adventure"],
  "parts": ["story.rea", "part2.rea"],
  "media": {
    "1": "media/cover.jpg",
    "2": "media/forest.jpg"
  },
  "sensors": [],
  "permissions": [],
  "allowed_urls": {}
}

Povinné polia manifestu

PoleTypPopis
versionstringVerzia formátu (aktuálne „1.0")
titlestringNázov príbehu
partsstring[]Zoznam .rea súborov v poradí

Voliteľné polia manifestu

PoleTypPopis
authorstringMeno autora
languagestringISO 639-1 kód jazyka
genrestring[]Zoznam žánrov
mediaobjectMapovanie číselných ID na cesty médií
sensorsstring[]Vyžadované hardvérové senzory
permissionsstring[]Vyžadované povolenia zariadenia
allowed_urlsobjectMapovanie aliasov na povolené externé URL
seasonstringSezóna v rámci série
seriesstringNázov série
descriptionstringKrátky popis príbehu
coverstringCesta k obrázku obálky
tagsstring[]Vyhľadávacie tagy

29. Bezpečnostný model

Sandbox

Player vykonáva REA príbehy v izolovanom sandboxe:

  • Žiadny prístup k súborovému systému hostiteľa
  • Žiadne sieťové požiadavky okrem deklarovaných v allowed_urls
  • Limit pamäte a výpočtového času
  • Žiadne spúšťanie natívneho kódu

Validácia

Parser validuje:

  • Veľkosť súboru (max 50 MB pre .reast)
  • Počet súborov v archíve (max 500)
  • Hĺbka vnorenia (max 100 úrovní)
  • Počet iterácií cyklov (max 1000)
  • Cesty súborov (žiadna traversácia)

30. Vstavané funkcie

Matematické

FunkciaPopis
min(a,b)Minimum dvoch hodnôt
max(a,b)Maximum dvoch hodnôt
abs(n)Absolútna hodnota
round(n)Zaokrúhlenie
floor(n)Zaokrúhlenie nadol
ceil(n)Zaokrúhlenie nahor
random()Náhodné číslo 0–1
random(min,max)Náhodné celé číslo v rozsahu

Reťazcové

FunkciaPopis
len(s)Dĺžka reťazca
upper(s)Prevod na veľké písmená
lower(s)Prevod na malé písmená
trim(s)Orezanie bielych znakov
contains(s,sub)Obsahuje podreťazec?
replace(s,a,b)Nahradenie podreťazca
split(s,delim)Rozdelenie na pole

Typové

FunkciaPopis
type(val)Typ hodnoty ako reťazec
number(s)Prevod na číslo
string(n)Prevod na reťazec
bool(val)Prevod na boolean

Poľové

FunkciaPopis
len(arr)Počet prvkov
push(arr,item)Pridanie na koniec
pop(arr)Odstránenie z konca
includes(arr,v)Obsahuje prvok?
join(arr,sep)Spojenie do reťazca
sort(arr)Zoradenie
reverse(arr)Obrátenie poradia
slice(arr,s,e)Výrez poľa

Lokalizačné

FunkciaPopis
plural(n, one=, few=, ...)Pluralizácia podľa jazyka
select(val, k1=v1, k2=v2)Výber podľa hodnoty
ordinal(n)Radová číslovka