bson_iter_t's layout is unfortunately part of the public ABI, its size should be static-asserted to prove it doesn't change, as with bson_t.