# RefSubject.RefSubject.Class

Defines the class state contract.

## Signatures

```ts
interface Class<Self, Id extends string, A, E> extends RefSubject.Service<Self, Id, A, E> {
    new (): RefSubject.Service<Self, Id, A, E>;
}
```

## Why

Adds the construct signature used by class-extension syntax to the RefSubject service facade.

## 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 RefSubject service class.

## Construct signatures: Why

Makes `class State extends RefSubject.Service(...)(id) {}` type-check while returning the
static facade rather than allocating a second state object.

## Construct signatures: Ownership and lifetime

Constructing the generated class returns its static service facade; it does not allocate or
acquire a RefSubject. The matching Layer owns the installed state and its Scope.
