# `ApplyReport`

> 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 { ApplyReport } from '@holostep-configurators/runtime-client/contract';` · stable · since 2.0.0 · section 21. Stored data (vendored; replaces @holo/interfaces)

The result of applying a document layer. A layer is refused key by key: the keys in [`applied`](ApplyReport.applied.md)
landed even when [`ok`](ApplyReport.ok.md) is false, and the rejected ones, listed in [`problems`](ApplyReport.problems.md), did not.

## Members

| Member | Kind | Summary |
| --- | --- | --- |
| <a id="ok"></a>[`ok`](ApplyReport.ok.md) | property | False when `problems` holds any: a key was rejected, or the whole layer was (no version-2 object, or 'apply-failed'). |
| <a id="source"></a>[`source`](ApplyReport.source.md) | property | Who applied it: the host page ('host') or this session ('session'). |
| <a id="superseded"></a>[`superseded`](ApplyReport.superseded.md) | property | True when a newer apply replaced this one before it finished. |
| <a id="applied"></a>[`applied`](ApplyReport.applied.md) | property | The settings that landed, as sorted JSON Pointers ('/stage/exposureEv'); a named view ('/camera/views/top') and `meta` count as one each. |
| <a id="removed"></a>[`removed`](ApplyReport.removed.md) | property | The settings the page layer before it set that this one does not, as JSON Pointers. |
| <a id="problems"></a>[`problems`](ApplyReport.problems.md) | property | Each rejected key: code 'document-error', its JSON path in the document, `layer`, and for a version-1 key `didYouMean` with its 2.0 home (a runtime-owned AR or XR key names the account's published layer). |

## Declaration

```ts
export interface ApplyReport {
  readonly ok: boolean;
  readonly source: 'host' | 'session' | 'other';
  readonly superseded: boolean;
  readonly applied: readonly string[];
  readonly removed: readonly string[];
  readonly problems: readonly Problem[];
}
```

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `ApplyReport` names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | pass: 21 apps (fleet cross-check: app-04c2774145, app-37356bf09f, app-4762caacdc, app-4f16d2f6da, app-4fd23bc869, app-822bb9d6aa, app-8675b3225c, app-b362a81c85 and 13 more) |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |
