# `CapabilityMembers`

> 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 { CapabilityMembers } from '@holostep-configurators/runtime-client/contract';` · stable · since 2.0.0 · section 22. Pure helpers (root of the package; run in Node and the fake)

The members each experimental capability id unlocks. Types only; generated with the declaration.

## Members

| Member | Kind | Summary |
| --- | --- | --- |
| <a id="beforecommit"></a>[`beforeCommit`](CapabilityMembers.beforeCommit.md) | property | [`session.beforeCommit`](Session.beforeCommit.md). |
| <a id="input.startdrag"></a>[`input.startDrag`](CapabilityMembers.input.startDrag.md) | property | [`session.input.startDrag`](Input.startDrag.md). |
| <a id="input.revert"></a>[`input.revert`](CapabilityMembers.input.revert.md) | property | [`session.input.revert`](Input.revert.md). |
| <a id="input.drag.commit.app"></a>[`input.drag.commit.app`](CapabilityMembers.input.drag.commit.app.md) | property | The value `commit: 'app'` of [`input.drag`](Input.drag.md), with [`session.input.revert`](Input.revert.md), which ends a refused drop. |
| <a id="cantryon"></a>[`canTryOn`](CapabilityMembers.canTryOn.md) | property | [`session.canTryOn`](Session.canTryOn.md). |
| <a id="tryon"></a>[`tryOn`](CapabilityMembers.tryOn.md) | property | [`session.tryOn`](Session.tryOn.md). |
| <a id="endar"></a>[`endAR`](CapabilityMembers.endAR.md) | property | [`session.endAR`](Session.endAR.md). |

## Declaration

```ts
export interface CapabilityMembers {
  'beforeCommit': {
    beforeCommit: NonNullable<Session['beforeCommit']>;
  };
  'input.startDrag': {
    input: {
      startDrag: NonNullable<Input['startDrag']>;
    };
  };
  'input.revert': {
    input: {
      revert: NonNullable<Input['revert']>;
    };
  };
  'input.drag.commit.app': CapabilityMembers['input.revert'];
  'canTryOn': {
    canTryOn: NonNullable<Session['canTryOn']>;
  };
  'tryOn': {
    tryOn: NonNullable<Session['tryOn']>;
  };
  'endAR': {
    endAR: NonNullable<Session['endAR']>;
  };
}
```

## Generic-API test (spec 3.1)

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