public static int lower(Integer orderSource, int offset) {
        if (offset <= 0) {
            throw new IllegalArgumentException("offset must be greater than 0");
        }

        if (orderSource == null) {
            orderSource = Ordered.LOWEST_PRECEDENCE;
        }

        if (Ordered.LOWEST_PRECEDENCE - offset < orderSource) {
            return Ordered.LOWEST_PRECEDENCE;
        }

        return orderSource + offset;
    }
@Test
    public void test_lower() {
        assertThat(OrderUtil.lower(1, 1)).isEqualTo(2);
        assertThat(OrderUtil.lower(Ordered.LOWEST_PRECEDENCE - 1, 2)).isEqualTo(Ordered.LOWEST_PRECEDENCE);
        assertThat(OrderUtil.lower(Ordered.LOWEST_PRECEDENCE, 1)).isEqualTo(Ordered.LOWEST_PRECEDENCE);

        Assertions.assertThrows(IllegalArgumentException.class, () -> OrderUtil.lower(1, -1));
    }