# Sink.Bounds

Zero-based skip count and maximum take count used by `slice`.

## Signatures

```ts
export interface Bounds {
    readonly skip: number;
    readonly take: number;
}
```

## Why

A named bound makes the consumer's two independent limits explicit.

## Ownership and lifetime

Bounds are immutable values and acquire no resources. Each `slice` execution copies their counts
into private mutable counters.

## Property: skip

Number of initial successful values to discard.

## Property: skip: Why

A separate skip count allows bounded windows to begin after an ignored prefix.

## Property: skip: Ownership and lifetime

This immutable number acquires no resources; `slice` copies it into invocation-local state.

## Property: take

Maximum number of later successful values to forward before early exit.

## Property: take: Why

A take count bounds downstream work and gives `slice` its normal completion point.

## Property: take: Ownership and lifetime

This immutable number acquires no resources; `slice` copies it into invocation-local state.

## Examples

```ts
import type { Bounds } from "@typed/fx/Sink"
const secondAndThird: Bounds = { skip: 1, take: 2 }
```
