# Meridian recording bindings

This additive packet uses the V2 observation, claim-history, acquisition-context, acquisition-bindings, measurement-bindings and product-source-selection contracts. It describes the five synthetic instruments and the unchanged `../recordings-v1/` source files. It does not revise the original observation, case snapshots, assessments or eight-check receipt.

## Reproduce

Build the canonical DisclosureOS repository at commit `88bcbfcc8b17af30837313aff596cec8e1bde43a` with Node 22 and pnpm, following the parent README. From this directory run:

```sh
node verify.mjs /path/to/disclosureos
```

The verifier reads the adjacent source files and standard documents. It rejects changed bytes, identity mappings, values, units, times and unexpected evaluation results. `validation.json` preserves the actual scoped outcomes. To regenerate after deliberately changing the adapter, run `node build.mjs /path/to/disclosureos`, then restart the standalone viewer to refresh downloads. This does not generate recordings or publish packages.

## What is canonical

- `observation.json`: five instrument sources, sixteen raw logical products, one derived video and all 120 weather measurements. "Raw" identifies an unmodified authored numerical source, not physical sensor output. The lossy video has a declared generation process with pinned generator, scenario and frame-table inputs. Unencoded RGB frames are not retained. Dates describe the authored scenario, not a real capture or build log.
- `history.json`: the same observation in the claim-history envelope used by the binding evaluators, with no scientific claims.
- `acquisition.json`: instrument identities, pinned manifests, deployments, sampling channels and product artifacts. Calibration remains unresolved and physical clock uncertainty unknown.
- `bindings.json`: each producing source and raw product is connected to its instrument and acquisition.
- `measurements.json`: every weather reading has its own channel and capture time. Both humidity meters retain separate identities.

- `source-selection.json`: the canonical product-source-selection contract. It declares typed array layouts, axes, byte order, CSV row partitions and exact rational video frame intervals. Its 366 selections cover all weather rows, one thermal pixel and RF bin across every sample, and first/middle/final video frames and frame-table rows.

The two weather products select disjoint instrument rows in one shared CSV container. Both digests and byte lengths cover the complete original file. Their typed CSV layouts enforce meter partitions. This is not a claim that either meter produced the other meter's rows.

## Follow a source selection

`index.json` only maps canonical product references to the original local filenames. The viewer's generated layout projection comes from `source-selection.json`, and its reader is copied byte-for-byte from the pinned canonical source. Layouts and addressing are standard contracts; panel arrangements, colors and the held-sample playback policy belong to the application.

For thermal inspection at 90 seconds, row 20, column 33, select `layout:thermal-04` with `array_element` indices `[5,20,33]`. The standard reader resolves byte offset 102532 and reads 23.93558120727539 Cel from the verified source chunk. For RF, select `layout:spectrum` with indices `[45,64]`. To select a different pixel or bin, change the selector and rerun `evaluateProductSourceSelection`; there is no need to enumerate the full array as scalar measurements.

The contract supports contiguous row-major numerical arrays, UTF-8 CSV logical rows and declared constant-rate video. It does not support compressed scientific containers, strides, variable-rate video or custom missing-value encodings. It verifies a declared video frame interval and file bytes, not codec decoding or frame-count authenticity.

## What passes, and what does not

Record structure and semantic references pass. All 21 acquisition asset references match supplied bytes. All 120 weather measurements match their original rows, and all 366 canonical source selections pass. The full acquisition and measurement profiles **do not pass**: synthetic sources have no physical calibration or measured clock uncertainty. The receipt keeps those failures and the canonical evaluator's `not_checked` fields intact; the verifier succeeds only when that exact expected outcome is reproduced. It does not fabricate zero uncertainty or certify scientific validity.

The historical recording manifest predates this packet and still describes adapters as pending. This additive packet is the subsequent implementation; its own receipt defines the current scope. The earlier source bytes stay unchanged.

Data: CC0-1.0. Adapter and viewer code: MIT.
