# `ManifestConnector`

> 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 { ManifestConnector } from '@holostep-configurators/runtime-client/contract';` · stable · since 2.0.0 · section 17. Assets: describe, manifest, validation

Local frame of the GLB.

## Members

| Member | Kind | Summary |
| --- | --- | --- |
| <a id="id"></a>[`id`](ManifestConnector.id.md) | property | `extras.holostep.connector.id`, else the plane node's cleaned name (never `meshes[].name`): whitespace becomes `_`, `[ ] . : /` are removed, and a name already taken in the GLB gets `_<n>` (spec section 6.9, ID1). |
| <a id="name"></a>[`name`](ManifestConnector.name.md) | property | The plane node's authored name in the delivered file; its cleaned form is what `meshName` matches. |
| <a id="type"></a>[`type`](ManifestConnector.type.md) | property | The connector type, e.g. 'left'. |
| <a id="accepts"></a>[`accepts`](ManifestConnector.accepts.md) | property | Types it accepts; empty: any. |
| <a id="priority"></a>[`priority`](ManifestConnector.priority.md) | property | Higher wins when a pair is chosen. |
| <a id="enabled"></a>[`enabled`](ManifestConnector.enabled.md) | property | False: never attached. |
| <a id="meta"></a>[`meta?`](ManifestConnector.meta.md) | property | The plane's glTF mesh extras and node extras outside `holostep`, the node's value winning per key, as 1.4's `userData` merged them (`align`, `frontDir`, `allowRotatedSnap`, `multi`, app keys); the stored plane config… |
| <a id="center"></a>[`center`](ManifestConnector.center.md) | property | The plane's centroid, GLB-local metres. |
| <a id="normal"></a>[`normal`](ManifestConnector.normal.md) | property | The plane's normal, GLB-local, unit length: the mean of its NORMAL attribute through the inverse-transpose of the plane node's matrix in the GLB's scene, never the triangle winding, so a mirrored plane keeps its… |
| <a id="polygon"></a>[`polygon`](ManifestConnector.polygon.md) | property | The plane's convex hull, GLB-local metres. |

## Declaration

```ts
export interface ManifestConnector {
  readonly id: string;
  readonly name: string;
  readonly type: string;
  readonly accepts: readonly string[];
  readonly priority: number;
  readonly enabled: boolean;
  readonly meta?: Readonly<Record<string, JsonValue>>;
  readonly center: ReadonlyPoint3;
  readonly normal: ReadonlyPoint3;
  readonly polygon: readonly ReadonlyPoint3[];
}
```

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `ManifestConnector` 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) |
