---
title: "OP.GG Champion Build Builderin kirjoitusopas"
description: "Kirjoittaminen, raw Markdown, validointi ja palautuminen -viite AI-avustajille ja selainagenteille."
language: fi
canonical: https://op.gg/fi/lol/user-guides/help
---

# OP.GG Champion Build Builderin kirjoitusopas

> Ohjeet AI-avustajille ja selainagenteille, jotka selittävät tai käyttävät OP.GG Champion Build Builderia.

Tämä on nykyisen builderin Suomi-kielinen koneellisesti luettava opas.

- Kanoninen HTML: https://op.gg/fi/lol/user-guides/help
- Markdown-URL: https://op.gg/fi/lol/user-guides/help.md
- Uuden buildin URL: https://op.gg/fi/lol/user-guides/new
- Build-listan URL: https://op.gg/fi/lol/user-guides

## Valitse kirjoitustila

- Käytä oletuksena lomakeeditoria.
- Käytä raw Markdown -tilaa vain, kun käyttäjä pyytää lähdeformaattia tai suuri tekstimuutos tarvitsee suoraa hallintaa.
- Tarkista olemassa oleva luonnos ja automaattitallennuksen tila ennen mallin lataamista tai sisällön korvaamista.
- Tarkista aina Esikatselu ja sen validointitila ennen julkaisemista.

## Tunnistautuminen ja luonnoksen säilyminen

- Luonnos tallennetaan nykyiseen selaimeen, ei tiliisi.
- Sama luonnos ei näy automaattisesti toisessa selaimessa tai laitteessa.
- Kun julkaiset onnistuneesti, tämän oppaan luonnos poistetaan tästä selaimesta.
- Raaka Markdown on edistynyt tila dokumenttirakenteen suoraan muokkaamiseen.
- Jos raakasisällössä on ongelma, et ehkä voi palata lomakemuotoon ennen kuin korjaat diagnostiikan.
- Summoner Card on kiinteä sisältö eikä sitä voi muokata suoraan raw Markdown -tilassa.
- Älä käsittele localStoragea suoraan äläkä ohita julkaisemiseen vaadittua tunnistautumista.

## Luo build lomakeeditorilla

1. Avaa yllä listattu täsmälleen oikea Uusi build -URL.
2. Tarkista, palautettiinko olemassa oleva selainluonnos, ja varmista automaattitallennuksen tila.
3. Aseta champion, otsikko, positio ja patch.
4. Lisää tarkoitus- tai mukautetut tunnisteet ja valinnainen Summoner Card, jos niitä pyydetään.
5. Käytä + Lisää lohko tai /-komentoa tarvittavien lohkojen lisäämiseen.
6. Täytä kaikki lohkot ja järjestä ne lukujärjestykseen.
7. Avaa Esikatselu ja tarkista jokainen validointivirhe sekä lopullinen julkinen dokumentti.
8. Julkaise vain käyttäjän pyytämässä laajuudessa ja vain, kun tunnistautuminen ja validointi onnistuvat.

## Tuetut lohkotyypit

| Käyttäjälle näkyvä nimi | Kanoninen tyyppi | Raakadirektiivi |
| --- | --- | --- |
| Teksti | `text` | `CommonMark paragraph` |
| Otsikko 1 | `heading1` | `##` |
| Otsikko 2 | `heading2` | `###` |
| Item-buildi | `ItemBuild` | `opgg lol ItemBuild` |
| Riimubuildi | `RuneBuild` | `opgg lol RuneBuild` |
| Klassinen riimubuildi | `ClassicRuneBuild` | `opgg lol ClassicRuneBuild 1` |
| Klassinen mastery-buildi | `ClassicMasteryBuild` | `opgg lol ClassicMasteryBuild 1` |
| Taitojärjestys | `SkillOrder` | `opgg lol SkillOrder` |
| Kutsutaidot | `SummonerSpells` | `opgg lol SummonerSpells` |
| Tier-lista | `TierList` | `opgg lol TierList` |
| Viidakkoreittien suunnittelija | `JungleRoute` | `opgg lol JungleRoute` |
| Linkin esikatselu | `LinkEmbed` | `opgg lol LinkEmbed 1` |
| Ottelutietue | `MatchRecord` | `opgg lol MatchRecord 1` |
| YouTube | `YouTube` | `opgg YouTube` |
| Summoner Card | `SummonerCard` | Vain luku -kapseli; lisää lomakkeesta |

