@NonNull
	public RequestQueue add(@NonNull final Operation operation) {
		if (operation instanceof final Request request) {
			// Validate
			if (request.enqueued)
				throw new IllegalStateException("Request already enqueued");
			// Add
			request.internalFail(this::notifyFail);
			requests.add(request);
			// Mark
			request.enqueued = true;
			return this;
		} else {
			throw new IllegalArgumentException("Operation does not extend Request");
		}
	}
Enqueues a new operation. All operations will be executed sequentially in order they were
added.

@param operation the new operation to be enqueued.
@throws IllegalStateException    if the operation was enqueued before.
@throws IllegalArgumentException if the operation is not a {@link Request}.
ble/src/main/java/no/nordicsemi/android/ble/RequestQueue.java