# .solv Case Interchange Profile 0.1 — Public Draft / Technical Preview

Status: **public draft / technical preview**. This document describes the currently demonstrated `solv-v1` portable Case contract. It is not a ratified industry standard, IANA media type, RFC 8785/JCS profile, or frozen 1.0 compatibility commitment.

## 1. Purpose

A `.solv` Case is a portable execution record for one consequential execution. The demonstrated record can bind stable Case identity, ordered execution, basis, evidence and claim classes, lineage/continuity context, outcome, a declared capture boundary, content-integrity semantics, fixed recorded Replay semantics, and portability.

The `solv-v1` portable Case contract is producer- and domain-neutral. Domain-specific evidence and producer-specific metadata may vary with the declared execution boundary; the Case identity, integrity and verification semantics remain portable.

Solvyn does not replace observability, orchestration, governance, security tooling, domain systems of record, or their telemetry/state. A Case can bind selected material evidence from those systems to one consequential execution while stating what was captured, what was not captured, and what remains unknown.

## 2. Interoperable core

The demonstrated portable object includes:

- `caseIds`
- `sealed`
- `config`
- `meta`
- `fixTrail`
- `cryptographicSeal`

`config.format` identifies `solv-v1`.

`meta.hash` is the short display fingerprint derived from the same content digest as `cryptographicSeal`.

The producer-neutral core does not require a tick-driven runtime. Compatible historical or producer-specific Cases may contain additional sealed metadata. Unknown compatible extension fields remain part of canonical content and must not be silently discarded during verification.

## 3. Canonical content seal

The shared TypeScript canonicalization implementation is the reference implementation for the demonstrated contract.

To derive or verify the content digest:

1. Parse or deep-copy the document.
2. Omit top-level `cryptographicSeal`.
3. Omit `meta.hash`.
4. Recursively sort object keys lexicographically.
5. Preserve array order.
6. Serialize compact JSON with no insignificant whitespace.
7. Encode the exact serialized text as UTF-8.
8. Compute SHA-256 over those bytes.
9. Set the full content seal to `sha256:<64 lowercase hex>`.
10. Set the short fingerprint to `0x` plus the first 12 digest hex characters, uppercased.

This procedure is Solvyn's demonstrated deterministic JSON procedure. This draft does not relabel it as RFC 8785/JCS.

### Content-integrity boundary

An unrecomputed edit changes the canonical bytes and fails verification against the embedded digest.

An edited copy can be re-digested and become internally content-consistent again. That does not establish producer identity, authoritative-record matching, or external witnessing.

A local package manifest is a consistency mechanism, not an external trust root. A modified package could replace both content and its locally listed digests.

## 4. Time basis and producer-specific ordering

`meta.timeBasis`, when present, qualifies `meta.occurredAt`.

- `wall_clock` denotes wall-clock execution time.
- `world_time` denotes a producer-defined simulated or logical environment clock.
- Compatible earlier `solv-v1` Cases may omit `timeBasis`.
- Producer-specific ordinals or sequence identifiers are not timestamps.

`SVN-REF-FIN-0001` uses `wall_clock` because its recorded synthetic treasury events use a wall-clock execution timeline.

A producer may carry additional sealed ordering metadata when that metadata is meaningful to its execution environment. Such producer-specific metadata is not required by the horizontal Case contract.

## 5. Standalone and packaged Cases

A standalone portable Case should advertise only references, tools or verification endpoints that actually apply to that artifact.

A packaged Case may carry package-local references or a verification command when the referenced materials actually travel with the package.

The financial reference package therefore carries its evidence index and bundled verifier because those artifacts are present in the package.

## 6. Verification dimensions

Verification is not one universal badge. Relevant dimensions include:

1. **Schema conformance** — shape validation against the stated schema.
2. **Manifest content integrity** — canonical content reproduces its embedded digest/seal.
3. **Disclosed-file consistency** — package-listed files match disclosed digests and byte counts.
4. **Producer authenticity** — trusted material establishes producer identity.
5. **Authoritative-record matching** — the Case is compared with an authoritative sealed record or registry when such a source exists and is checked.
6. **External receipt/witnessing** — an independent receipt or witness exists and was checked.
7. **Continuity** — relevant lineage/continuity claims are supported.
8. **Replay eligibility** — the fixed recorded sequence has the preserved information needed to walk that sequence.

For the synthetic financial reference, producer authenticity is not provided, authoritative production matching is not performed, and an external receipt is not provided.

## 7. Public conformance vector

This vector exercises nested objects with deliberately non-sorted source keys, an order-sensitive array, UTF-8/non-ASCII text, integer values, booleans and null. It intentionally avoids arbitrary floating-point values.

### Representative input document

The self-derived hash and seal below are placeholders. Verifiers omit them before canonicalization.

    {
      "cryptographicSeal": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
      "fixTrail": [],
      "meta": {
        "system": "solvyn-vector/v0.1",
        "sourceType": "conformance_vector",
        "provenance": "synthetic_reference",
        "occurredAt": "2026-01-02T03:04:05Z",
        "timeBasis": "wall_clock",
        "narrative": "Unicode café",
        "conformanceExtension": {
          "z": 1,
          "a": {
            "β": "utf8",
            "a": "first"
          },
          "ordered": [
            3,
            1,
            2
          ],
          "ordinal_example": 7,
          "flag": true,
          "nil": null
        },
        "envHash": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
        "domain": "conformance",
        "datasetHash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
        "createdBy": "Solvyn conformance vector",
        "agent": "Vector β",
        "hash": "0x000000000000"
      },
      "config": {
        "format": "solv-v1",
        "profile": "solv-case-interchange-profile-v0.1-draft",
        "continuity": {
          "z": "last",
          "a": "first"
        }
      },
      "sealed": true,
      "caseIds": [
        "VECTOR-β",
        "VECTOR-2"
      ]
    }

### Unsigned canonical JSON

    {"caseIds":["VECTOR-β","VECTOR-2"],"config":{"continuity":{"a":"first","z":"last"},"format":"solv-v1","profile":"solv-case-interchange-profile-v0.1-draft"},"fixTrail":[],"meta":{"agent":"Vector β","conformanceExtension":{"a":{"a":"first","β":"utf8"},"flag":true,"nil":null,"ordered":[3,1,2],"ordinal_example":7,"z":1},"createdBy":"Solvyn conformance vector","datasetHash":"sha256:1111111111111111111111111111111111111111111111111111111111111111","domain":"conformance","envHash":"sha256:2222222222222222222222222222222222222222222222222222222222222222","narrative":"Unicode café","occurredAt":"2026-01-02T03:04:05Z","provenance":"synthetic_reference","sourceType":"conformance_vector","system":"solvyn-vector/v0.1","timeBasis":"wall_clock"},"sealed":true}

UTF-8 byte length: **759**

Expected SHA-256 hex:

    fc768a7301a267aa026f737524cb57e250c026d3bd1247ae2ebffa2a4c78ac0a

Full seal:

    sha256:fc768a7301a267aa026f737524cb57e250c026d3bd1247ae2ebffa2a4c78ac0a

Short fingerprint:

    0xFC768A7301A2

A conforming implementation for this demonstrated subset must reproduce the exact canonical text, UTF-8 byte length and digest above.

This vector proves the specified subset. It does not claim arbitrary cross-language floating-point canonicalization.

## 8. Replay semantics

Replay means walking the **fixed recorded sequence** from preserved evidence and state captured for the Case.

Replay does not mean rerunning an arbitrary autonomous system and expecting an identical outcome.

For `SVN-REF-FIN-0001`, Replay eligibility refers only to its fixed six-event recorded synthetic sequence. It does not imply deterministic rerunning of the original autonomous system, recognition by an external registry or server, or access to evidence outside the declared Case boundary.

## 9. Financial reference boundary

`SVN-REF-FIN-0001` is a Solvyn-authored synthetic financial-integrity reference execution with no customer data.

The financial scenario is one fixture exercising the producer-neutral portable Case contract. The domain of the example does not define the product or interchange format.

The reference distinguishes observed facts, supported derivations and explicit unknowns.

It does not establish:

- that the presented media was AI-generated;
- who initiated the request;
- attacker identity;
- intent;
- that a counterfactual $25 million loss was prevented;
- facts outside the declared capture boundary;
- producer authenticity;
- external witnessing.

Its recorded outcome is narrower: transfer submission was held; no payment instruction was submitted; no funds moved through the captured gateway.

## 10. Versioning and implementation boundary

This public draft documents the currently demonstrated interoperable shape and verification semantics.

Product internals, capture adapters, policy systems, protected storage, authorization, proprietary runtime behavior, deployment-specific trust anchors and producer-specific runtime concepts are outside this public interchange profile unless explicitly described by a future version.

Compatible producer extensions remain part of sealed canonical content when present.
