`$this->at - 1` is just the offset, since `$at` will be 1 once `next()` is first called and we should start counting from 0.

If you're asking if falling back to the offset is arbitrary, we do need something to fall back to since not all documents will have an `_id` field (command responses for one). Also, the `key()` method isn't supposed to return non-scalar values (I believe this might be changed in PHP 5.5 or 5.6, but I assume HHVM is using the old API), so I wanted to make sure we cast down to a string above.