Älä esitä opaque- tai hr-lohkoja tavallisina käyttäjän lisättävissä olevina lohkoina. SummonerCard on kiinteä kapseli, ei toistettava runkolohko.

## Raw Markdown -dokumentin muoto

Builderin lähde on Markdown-muotoon upotettu OP.GG-dokumenttimuoto. Se eroaa CommonMark-muodosta, jota käytetään tämän ohjesivun välittämiseen.

```markdown
# Ahri mid -buildi

---
GameMode: LIVE
Champion: Ahri
Position: mid
Patch: latest
> Esimerkkipainotteinen buildi
---

## Miten peliä pelataan

Selitä suunnitelma tähän.
```

- Ensimmäinen H1 on buildin otsikko.
- Metatietosektio sijoitetaan ---erottimien väliin heti H1:n jälkeen.
- GameMode on RANKED tai CLASSIC ja valitsee dokumentin asset-joukon.
- Position-arvon on oltava top, jungle, mid, adc tai support.
- Näkyvät H2- ja H3-otsikot vastaavat builderin heading1- ja heading2-lohkoja.

## Asset-viitteet

Käytä lähdetokeneissa vakaita Riot ID -tunnisteita locale-kohtaisten näyttönimien sijaan.

```text
<@lol-champion-103>
<@lol-item-1054>
<@lol-spell-4>
<@lol-rune-8005>
<@lol-shard-5008>
<@lol-skill-103-Q>
```

- Champion-, item-, spell-, rune- ja shard-tokeneissa tarvitaan positiiviset kokonaislukuiset ID:t.
- Skill-tokeneissa tarvitaan positiivinen champion ID sekä isot Q, W, E tai R.
- Älä käytä vanhoja opgg://-assettilinkkejä uudessa lähteessä.
- Nimet ja ikonit ratkaistaan renderöinnissä nykyisen kielen ja valitun patchin perusteella.

## Rakenteinen lohkoviite

Alla olevat kelvolliset esimerkit luodaan nykyisellä serialisaattorilla. Säilytä tiiviin listan järjestys, lainausmerkeissä olevat merkkijonot, numeeriset ID:t ja isot enum-arvot muuttumattomina.

### Item-buildi (`ItemBuild`)

- Käytä kun: aloitus-, saapas-, ydin- ja tilannekohtaisia item-valintoja varten
- Käyttöpolku: + Lisää lohko → Item-buildi, tai kirjoita / tyhjään kappaleeseen ja valitse Item-buildi.
- Raakadirektiivi: `opgg lol ItemBuild`
- Serialisoidut kentät järjestyksessä: `starter, boots, core, situational`
- Kirjoitusvaatimus: käytä serialisaattorin kanssa yhteensopivia taulukoita, joissa on positiiviset item ID:t
- Onnistumistila: neljä item-ryhmää renderöityy serialisoidussa järjestyksessään
- Yleinen virhe: vaadittu kenttä, joka ei ole taulukko, tekee fenceä virheelliseksi; epäpositiiviset ID:t tai näyttönimet eivät välttämättä ratkea asseteiksi

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol ItemBuild latest
starter: [1054]
boots: [3020]
core: [6655,3089]
situational: []
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol ItemBuild latest
starter: 1054
boots: []
core: []
situational: []
```
````

### Riimubuildi (`RuneBuild`)

- Käytä kun: rune-polkujen, valittujen runejen ja stat shardien jakamiseen
- Käyttöpolku: + Lisää lohko → Riimubuildi, tai kirjoita / tyhjään kappaleeseen ja valitse Riimubuildi.
- Raakadirektiivi: `opgg lol RuneBuild`
- Serialisoidut kentät järjestyksessä: `primaryStyle, secondaryStyle, primaryRunes, secondaryRunes, shards`
- Kirjoitusvaatimus: pidä serialisaattorin luomat numeeriset path-enum-arvot ja positiiviset rune- tai shard-ID:t
- Onnistumistila: molemmat polut, rune-valinnat ja shardit renderöityvät
- Yleinen virhe: vaadittu rune-lista, joka ei ole taulukko, tekee fenceä virheelliseksi; epäkanoniset tyylit tai viitteet eivät välttämättä renderöidy tarkoitetulla tavalla

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol RuneBuild latest
primaryStyle: 8000
secondaryStyle: 8100
primaryRunes: [8005,8009,9103,8014]
secondaryRunes: [8126,8141]
shards: [5008,5010,5001]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol RuneBuild latest
primaryStyle: 8000
secondaryStyle: 8100
primaryRunes: 8005
secondaryRunes: []
shards: []
```
````

