Perf improvements

- use a partial request when getting variant data
- only emit keys once per slice
- fix reader range bug (max -> min, whoops)