WhatsAIFor export
=================
Scope: public content
data/<table>.csv   one file per database table, header row first
manifest.json      what was asked for, and the conventions below
schema.sql         table definitions (full export only)
_COMPLETE.json     written last, with the real row count per table
If _COMPLETE.json is missing, the download stopped early and the last
CSV in it is cut off. The archive is written straight to the network as
it is read out of the database, so a failure part way through ends the
download rather than returning an error page. Nothing else in the
archive is affected; fetch it again.
Conventions
-----------
UTF-8, LF line endings, RFC 4180 quoting.
An empty field is NULL. An empty string is written as "".
Dates are the database's own format: YYYY-MM-DD HH:MM:SS, UTC.
Booleans are 1 and 0.
Binary columns, if any, are base64.
Loading it
----------
MySQL:      LOAD DATA LOCAL INFILE 'data/categories.csv' INTO TABLE categories
              FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
              LINES TERMINATED BY '\n' IGNORE 1 LINES;
SQLite/D1:  .import --csv --skip 1 data/categories.csv categories
Anything:   every file is plain CSV with a header; pandas, Excel and
            duckdb read them without help.
