# PropertiesPartNode

Represents a spread of properties (e.g. `${...props}`).

## Signatures

```ts
export declare class PropertiesPartNode {
    readonly _tag: "properties";
    readonly index: number;
    constructor(index: number);
}
```

## Why

A spread may combine attribute, boolean, class, data, property, event, and ref
directives while each retains its own native semantics.

## Ownership and lifetime

The mounted spread tracks and disposes only keys it owns. SSR excludes
event/property/ref and unsafe keys.

## Constructor

Creates property-spread syntax.

## Property: _tag

Property-spread discriminant.

## Property: _tag: Why

Selects recursive directive setup and safe SSR filtering.

## Property: _tag: Ownership and lifetime

Immutable AST metadata.

## Property: index

Interpolation index producing the directive record.

## Property: index: Why

Locates the record whose keys become local directive instances.

## Property: index: Ownership and lifetime

Immutable scalar metadata; the spread instance owns per-key cleanup.

## Examples

```ts
import { PropertiesPartNode } from "@typed/template/Template"

const part = new PropertiesPartNode(0)
```
