Hello Velas,
the behavior is correct. The snap positions are calculated relative to the begin of the slide range determined by the properties MaxOffset .. MinOffset. In your case the slide range begins at 99999. Accordingly the first snap positions is 99999. The next is 99909. Then follow 99819, 99729, ... 99, 9, -81, -171, ... -99981. The last position is -99999 as it is the end of the slide range.
How can I fix this?
The start offset 0 is not modulo 90 within the range 99999 .. -99999. Either initialize the MaxOffset and MinOffset range with other values or ensure that Offset is a multiple of SnapNext relative to MaxOffset.
Alternative approach: initialize SnapFirst with <9,0>. This will result in the first snap position 99999, then 99990, the 99900, ... 90, 0, -90, -180, ... -99900, -99990, -99999.
Best regards
Paul Banach