{ "_comment": [ "The dataset registry: the one place every pipeline stage agrees on what", "exists. JSON because the Go stages and the Vite app both read it.", "", " id the identifier used end to end, from data// to /thptqg//", " expectedRows exact row count of the built database, not an estimate. The", " inputs are frozen exam results, so a deviation of even one row", " means something changed unintentionally and the assembler", " refuses to publish.", " dbSizeMb usual size of the published database. Required and non-zero:", " the assembler rejects a build that comes out far smaller. The", " file is served uncompressed and read a page at a time over", " HTTP range requests, so nothing downloads it whole.", "", "Presentation (titles, labels, SQL presets) lives in web/src/datasets.js keyed", "by id; that file throws at load if the two lists disagree." ], "datasets": [ { "id": "2016", "expectedRows": 877460, "dbSizeMb": 302 }, { "id": "2017", "expectedRows": 861068, "dbSizeMb": 247 } ] }