# Versioned.struct

Combines multiple Versioned values into a single struct.

## Signatures

```ts
export declare function struct<const VS extends Readonly<Record<string, Versioned<any, any, any, any, any, any, any, any>>>>(versioneds: VS): Versioned<Versioned.VersionContext<VS[keyof VS]>, Versioned.VersionError<VS[keyof VS]>, {
    readonly [K in keyof VS]: Fx.Success<VS[K]>;
}, Fx.Error<VS[keyof VS]>, Fx.Services<VS[keyof VS]>, {
    readonly [K in keyof VS]: Effect.Success<VS[K]>;
}, Effect.Error<VS[keyof VS]>, Effect.Services<VS[keyof VS]>>;
```

## Why

Combines named Versioned values and preserves each field's pushed value, sampled value, errors,
and services in the resulting structure.

## Ownership and lifetime

struct does not take ownership of its inputs. Its observation and current-read channels retain
upstream lifetime, typed failures, services, and interruption behavior.
