The problem is not syntax, it is the two specifications
YAML 1.1 and YAML 1.2 coexist and they do not read the same. Your editor and modern JavaScript libraries use 1.2; PyYAML and go-yaml use 1.1, and those sit underneath Docker Compose, Ansible and much of the Kubernetes tooling. Same file, two different values, zero errors on both sides.
The Norway problem and its siblings
A list of country codes `[NO, SE, DK]` becomes `[false, "SE", "DK"]` in any 1.1 parser: `no` is a boolean there and a string here. The same happens with `version: 1.10`, which loses the zero and lands on 1.1; with `0700`, which is 700 or 448 depending on who reads it; and with `22:22`, which 1.1 reads as base 60. None of them raises an error.
Every error, not just the first
Most validators stop at the first failure, so you fix it, revalidate, and the next one appears. Here the report arrives complete, with the line, the column and what to write instead, so you make a single pass before you commit.