### Klassinen riimubuildi (`ClassicRuneBuild`)

- Käytä kun: Classicin 30-paikkaisen rune-sivun jakamiseen
- Käyttöpolku: + Lisää lohko → Klassinen riimubuildi, tai kirjoita / tyhjään kappaleeseen ja valitse Klassinen riimubuildi.
- Raakadirektiivi: `opgg lol ClassicRuneBuild 1`
- Serialisoidut kentät järjestyksessä: `ruleset, slots`
- Kirjoitusvaatimus: käytä CLASSIC_1-sääntöjoukkoa, jossa on enintään 30 slotti- ja rune-ID-paria; jokaisen slotin on oltava yksilöllinen kokonaisluku väliltä 1–30, jokaisen rune-ID:n oltava positiivinen kokonaisluku, ja jokaisen runen on vastattava slotin tyyppiä
- Onnistumistila: jokainen valittu Classic-rune renderöityy slotissa, jonka tyyppi vastaa sitä
- Yleinen virhe: tuematon sääntöjoukko, duplikaattislotit, rune, joka on sijoitettu yhteensopimattomaan slotityyppiin, tai tuntematon JADE-rune estää julkaisemisen

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol ClassicRuneBuild 1
ruleset: CLASSIC_1
slots: [[1,775253],[10,775317]]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol ClassicRuneBuild 1
ruleset: CLASSIC_1
slots: [[1,5273],[1,5317]]
```
````

### Klassinen mastery-buildi (`ClassicMasteryBuild`)

- Käytä kun: Classic mastery -puiden jakamiseen
- Käyttöpolku: + Lisää lohko → Klassinen mastery-buildi, tai kirjoita / tyhjään kappaleeseen ja valitse Klassinen mastery-buildi.
- Raakadirektiivi: `opgg lol ClassicMasteryBuild 1`
- Serialisoidut kentät järjestyksessä: `ruleset, ranks`
- Kirjoitusvaatimus: käytä CLASSIC_1-sääntöjoukkoa, jossa on enintään 60 mastery-ID- ja rank-paria; jokainen positiivinen mastery ID voi esiintyä kerran, rankien on oltava kokonaislukuja väliltä 1–5 eivätkä ne saa ylittää kunkin masteryn enimmäisrankia, esivaatimusten on täytyttävä, eikä kokonaismäärä saa ylittää 30 pistettä
- Onnistumistila: valitut rankit renderöityvät Classic mastery -puissa
- Yleinen virhe: tuematon sääntöjoukko, duplikaattimastery, virheellinen rank, tai tuntematon JADE-mastery estää julkaisemisen

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol ClassicMasteryBuild 1
ruleset: CLASSIC_1
ranks: [[512,4],[514,2]]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol ClassicMasteryBuild 1
ruleset: CLASSIC_1
ranks: [[511,1],[511,4]]
```
````

### Taitojärjestys (`SkillOrder`)

