303ff0a163
Node had no sibling for the Rust and Python `fetch_btcusdt` data-generators — adding it closes the "fetch (data-gen)" cell for the last remaining row of the cross-language example matrix where the pattern makes sense. * examples/node/fetch_btcusdt.js — uses Node 18+'s built-in global `fetch` (no npm dependencies); same pagination logic as the Rust and Python siblings (paginate backwards via `endTime`, drop the in-progress bucket, sort and trim to the configured target). Applies the same OHLC validity check the Rust `Candle::new` constructor enforces so a malformed kline is skipped rather than written. * JavaScript's `String(v)` already gives the shortest round-trip representation and strips the `.0` suffix for whole-number floats, so the CSV output is byte-for-byte identical to what the Rust and Python fetchers produce on the same Binance snapshot. Verified by running it and `git diff`-ing against the checked-in dataset: every row older than the run is unchanged; only the most recent ~24 hours drift because the market kept moving. examples/README.md gains the new row.