# SparseTextNode

Represents sparse text content (e.g. `Hello ${name}!`).

## Signatures

```ts
export declare class SparseTextNode {
    readonly _tag: "sparse-text";
    readonly nodes: Array<TextNode | TextPartNode>;
    constructor(nodes: Array<TextNode | TextPartNode>);
}
```

## Why

Literal and dynamic segments update one local text target without structural
reconciliation.

## Ownership and lifetime

The model owns segments; the mounted Scope owns the native text updater.

## Constructor

Creates sparse text syntax.

## Property: _tag

Sparse-text discriminant.

## Property: _tag: Why

Selects ordered segment joining into one retained text target.

## Property: _tag: Ownership and lifetime

Immutable AST metadata.

## Property: nodes

Ordered literal and dynamic text segments.

## Property: nodes: Why

Reconstructs one text value in author order.

## Property: nodes: Ownership and lifetime

Retained AST array; the mounted part owns live inputs.

## Examples

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

const node = new SparseTextNode([])
```
