# Subject.Class

A constructible service facade whose static side is also the contextual `Subject`.

## Signatures

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

## Why

Supports the class-based Effect service declaration pattern without creating a second runtime
object distinct from the static Subject facade.

## Ownership and lifetime

Constructing the class returns its service facade; it does not allocate a subject. Use the
static `make` layer to allocate and scope the backing instance.

## Construct signatures

Returns the contextual service facade without allocating a subject.

## Construct signatures: Why

Enables `class Events extends Subject.Service<...>()("Events") {}` while retaining the
facade's static `Fx`, `Sink`, and layer operations.

## Construct signatures: Ownership and lifetime

Construction acquires no resources; the static `make` layer owns the backing subject.

## Examples

```ts
import * as Subject from "@typed/fx/Subject"

class Events extends Subject.Service<Events, string>()("Events") {}
const facade = new Events()
```
