The subset that config files actually use
The reader knows maps (`key: value` and nested blocks), sequences (`- item`), and the scalars null, booleans, integers, floats and double-quoted strings with the standard escapes. Unquoted `yes`, `no`, `on` and `off` are read the way config files are read: as the booleans true and false. A quoted string uses the same escapes as JSON, so a `\n` in the YAML comes through as one string containing a newline.
Anything outside that subset is refused by name rather than guessed at. Anchors (`&name`), aliases (`*name`), custom tags, block scalars (`|` and `>`), flow collections and multi-document files are each named in the refusal, with the line they broke on and a caret under the trouble when there is one.