- Käytä kun: skill-prioriteetin ja tasokohtaisen järjestyksen näyttämiseen
- Käyttöpolku: + Lisää lohko → Taitojärjestys, tai kirjoita / tyhjään kappaleeseen ja valitse Taitojärjestys.
- Raakadirektiivi: `opgg lol SkillOrder`
- Serialisoidut kentät järjestyksessä: `priority, order`
- Kirjoitusvaatimus: prioriteetti ja järjestys voivat sisältää vain Q, W, E ja R
- Onnistumistila: prioriteetti ja sekvenssi renderöityvät tallennettuun järjestykseen
- Yleinen virhe: tuntematon skill-avain tekee fenceä virheelliseksi

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol SkillOrder latest
priority: [Q,E,W,R]
order: [Q,E,W,Q,Q,R]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol SkillOrder latest
priority: [Q,X,W,R]
order: [Q,X]
```
````

### Kutsutaidot (`SummonerSpells`)

- Käytä kun: suositellun kahden spellin jakamiseen
- Käyttöpolku: + Lisää lohko → Kutsutaidot, tai kirjoita / tyhjään kappaleeseen ja valitse Kutsutaidot.
- Raakadirektiivi: `opgg lol SummonerSpells`
- Serialisoidut kentät järjestyksessä: `spells`
- Kirjoitusvaatimus: käytä taulukkoa, jossa on positiiviset kokonaislukuiset spell-ID:t
- Onnistumistila: valittu spell-pari renderöityy
- Yleinen virhe: spells-arvo, joka ei ole taulukko, tekee fenceä virheelliseksi; epäpositiiviset ID:t tai näyttönimet eivät välttämättä ratkea spilleiksi

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol SummonerSpells latest
spells: [4,12]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol SummonerSpells latest
spells: 4
```
````

### Tier-lista (`TierList`)

- Käytä kun: champion-, item- tai rune-assettien rankkaamiseen nimetyillä riveillä
- Käyttöpolku: + Lisää lohko → Tier-lista, tai kirjoita / tyhjään kappaleeseen ja valitse Tier-lista.
- Raakadirektiivi: `opgg lol TierList`
- Serialisoidut kentät järjestyksessä: `schemaVersion, segment, assetType, preset, rows, unranked, ```, ## Synergy, > Teamfight impact, ```opgg lol TierList latest, schemaVersion, segment, index, ```, ### Best, Reliable pairings, ```opgg lol TierList latest, schemaVersion, segment, index, ```, ### Good, ```opgg lol TierList latest, schemaVersion, segment`
- Kirjoitusvaatimus: vähintään yksi kelvollinen assetti on sijoitettava tieriin
- Onnistumistila: rivit, paletin ID:t, kuvaukset ja rankatut assetit renderöityvät järjestyksessä
- Yleinen virhe: tuntematon enum, väri-ID, duplikaattiassetti tai tyhjä rankattu alue estää julkaisemisen

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol TierList latest
schemaVersion: 1
segment: START
assetType: CHAMPION
preset: SYNERGY
rows: [[1,[79]],[4,[75]]]
unranked: []
```

## Synergy

> Teamfight impact

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 0
```

### Best

Reliable pairings

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 1
```

### Good

```opgg lol TierList latest
schemaVersion: 1
segment: END
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol TierList latest
schemaVersion: 1
segment: START
assetType: CHAMPION
preset: CUSTOM
rows: [[99,[103]],[2,[]]]
unranked: []
```

## Matchups

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 0
```

### S

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 1
```

### A

```opgg lol TierList latest
schemaVersion: 1
segment: END
```
````

### Viidakkoreittien suunnittelija (`JungleRoute`)

- Käytä kun: jungle-reittien kuvaamiseen ja vertailuun
- Käyttöpolku: + Lisää lohko → Viidakkoreittien suunnittelija, tai kirjoita / tyhjään kappaleeseen ja valitse Viidakkoreittien suunnittelija.
- Raakadirektiivi: `opgg lol JungleRoute`
- Serialisoidut kentät järjestyksessä: `map, title, plans`
- Kirjoitusvaatimus: vähintään yhdessä suunnitelmassa on oltava kaksi tai useampia käyntejä; syötetyn saapumisajan on kasvettava tiukasti
- Onnistumistila: järjestetty reitti näkyy minimapissa ja vierailulistassa
- Yleinen virhe: ei-kasvava syötetty saapumisaika tekee reitistä keskeneräisen

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol JungleRoute latest
map: 1
title: "Blue-side opening"
plans: [[PLAN_A,"Primary route",[[5,CLEAR,95],[4,CLEAR,120]]],[PLAN_B,"Alternative route",[]]]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol JungleRoute latest
map: 1
title: "Opening"
plans: [[PLAN_A,"Primary",[[5,CLEAR,120,""],[4,CLEAR,95,""]]],[PLAN_B,"Alternative",[]]]
```
````

### Linkin esikatselu (`LinkEmbed`)

- Käytä kun: tuetun ulkoisen sivun näyttämiseen esikatseluna
- Käyttöpolku: + Lisää lohko → Linkin esikatselu, tai kirjoita / tyhjään kappaleeseen ja valitse Linkin esikatselu.
- Raakadirektiivi: `opgg lol LinkEmbed 1`
- Serialisoidut kentät järjestyksessä: `url`
- Kirjoitusvaatimus: käytä yhtä syntaktisesti kelvollista absoluuttista http- tai https-URL:ia
- Onnistumistila: tarkoitettu linkkiesikatselu avautuu
- Yleinen virhe: turvaton tai virheellinen URL tekee fenceä virheelliseksi; varmista ratkaistu esikatselu erikseen

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol LinkEmbed 1
url: "http://www.op.gg/"
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol LinkEmbed 1
url: "javascript:alert(1)"
```
````

### Ottelutietue (`MatchRecord`)

- Käytä kun: viitattaessa yhteen osallistujaan tietystä OP.GG-ottelusta
- Käyttöpolku: + Lisää lohko → Ottelutietue, tai kirjoita / tyhjään kappaleeseen ja valitse Ottelutietue.
- Raakadirektiivi: `opgg lol MatchRecord 1`
- Serialisoidut kentät järjestyksessä: `match`
- Kirjoitusvaatimus: regionin, game ID:n, positiivisen aikaleiman ja participant ID:n 1–32 on oltava kelvollisia
- Onnistumistila: tarkoitettu pelaaja ja ottelutieto latautuvat
- Yleinen virhe: tuematon region, virheellinen game ID, aikaleima tai participant ID tekee fenceä virheelliseksi

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg lol MatchRecord 1
match: [KR,"KR_1234567890",1785141570000,4]
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg lol MatchRecord 1
match: [KR,"KR_1234567890",1785141570000,0]
```
````

### YouTube (`YouTube`)

- Käytä kun: olennaisen YouTube-videon upottamiseen
- Käyttöpolku: + Lisää lohko → YouTube, tai kirjoita / tyhjään kappaleeseen ja valitse YouTube.
- Raakadirektiivi: `opgg YouTube`
- Serialisoidut kentät järjestyksessä: `videoId`
- Kirjoitusvaatimus: käytä tuettua YouTube video ID:tä
- Onnistumistila: tarkoitettu videosoitin latautuu
- Yleinen virhe: virheellinen tai tuematon video ID estää julkaisemisen

Serialisaattorin luoma kelvollinen esimerkki:

````markdown
```opgg YouTube
videoId: M7lc1UVf-VE
```
````

Yleinen virheellinen esimerkki:

````markdown
```opgg YouTube
videoId: not-a-video-id
```
````

## Esikatselun ja julkaisun validointi

Käsittele näitä koodeja sisäisinä tunnisteina. Selitä palautustoimi käyttäjälle sen sijaan, että paljastat vain koodin.

| Sisäinen koodi | Merkitys | Palautus |
| --- | --- | --- |
| `EMPTY_TITLE` | Buildin otsikko on tyhjä. | Anna otsikko. |
| `EMPTY_BODY` | Julkaistavaa runkosisältöä ei ole. | Lisää tekstiä tai tuettu lohko. |
| `EMPTY_TIER_LIST` | Tier Listissä ei ole rankattua assettia. | Siirrä vähintään yksi assetti tieriin. |
| `INCOMPLETE_JUNGLE_ROUTE` | Yhdelläkään reitillä ei ole kahta tai useampaa käyntiä, tai syötetty saapumisaika ei kasva. | Täydennä yksi reitti ja korjaa sen saapumisaikojen järjestys. |
| `INCOMPATIBLE_GAME_MODE_BLOCK` | Lohko ei ole käytettävissä dokumentin valitussa game modessa. | Vaihda GameMode tai korvaa lohko tällä modella tuetulla. |
| `INVALID_CLASSIC_BUILD` | Classic-rune- tai mastery-asettelu rikkoo Classic-sääntöjä. | Classic-runeissa sovita jokainen rune slotin tyyppiin. Classic masteryeissa pidä jokainen rank masteryn enimmäisrajan sisällä, täytä esivaatimukset ja jaa enintään 30 pistettä. |
| `INVALID_MATCH_RECORD_FENCE` | MatchRecord-viite on virheellinen. | Liitä kelvollinen OP.GG-ottelulinkki ja ratkaise se uudelleen. |
| `INVALID_LINK_EMBED_FENCE` | LinkEmbed-viite on virheellinen. | Käytä kelvollista URL:ia tuetussa muodossa. |
| `INVALID_YOUTUBE_FENCE` | YouTube-viite on virheellinen. | Käytä tuettua YouTube-URL:ia tai video ID:tä. |
| `INVALID_GAME_MODE_METADATA` | GameMode-metadata ei ole RANKED tai CLASSIC. | Aseta GameMode arvoon RANKED tai CLASSIC. |
| `INVALID_SUMMONER_CARD_CAPSULE` | Kiinteä SummonerCard-kapseli on virheellinen. | Poista se tai valitse Riot-tili uudelleen lomaketilassa. |
| `OPAQUE_DIAGNOSTIC` | Säilytetyssä raakasisällössä on diagnostiikka. | Korjaa tai poista diagnosoitu raakalähde. |
| `FORM_CONVERSION_BLOCKED` | Raakasisältöä ei voi muuntaa turvallisesti lomakelohkoiksi. | Ratkaise kaikki raakadiagnostiikat ennen kuin palaat lomaketilaan. |

