it's kind of unclear what `requires` stands for, maybe `required_cursor`?