// _gstate.schedule_size_step = 3
if (block_time.slot - _gstate.last_schedule_size_update.slot >= 2 * _gstate.schedule_update_interval) {
int target_amount = get_target_amount(activated_share);
if (target_amount > schedule_size) {
schedule_size = schedule_size + _gstate.schedule_size_step;
} else if (target_amount < schedule_size) {
schedule_size = schedule_size - _gstate.schedule_size_step;
_gstate.last_schedule_size_update = block_time;