One row per sample with no parent, numbered by dense_rank() over sample_key so the id is
deterministic across runs; carries the root's position, time, cruise, gear and seafloor depth.
Every browser object joins on root_id; root_sample_key is what it stands for.