default @SideEffectFree @NonNull String peekString(final @NonNegative int chars) {
        final String remainingInput = this.remainingInput();
        if (chars > remainingInput.length()) {
            throw new CursorOutOfBoundsException(
                    this.cursor() + chars,
                    this.length()
            );
        }
        return remainingInput.substring(0, chars);
    }
Reads {@code chars} characters of the {@link #remainingInput() remaining input}
without moving the cursor.

@param chars the number of characters to read
@return the read characters
@throws CursorOutOfBoundsException If {@code chars} exceeds {@link #remainingLength()}
cloud-core/src/main/java/org/incendo/cloud/context/CommandInput.java