Support storing arbitrary state via options.state