{ "_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 gzipped database. Required and non-zero:", " the assembler rejects a build that comes out far smaller, and", " the web app shows it while the download runs.", "", "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": 45 }, { "id": "2017", "expectedRows": 861068, "dbSizeMb": 48 } ] }