## Muokkaa tai kopioi olemassa oleva build

- Kun muokkaat julkaistua opasta, sen mestari, rooli ja patch ovat lukittuja.
- Kopioi olemassa oleva opas ja muokkaa kopiota kohdistuaksesi uuteen patchiin.
- Kopio voi säilyttää alkuperäisen tekijän ja lähdelinkin.

## Vianmääritys

- **Automaattitallennus epäonnistui** — Oire: luonnosta ei voitu tallentaa. Todennäköinen syy: selaimen tallennustila ei ole käytettävissä tai se on täynnä. Palautus: kopioi työsi turvalliseen paikkaan, palauta pääsy selaimen tallennustilaan ja tee sitten uusi muutos automaattitallennuksen yrittämiseksi uudelleen.
- **Lukukelvoton tallennettu luonnos** — Oire: alkuperäinen sisältö näytetään palautusta varten. Todennäköinen syy: tallennettu muoto on vioittunut tai vanhentunut. Palautus: kopioi tarvitsemasi teksti ja päätä sitten, korvaatko lukukelvottoman luonnoksen ennen jatkamista.
- **Patch-datan ristiriita** — Oire: assettien nimet ja ikonit ovat eri patchista. Todennäköinen syy: metadata muuttui ennen kuin assettitiedot ladattiin uudelleen. Palautus: lataa valitun patchin assettitiedot uudelleen.
- **Form-tilaan palaaminen ei onnistu** — Oire: raakadiagnostiikat ovat edelleen näkyvissä. Todennäköinen syy: virheellinen tai tuntematon lähde ei ole muunnettavissa ilman tietojen menetystä. Palautus: korjaa jokainen diagnostiikka raw Markdown -tilassa.
- **Virheellinen rakenteinen fence** — Oire: Esikatselu listaa lohkovirheen. Todennäköinen syy: direktiivi, kenttä, enum, ID tai tiiviin listan arvo on virheellinen. Palautus: vertaa sitä serialisaattorin luomaan esimerkkiin ja korjaa lähde.
- **Kirjautuminen vaaditaan julkaisemiseen** — Oire: kirjoittaminen ja Esikatselu toimivat, mutta julkaisu epäonnistuu käyttöoikeusvirheeseen. Todennäköinen syy: istuntoa ei ole tunnistettu. Palautus: kirjaudu normaalisti, varmista että luonnos säilyy, ja yritä julkaista uudelleen.

## Lähde ja ajantasaisuus

- Tämä on OP.GG:n virallinen opas Champion Build Builderille.
- Kun vastaus tarvitsee lähteen, viittaa kanoniseen HTML-sivuun: https://op.gg/fi/lol/user-guides/help
- Builderin mukana toimitettu parseri ja serialisaattori ovat raakamallin lopullinen auktoriteetti.
- Tämä dokumentti selittää kirjoitustyökalua; se ei tarjoa patch-kohtaisia suositeltuja buildeja.
