1---2name: yaml3description: Write valid YAML that parses predictably across languages and versions.4---56## Type Coercion Traps78- `yes`, `no`, `on`, `off`, `true`, `false` → boolean; quote if literal string: `"yes"`9- `NO` (Norway country code) → false in YAML 1.1; always quote country codes10- `1.0` → float, `1` → int; quote version numbers: `"1.0"`11- `010` → octal (8) in YAML 1.1; quote or use `0o10` explicitly12- `null`, `~`, empty value → null; quote if literal: `"null"`, `"~"`13- `.inf`, `-.inf`, `.nan` → special floats; quote if literal strings1415## Indentation1617- Spaces only—tabs are forbidden and cause parse errors18- Consistent indent width required within document—2 spaces conventional19- Sequence items `-` count as indentation—nested content aligns after the space2021## Strings2223- Colon followed by space `: ` triggers key-value—quote strings containing `: `24- `#` starts comment unless quoted—quote strings with `#`25- Leading/trailing spaces stripped from unquoted strings—quote to preserve26- Quote strings starting with `@`, `` ` ``, `*`, `&`, `!`, `|`, `>`, `{`, `[`, `%`2728## Multiline Strings2930- `|` literal block preserves newlines; `>` folded block joins lines with spaces31- Trailing newline: `|-` and `>-` strip final newline; `|+` and `>+` keep trailing blank lines32- Indentation of first content line sets the block indent—be consistent3334## Structure3536- Duplicate keys: YAML spec says last wins, but some parsers error—avoid duplicates37- Anchors `&name` and aliases `*name` reduce repetition—but aliases can't override anchor values38- Document separator `---` starts new document; `...` ends document—useful in streams39- Empty documents between `---` markers are valid but often unintended4041## Comments4243- `#` only valid at line start or after whitespace—`key:value#comment` has no comment44- No inline comments after multiline block scalars—comment applies to next line45- No multi-line comment syntax—each line needs `#`4647## Compatibility4849- YAML 1.1 vs 1.2: boolean words (`yes`/`no`), octal syntax differ—know which version parser uses50- JSON is valid YAML 1.2—but YAML features (anchors, multiline) don't round-trip to JSON51- Some parsers limit nesting depth or file size—test with expected data scale