# `ClipRef`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

Interface · `import type { ClipRef } from '@holostep-configurators/runtime-client/contract';` · stable · since 2.0.0 · section 14. Animations

Which clip: where its GLB sits and its name. The animation events carry it; [`ClipInfo`](ClipInfo.md) extends it.

## Members

| Member | Kind | Summary |
| --- | --- | --- |
| <a id="node"></a>[`node`](ClipRef.node.md) | property | The ModelNode `nodeId` whose GLB holds the clip; null for a clip of a collection `model` item. |
| <a id="item"></a>[`item`](ClipRef.item.md) | property · labs | The collection `model` item whose GLB holds the clip; null for a ModelNode's clip. |
| <a id="clip"></a>[`clip`](ClipRef.clip.md) | property | The clip's authored name, as `play` takes it. |

## Declaration

```ts
export interface ClipRef {
  readonly node: string | null;
  readonly item: {
    readonly collection: string;
    readonly key: string;
  } | null;
  readonly clip: string;
}
```

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `ClipRef` names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | not recorded: no ledger row names this member or its owner |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |
