    fn op1_wait(self, layer: usize) -> (Self, GateScores) {
        let is_full = (layer + 1) % FULL_ATTN_INTERVAL == 0;
        if is_full {
            self.op1_wait_full(layer)
        } else {
            self.op1_wait_linear(layer)
        }
        
        -- get gate scores
        return 
    }