     let maxRate: Int
     var maxRateDoubled: Int {
         return maxRate * 2
+    }
+    var isHalfStep: Bool {
+        return half != nil
+    }
+    var stepCount: Int {
+        return isHalfStep ? maxRateDoubled : maxRate
     }
 }
 

        }
        if let index = arrangedSubviews.index(of: next) {
            focusedIndex = index
            focusedIndexDidChange?(index)
        }
    }
    override func updateConstraints() {

        }
    }
    private func updateInvisible() {
        if invisibleStackview == nil {
            let v: InvisibleFocusStackView = InvisibleFocusStackView
                .create(config: config!) {
                    [weak self] value in
                    self?.stackview?.value = value
                }
            addSubview(v)
            self.invisibleStackview = v
