Generate a Postgres ALTER TABLE ADD COLUMN statement.
NOT NULL is omitted on ADD COLUMN to avoid requiring DEFAULT values.
Required-ness is tracked in the manifest; enforcement deferred.
Build an INSERT SQL statement and collect typed parameter values.
Returns (sql, params) where params[0] is the generated ID
(always JsonParam::Text). Subsequent params carry the JSON-typed
value so the postgres driver can bind them to typed columns
(INTEGER / BOOLEAN / TIMESTAMPTZ / TEXT) and so JSON null reaches
the database as SQL NULL — the previous string-collapsing path stored
"" for nullable FKs and broke any non-text column.