Skip to main content
Glama

klyo games: publish HTML5 browser games

Fix a game's catalogue listing

klyo_fix_game
Destructive

Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelves, mood, game languages, screen layout, score limit, stage, store links, content questionnaire and age. It does NOT touch the package: replacing files is klyo_update_game, which runs the game through the safety check again. A typo in the description should not cost that, which is why these are two tools. LANGUAGES (since 2026-09-18): the description has TWO versions in tags: … in English (REQUIRED, at least 25 words) and … in Polish (the owner gets +40 XP for it). Put versions in other languages here only if the developer wrote them personally; what YOU translate goes through klyo_game_translate as a proposal the owner approves in the studio. klyo does not translate on its own account. jezyk_tekstu says which language the name, tagline and controls are in. Pass ONLY the fields you change: everything else stays as it is, and the fields you pass replace the current text.

Examples: • Add to my game how to play it on a phone • Fix the description of lantern-thief and add an English version • Set the round length to 2 to 5 minutes in slice-rush

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
etapNoWhich stage the game is at: `w_budowie` = in development (still changing), `demo` (a finished slice of a bigger game), `gotowa` = finished (the full game). ASK THE DEVELOPER, do not guess. With `w_budowie` and `demo` players see a badge in the catalogue.
opisNoDescription for players in TWO versions, each in its own tag: <en>…</en> in English (REQUIRED, AT LEAST 25 words; without it the refusal `opis_en_wymagany`) and <pl>…</pl> in Polish (the owner gets +40 XP for it). In each version: what you do in the game (first sentence), what a round looks like and how long it takes, who it is for, how it differs from similar games; Google needs about 220 words, and a shorter description means the game page is NOT indexed. Write like a person writing for players: normal punctuation, no “dive into” or “discover”, no lists or bold, no HTML tags. Other languages (<de>, <es>…) only when the developer REALLY wrote them personally; translations from the assistant go through klyo_game_translate as proposals to approve.
seksNoLegacy field: Nudity, sexual or suggestive content. Prefer the `ankieta` object with all the questions.
slugYesGame address on the account, for example lantern-thief (from klyo_my_games).
tagiNoCatalogue shelves separated by commas, optional: logiczne (puzzle), zrecznosciowe (arcade), platformowe (platformers), przygodowe (adventure), na-telefon (for phones), klasyki (classics). Unknown ones are skipped without an error.
hasloNoTagline under the name: one sentence up to 80 characters PER LANGUAGE, no full stop at the end, plain text or one version per tag (<en>...</en><pl>...</pl>, each version counted on its own): what the game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`).
nazwaNoONLY the game's name, up to 30 characters PER LANGUAGE (as in Google Play and the App Store): “2048 Blockfall”, “Neon Coil: Family Arena”. One language: plain text in `jezyk_tekstu`. Several: one version per tag, <en>Kulki: Glass Garden</en><pl>Kulki: Szklany Ogrod</pl>, and the 30-character limit counts each version on its own. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand.
ukladNoGame layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone) or `oba` = both, the game adapts when the screen rotates.
strachNoLegacy field: Scenes that may frighten children. Prefer the `ankieta` object with all the questions.
ankietaNoContent questionnaire (as in the app stores): ten yes/no questions about what IS in the game. The answers decide the age label on the game page, whether ads are shown next to the game and whether the game goes into the klyo games apps in the stores. ASK THE DEVELOPER about each one: answers that do not match the content are a reason for taking the game down. Give all of them when you change it.
etap_dniNoOnly with `demo` and `w_budowie`: after how many days (7 or 30) we remind the developer to change the stage; after the grace period a game without a decision leaves the catalogue.
nastrojeNoWhat the player is in the mood for, separated by commas, from the list: 5-minut, jeden-kciuk, rusz-glowa, adrenalina, klasyki, spokojne (5-minut = five-minute fun, jeden-kciuk = one thumb, rusz-glowa = brain teaser, adrenalina = adrenaline, klasyki = classics, spokojne = calm). This is NOT the genre: the genre says what the game IS, the mood says what you need to feel like playing it. Omit if you do not know.
wiek_minNoPlayer age ACCORDING TO THE DEVELOPER: it can only RAISE the label above the questionnaire result (a game for older players by choice), never lower it. Above 12 the game does not go into the store apps. Omit when the questionnaire is enough.
jezyki_uiNoLanguages of the MENU AND TEXT INSIDE THE GAME, not of the description. Players choose which languages they want to see games in, so this decides who the game is shown to. A game without a single word (only numbers and shapes, like 2048): only ["bez-tekstu"] (no text). Do not guess: ask the owner or omit it.
kategoriaNoGame genre from the list, UP TO THREE separated by commas (for example “platformowa,przygodowa” = platformer, adventure). Pick the ones that really describe the game, not every one that fits, or the filter stops meaning anything. “inne” (other) only when nothing fits. At least one, otherwise the refusal `rodzaj_spoza_listy`. The values are Polish identifiers, for example zrecznosciowa = arcade, logiczna = puzzle and logic, dopasuj-3 = match-3, obrona-wiezy = tower defense, strzelanka = shooter, wyscigi = racing, planszowa = board game, karcianka = card game, slowna = word game. Allowed: zrecznosciowa, logiczna, ukladanki, klocki, dopasuj-3, kulki, pamiec, sudoku, pasjans, fizyczna, escape, biegacz, jazda, zarzadzanie, tekstowa, rysowanie, dwie-osoby, platformowa, przygodowa, akcja, strzelanka, walka, wyscigi, sportowa, strategiczna, obrona-wiezy, symulacja, farma, rpg, roguelike, przetrwanie, horror, karcianka, planszowa, mahjong, slowna, quiz, edukacyjna, muzyczna, klikacz, ubieranki, gotowanie, szukanie, io, inne.
wynik_maxNoThe highest possible score in one round: a guard against inflated scores on the leaderboard. Omit it when the game has no score or no upper limit.
sklep_playNoAddress of the same game in Google Play (https://play.google.com/store/apps/details?id=…), if it is also an app. A badge on the game page and in share texts; empty = no badge.
wulgaryzmyNoLegacy field: Strong or offensive language. Prefer the `ankieta` object with all the questions.
czas_partiiNoHow long one round takes (“2-5 minutes”), in the `jezyk_tekstu` language.
sklep_appleNoAddress of the same game in the App Store (https://apps.apple.com/…), if it is also an iPhone app.
jezyk_tekstuNoCode of the language the name, tagline and controls are written in (pl, en, de, fr, es, pt, it, ru, uk, tr). ALWAYS give it. The description has its own <en> (required) and <pl> (+40 XP) versions, see `opis`. Other languages are translated by the owner's assistant through klyo_game_translate (proposals the owner approves in the studio); klyo does not translate on its own account.
uklad_pionowyNoLegacy field: true = portrait game. Prefer `uklad`.
sterowanie_dotykNoHow to play ON A PHONE, short and concrete (“swipe across the screen”), in the `jezyk_tekstu` language.
przemoc_rysunkowaNoLegacy field: Cartoon or abstract violence, no blood. Prefer the `ankieta` object with all the questions.
przemoc_realistycznaNoLegacy field: Realistic violence, blood or cruelty. Prefer the `ankieta` object with all the questions.
sterowanie_klawiaturaNoHow to play ON A COMPUTER (“arrow keys and space”), in the `jezyk_tekstu` language.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / haslo / description
      Previous value: -"Tagline under the name: one sentence up to 80 characters, no full stop at the end: what the game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."New value: +"Tagline under the name: one sentence up to 80 characters PER LANGUAGE, no full stop at the end, plain text or one version per tag (<en>...</en><pl>...</pl>, each version counted on its own): what the game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."
    • changedInput schema / properties / haslo / maxLength
      Previous value: -80New value: +900
    • changedInput schema / properties / nazwa / description
      Previous value: -"ONLY the game's name, up to 30 characters (as in Google Play and the App Store), in ONE language (see `jezyk_tekstu`): “2048 Blockfall”, “Neon Coil: Family Arena”. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand."New value: +"ONLY the game's name, up to 30 characters PER LANGUAGE (as in Google Play and the App Store): “2048 Blockfall”, “Neon Coil: Family Arena”. One language: plain text in `jezyk_tekstu`. Several: one version per tag, <en>Kulki: Glass Garden</en><pl>Kulki: Szklany Ogrod</pl>, and the 30-character limit counts each version on its own. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand."
    • changedInput schema / properties / nazwa / maxLength
      Previous value: -30New value: +400
  2. Changed36 schema fields changed
    • changedInput schema / properties / ankieta / description
      Previous value: -"Ankieta treści (jak w sklepach z aplikacjami): dziesięć pytań tak/nie o to, co JEST w grze. Z odpowiedzi wynika etykieta wieku na stronie gry, czy przy grze stoją reklamy i czy gra wchodzi do aplikacji klyo games w sklepach. ZAPYTAJ TWÓRCĘ o każde — odpowiedzi niezgodne z treścią to powód zdjęcia gry. Podaj komplet, gdy zmieniasz."New value: +"Content questionnaire (as in the app stores): ten yes/no questions about what IS in the game. The answers decide the age label on the game page, whether ads are shown next to the game and whether the game goes into the klyo games apps in the stores. ASK THE DEVELOPER about each one: answers that do not match the content are a reason for taking the game down. Give all of them when you change it."
    • changedInput schema / properties / ankieta / properties / hazard / description
      Previous value: -"Hazard, losowe skrzynki lub symulacja hazardu / Gambling, loot boxes or simulated gambling"New value: +"Gambling, loot boxes or simulated gambling"
    • changedInput schema / properties / ankieta / properties / interakcje / description
      Previous value: -"Rozmowy lub interakcje z innymi graczami / Chat or interaction with other players"New value: +"Chat or interaction with other players"
    • changedInput schema / properties / ankieta / properties / lokalizacja / description
      Previous value: -"Gra prosi o lokalizację, kamerę lub mikrofon / The game asks for location, camera or microphone"New value: +"The game asks for location, camera or microphone"
    • changedInput schema / properties / ankieta / properties / przemoc_realistyczna / description
      Previous value: -"Przemoc realistyczna, krew, okrucieństwo / Realistic violence, blood or cruelty"New value: +"Realistic violence, blood or cruelty"
    • changedInput schema / properties / ankieta / properties / przemoc_rysunkowa / description
      Previous value: -"Przemoc rysunkowa lub umowna, bez krwi / Cartoon or abstract violence, no blood"New value: +"Cartoon or abstract violence, no blood"
    • changedInput schema / properties / ankieta / properties / seks / description
      Previous value: -"Nagość, treści seksualne lub sugestywne / Nudity, sexual or suggestive content"New value: +"Nudity, sexual or suggestive content"
    • changedInput schema / properties / ankieta / properties / strach / description
      Previous value: -"Sceny, które mogą przestraszyć dzieci / Scenes that may frighten children"New value: +"Scenes that may frighten children"
    • changedInput schema / properties / ankieta / properties / uzywki / description
      Previous value: -"Alkohol, tytoń, narkotyki / Alcohol, tobacco or drugs"New value: +"Alcohol, tobacco or drugs"
    • changedInput schema / properties / ankieta / properties / wulgaryzmy / description
      Previous value: -"Wulgaryzmy lub obraźliwy język / Strong or offensive language"New value: +"Strong or offensive language"
    • changedInput schema / properties / ankieta / properties / zakupy / description
      Previous value: -"Zakupy w grze / In-game purchases"New value: +"In-game purchases"
    • changedInput schema / properties / czas_partii / description
      Previous value: -"Ile trwa jedna partia („2-5 minut”), w języku `jezyk_tekstu`."New value: +"How long one round takes (“2-5 minutes”), in the `jezyk_tekstu` language."
    • changedInput schema / properties / etap / description
      Previous value: -"Na jakim etapie jest gra: `w_budowie` (jeszcze się zmienia), `demo` (skończony kawałek większej gry), `gotowa` (pełna gra). ZAPYTAJ TWÓRCĘ, nie zgaduj. Przy `w_budowie` i `demo` gracz widzi znaczek w katalogu."New value: +"Which stage the game is at: `w_budowie` = in development (still changing), `demo` (a finished slice of a bigger game), `gotowa` = finished (the full game). ASK THE DEVELOPER, do not guess. With `w_budowie` and `demo` players see a badge in the catalogue."
    • changedInput schema / properties / etap_dni / description
      Previous value: -"Tylko przy `demo` i `w_budowie`: za ile dni (7 albo 30) przypominamy o zmianie etapu; po karencji gra bez decyzji schodzi z katalogu."New value: +"Only with `demo` and `w_budowie`: after how many days (7 or 30) we remind the developer to change the stage; after the grace period a game without a decision leaves the catalogue."
    • changedInput schema / properties / haslo / description
      Previous value: -"Hasło pod nazwą — jedno zdanie do 80 znaków, bez kropki na końcu: czym gra jest, słowami, których gracz szuka („klasyczne sudoku offline za darmo”). Stoi pod nazwą jako H2 i w tytule karty w Google. OBOWIĄZKOWE przy wydaniu — bez niego serwer odmawia (`brak_hasla`)."New value: +"Tagline under the name: one sentence up to 80 characters, no full stop at the end: what the game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."
    • changedInput schema / properties / jezyk_tekstu / description
      Previous value: -"Kod języka, w którym napisano nazwę, hasło i sterowanie (pl, en, de, fr, es, pt, it, ru, uk, tr). Podaj ZAWSZE. Opis ma własne wersje <en> (wymagana) i <pl> (+40 XP) — patrz `opis`. Pozostałe języki tłumaczy asystent właściciela przez klyo_game_translate (propozycje, które właściciel przyjmuje w studiu); klyo nie tłumaczy na własnym koncie."New value: +"Code of the language the name, tagline and controls are written in (pl, en, de, fr, es, pt, it, ru, uk, tr). ALWAYS give it. The description has its own <en> (required) and <pl> (+40 XP) versions, see `opis`. Other languages are translated by the owner's assistant through klyo_game_translate (proposals the owner approves in the studio); klyo does not translate on its own account."
    • changedInput schema / properties / jezyki_ui / description
      Previous value: -"Języki MENU I NAPISÓW W SAMEJ GRZE — nie języka opisu. Gracz ustawia, w jakich językach chce widzieć gry, więc od tego zależy, komu gra się pokaże. Gra bez ani jednego słowa (same liczby, kształty — jak 2048): wyłącznie [\"bez-tekstu\"]. Nie zgaduj — zapytaj właściciela albo pomiń."New value: +"Languages of the MENU AND TEXT INSIDE THE GAME, not of the description. Players choose which languages they want to see games in, so this decides who the game is shown to. A game without a single word (only numbers and shapes, like 2048): only [\"bez-tekstu\"] (no text). Do not guess: ask the owner or omit it."
    • changedInput schema / properties / kategoria / description
      Previous value: -"Rodzaj gry z listy, DO TRZECH po przecinku (np. „platformowa,przygodowa”). Wybierz te, które naprawdę opisują grę — nie wszystkie pasujące, bo filtr przestaje cokolwiek znaczyć. „inne” tylko gdy nic nie pasuje. Co najmniej jeden — inaczej odmowa (`rodzaj_spoza_listy`). Dozwolone: zrecznosciowa, logiczna, ukladanki, klocki, dopasuj-3, kulki, pamiec, sudoku, pasjans, fizyczna, escape, biegacz, jazda, zarzadzanie, tekstowa, rysowanie, dwie-osoby, platformowa, przygodowa, akcja, strzelanka, walka, wyscigi, sportowa, strategiczna, obrona-wiezy, symulacja, farma, rpg, roguelike, przetrwanie, horror, karcianka, planszowa, mahjong, slowna, quiz, edukacyjna, muzyczna, klikacz, ubieranki, gotowanie, szukanie, io, inne."New value: +"Game genre from the list, UP TO THREE separated by commas (for example “platformowa,przygodowa” = platformer, adventure). Pick the ones that really describe the game, not every one that fits, or the filter stops meaning anything. “inne” (other) only when nothing fits. At least one, otherwise the refusal `rodzaj_spoza_listy`. The values are Polish identifiers, for example zrecznosciowa = arcade, logiczna = puzzle and logic, dopasuj-3 = match-3, obrona-wiezy = tower defense, strzelanka = shooter, wyscigi = racing, planszowa = board game, karcianka = card game, slowna = word game. Allowed: zrecznosciowa, logiczna, ukladanki, klocki, dopasuj-3, kulki, pamiec, sudoku, pasjans, fizyczna, escape, biegacz, jazda, zarzadzanie, tekstowa, rysowanie, dwie-osoby, platformowa, przygodowa, akcja, strzelanka, walka, wyscigi, sportowa, strategiczna, obrona-wiezy, symulacja, farma, rpg, roguelike, przetrwanie, horror, karcianka, planszowa, mahjong, slowna, quiz, edukacyjna, muzyczna, klikacz, ubieranki, gotowanie, szukanie, io, inne."
    • changedInput schema / properties / nastroje / description
      Previous value: -"Na co gracz ma ochotę — po przecinku, z listy: 5-minut, jeden-kciuk, rusz-glowa, adrenalina, klasyki, spokojne. To NIE jest rodzaj gry: rodzaj mówi, czym gra JEST, nastrój — na co trzeba mieć ochotę. Pomiń, jeśli nie wiesz."New value: +"What the player is in the mood for, separated by commas, from the list: 5-minut, jeden-kciuk, rusz-glowa, adrenalina, klasyki, spokojne (5-minut = five-minute fun, jeden-kciuk = one thumb, rusz-glowa = brain teaser, adrenalina = adrenaline, klasyki = classics, spokojne = calm). This is NOT the genre: the genre says what the game IS, the mood says what you need to feel like playing it. Omit if you do not know."
    • changedInput schema / properties / nazwa / description
      Previous value: -"SAMA nazwa gry, do 30 znaków (jak w Google Play i App Store), w JEDNYM języku (patrz `jezyk_tekstu`): „2048 Blockfall”, „Neon Coil: Family Arena”. BEZ hasła i zwrotów z wyszukiwarki („zagraj za darmo online”, „free online”) — to odrzucamy (`nazwa_z_haslem`), bo z nazwy powstaje adres gry i tytuł w Google w obu językach. Nie zaczynaj od cudzej marki."New value: +"ONLY the game's name, up to 30 characters (as in Google Play and the App Store), in ONE language (see `jezyk_tekstu`): “2048 Blockfall”, “Neon Coil: Family Arena”. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand."
    • changedInput schema / properties / opis / description
      Previous value: -"Opis dla gracza w DWÓCH wersjach, każda po swoim znaczniku: <en>…</en> po angielsku (WYMAGANA, MINIMUM 25 słów; bez niej odmowa `opis_en_wymagany`) i <pl>…</pl> po polsku (za nią właściciel dostaje +40 XP). W każdej wersji: co się robi w grze (pierwsze zdanie), jak wygląda partia i ile trwa, dla kogo jest, czym różni się od podobnych; do Google potrzeba około 220 słów — krótszy opis znaczy, że strona gry NIE wchodzi do wyszukiwarki. Pisz jak człowiek dla graczy: zwykła interpunkcja, bez „zanurz się / odkryj”, bez list i pogrubień, bez znaczników HTML. Inne języki (<de>, <es>…) tylko wtedy, gdy twórca NAPRAWDĘ napisał je sam; tłumaczenia od asystenta idą przez klyo_game_translate jako propozycje do przyjęcia."New value: +"Description for players in TWO versions, each in its own tag: <en>…</en> in English (REQUIRED, AT LEAST 25 words; without it the refusal `opis_en_wymagany`) and <pl>…</pl> in Polish (the owner gets +40 XP for it). In each version: what you do in the game (first sentence), what a round looks like and how long it takes, who it is for, how it differs from similar games; Google needs about 220 words, and a shorter description means the game page is NOT indexed. Write like a person writing for players: normal punctuation, no “dive into” or “discover”, no lists or bold, no HTML tags. Other languages (<de>, <es>…) only when the developer REALLY wrote them personally; translations from the assistant go through klyo_game_translate as proposals to approve."
    • changedInput schema / properties / przemoc_realistyczna / description
      Previous value: -"Starsze pole: Przemoc realistyczna, krew, okrucieństwo. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Realistic violence, blood or cruelty. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / przemoc_rysunkowa / description
      Previous value: -"Starsze pole: Przemoc rysunkowa lub umowna, bez krwi. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Cartoon or abstract violence, no blood. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / seks / description
      Previous value: -"Starsze pole: Nagość, treści seksualne lub sugestywne. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Nudity, sexual or suggestive content. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / sklep_apple / description
      Previous value: -"Adres tej samej gry w App Store (https://apps.apple.com/…), jeśli jest też aplikacją na iPhone’a."New value: +"Address of the same game in the App Store (https://apps.apple.com/…), if it is also an iPhone app."
    • changedInput schema / properties / sklep_play / description
      Previous value: -"Adres tej samej gry w Google Play (https://play.google.com/store/apps/details?id=…), jeśli jest też aplikacją. Odznaka na stronie gry i w tekstach udostępnienia; pusto = brak odznaki."New value: +"Address of the same game in Google Play (https://play.google.com/store/apps/details?id=…), if it is also an app. A badge on the game page and in share texts; empty = no badge."
    • changedInput schema / properties / slug / description
      Previous value: -"Adres gry na koncie, np. lantern-thief (z klyo_my_games)."New value: +"Game address on the account, for example lantern-thief (from klyo_my_games)."
    • changedInput schema / properties / sterowanie_dotyk / description
      Previous value: -"Jak grać NA TELEFONIE, krótko i konkretnie („przesuń palcem po ekranie”), w języku `jezyk_tekstu`."New value: +"How to play ON A PHONE, short and concrete (“swipe across the screen”), in the `jezyk_tekstu` language."
    • changedInput schema / properties / sterowanie_klawiatura / description
      Previous value: -"Jak grać NA KOMPUTERZE („strzałki i spacja”), w języku `jezyk_tekstu`."New value: +"How to play ON A COMPUTER (“arrow keys and space”), in the `jezyk_tekstu` language."
    • changedInput schema / properties / strach / description
      Previous value: -"Starsze pole: Sceny, które mogą przestraszyć dzieci. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Scenes that may frighten children. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / tagi / description
      Previous value: -"Półki katalogu po przecinku, opcjonalnie: logiczne, zrecznosciowe, platformowe, przygodowe, na-telefon, klasyki. Nieznane pomijamy bez błędu."New value: +"Catalogue shelves separated by commas, optional: logiczne (puzzle), zrecznosciowe (arcade), platformowe (platformers), przygodowe (adventure), na-telefon (for phones), klasyki (classics). Unknown ones are skipped without an error."
    • changedInput schema / properties / uklad / description
      Previous value: -"Układ gry: poziom (jak ekran komputera), pion (jak telefon) albo oba — gra dopasowuje się do obrotu ekranu."New value: +"Game layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone) or `oba` = both, the game adapts when the screen rotates."
    • changedInput schema / properties / uklad_pionowy / description
      Previous value: -"Starsze pole: true = gra pionowa. Wolimy `uklad`."New value: +"Legacy field: true = portrait game. Prefer `uklad`."
    • changedInput schema / properties / wiek_min / description
      Previous value: -"Wiek graczy WEDŁUG TWÓRCY — może tylko PODNIEŚĆ etykietę ponad wynik ankiety (gra dla starszych z wyboru), nigdy obniżyć. Powyżej 12 gra nie wchodzi do aplikacji w sklepach. Pomiń, gdy ankieta wystarcza."New value: +"Player age ACCORDING TO THE DEVELOPER: it can only RAISE the label above the questionnaire result (a game for older players by choice), never lower it. Above 12 the game does not go into the store apps. Omit when the questionnaire is enough."
    • changedInput schema / properties / wulgaryzmy / description
      Previous value: -"Starsze pole: Wulgaryzmy lub obraźliwy język. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Strong or offensive language. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / wynik_max / description
      Previous value: -"Najwyższy możliwy wynik w jednej partii — zapora przed nabijaniem punktów na tablicy. Pomiń, gdy gra nie ma wyniku albo górnej granicy."New value: +"The highest possible score in one round: a guard against inflated scores on the leaderboard. Omit it when the game has no score or no upper limit."
  3. Changed2 schema fields changed
    • changedInput schema / properties / jezyk_tekstu / description
      Previous value: -"Kod języka, w którym napisano nazwę, hasło i sterowanie (pl, en, de, fr, es, pt, it, ru, uk, tr). Podaj ZAWSZE. Opis ma własne wersje <en> (wymagana) i <pl> (+40 XP) — patrz `opis`. Tłumaczenia maszynowe są wstrzymane; asystent nie tłumaczy sam na języki, których twórca nie napisał."New value: +"Kod języka, w którym napisano nazwę, hasło i sterowanie (pl, en, de, fr, es, pt, it, ru, uk, tr). Podaj ZAWSZE. Opis ma własne wersje <en> (wymagana) i <pl> (+40 XP) — patrz `opis`. Pozostałe języki tłumaczy asystent właściciela przez klyo_game_translate (propozycje, które właściciel przyjmuje w studiu); klyo nie tłumaczy na własnym koncie."
    • changedInput schema / properties / opis / description
      Previous value: -"Opis dla gracza w DWÓCH wersjach, każda po swoim znaczniku: <en>…</en> po angielsku (WYMAGANA, MINIMUM 25 słów; bez niej odmowa `opis_en_wymagany`) i <pl>…</pl> po polsku (za nią właściciel dostaje +40 XP). W każdej wersji: co się robi w grze (pierwsze zdanie), jak wygląda partia i ile trwa, dla kogo jest, czym różni się od podobnych; do Google potrzeba około 220 słów — krótszy opis znaczy, że strona gry NIE wchodzi do wyszukiwarki. Pisz jak człowiek dla graczy: zwykła interpunkcja, bez „zanurz się / odkryj”, bez list i pogrubień, bez znaczników HTML. Inne języki (<de>, <es>…) tylko wtedy, gdy twórca NAPRAWDĘ napisał je sam — klyo nie tłumaczy maszynowo."New value: +"Opis dla gracza w DWÓCH wersjach, każda po swoim znaczniku: <en>…</en> po angielsku (WYMAGANA, MINIMUM 25 słów; bez niej odmowa `opis_en_wymagany`) i <pl>…</pl> po polsku (za nią właściciel dostaje +40 XP). W każdej wersji: co się robi w grze (pierwsze zdanie), jak wygląda partia i ile trwa, dla kogo jest, czym różni się od podobnych; do Google potrzeba około 220 słów — krótszy opis znaczy, że strona gry NIE wchodzi do wyszukiwarki. Pisz jak człowiek dla graczy: zwykła interpunkcja, bez „zanurz się / odkryj”, bez list i pogrubień, bez znaczników HTML. Inne języki (<de>, <es>…) tylko wtedy, gdy twórca NAPRAWDĘ napisał je sam; tłumaczenia od asystenta idą przez klyo_game_translate jako propozycje do przyjęcia."
  4. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true, and the description's mutation semantics align with that (no contradiction). The description adds substantial behavior beyond annotations: patch semantics ('everything else stays as it is'), the language policy (required <en> of at least 25 words, +40 XP for <pl>, translations going through klyo_game_translate as owner-approved proposals, klyo not translating on its own account), and the refusal behaviors (nazwa_z_haslem, brak_hasla, opis_en_wymagany). This is rich, non-redundant behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every section earns its place: the core purpose and sibling distinction are front-loaded, the language rules are critical for a multilingual catalog, and the examples at the end are genuinely illustrative. It is well-paragraphed with clear topic breaks. Slightly dense, but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 26-parameter tool with nested objects and no output schema, the description covers the most important cross-cutting behaviors: patch semantics, the content-vs-package split, the translation pipeline, and the language-tag requirements. The schema handles per-parameter detail. The only minor gap is that the description doesn't describe return values, but for a patch-style update tool this is acceptable given the schema richness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 26 parameters in detail. The description does add one cross-parameter behavior — the 'pass ONLY the fields you change' replace semantics — but it does not add per-parameter meaning beyond the schema. Baseline 3 is appropriate when the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Change the CONTENT of a game that is already in the catalogue') and enumerates the affected fields (name, tagline, description, controls, round length, genre, shelves, mood, languages, layout, score limit, stage, store links, questionnaire, age). It explicitly names the sibling it is not (klyo_update_game for the package), so an agent can select it correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly distinguishes this tool from klyo_update_game ('It does NOT touch the package: replacing files is klyo_update_game'), explains WHY they are separate ('A typo in the description should not cost that'), and adds the critical patch semantics ('Pass ONLY the fields you change'). It also gives three concrete usage examples that show when the tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.