# Versioned.Class

Defines the class state contract.

## Signatures

```ts
interface Class<Self, Id extends string, E1, A2, E2, A3, E3> extends Service<Self, Id, E1, A2, E2, A3, E3> {
    new (): Service<Self, Id, E1, A2, E2, A3, E3>;
}
```

## Why

Describes the constructable service facade returned by Service, including the same static Effect
and Fx operations as its tag.

## Ownership and lifetime

Class is a contract and performs no acquisition. Implementations retain the errors,
services, interruption, and Scope requirements expressed by its members.

## Construct signatures

Construct signature used by the generated Versioned service class.

## Construct signatures: Why

Enables class-extension syntax while returning the generated static service facade rather
than allocating another Versioned value.

## Construct signatures: Ownership and lifetime

Construction itself performs no Effect or acquisition. The matching Layer owns the installed
Versioned value and supplies its three channels.
