What We Learned
Writing the canonical serialisation specification before touching any implementation code was the highest-leverage decision in the session. The spec exposed four ambiguities that would have caused integration failures if discovered during implementation: key sort order semantics (UTF-8 byte order vs UTF-16 code unit order), YAML type resolution for values likeyes/no and dates, Unicode normalisation form (precomposed vs decomposed characters producing different hashes), and null-handling semantics (should absent fields appear as null or be omitted entirely).
Each of these would have manifested as “works on my machine” bugs — two implementations producing different fingerprints from the same YAML file, with no obvious indication of where the divergence occurred.