Same behavior in every language.
Each oneyaml library is written from scratch for its language. What they share is behavior, and one conformance kit checks it.
The shared behavior
YAML 1.2 by default
yes is a string, 0777 a decimal integer, ~ null. Every library reads every scalar the same way.
YAML 1.1 is opt-in
Each 1.1 behavior, << merge keys included, is a named setting with the same name everywhere, off by default.
One reading, two layers
Typed reads and the lossless document run on one parser and one resolver, so they never disagree.
Minimal-diff edits
Set a value and only that value changes, in its own style. An untouched document writes back byte for byte.
Comments stay put
One set of rules decides which entry owns each comment, so it moves, stays or goes with that entry.
The same errors
Every diagnostic has a stable Y#### code, a source snippet and a suggested fix. The code means the same thing in every language.
Checked, not promised
Every library passes the full yaml-test-suite before release, plus our own cases for edits, comments and diagnostics.