protocol: freeze minimal WWAR v1 wire conformance

This commit is contained in:
2026-08-11 19:37:30 +09:00
parent 3157e1d688
commit 7bc96b4e03
13 changed files with 7533 additions and 2 deletions

View File

@@ -7,6 +7,7 @@
PREFIX ?= /usr/local
CC ?= cc
AR ?= ar
PYTHON3 ?= python3
# Fixture-cell concurrency is separate from caller-owned Make scheduling.
JOBS ?= 1
@@ -636,7 +637,11 @@ test-platform: $(WRAPPER_TOOLS) $(PLATFORM_WRAPPER_BINS)
# byte identity and self-host fixed points are never hidden prerequisites.
test: test-unit test-compiler-smoke
test-commit: test-unit test-compiler test-package test-lang test-library
test-protocol:
@PYTHONDONTWRITEBYTECODE=1 LC_ALL=C $(PYTHON3) -B protocol/check.py
test-commit: test-unit test-compiler test-package test-lang test-library \
test-protocol
# Compiler-output identity stops after w6c has emitted every package `.s`.
# Driver -S still performs discovery, unit composition, dependency ordering,
@@ -969,7 +974,7 @@ nocc:
@echo "NOCC OK: $(STAGE0)/* reproduces itself from source. cc not invoked."
.PHONY: all cstage wwstage wwfixture test-wwfixture-process test-wwfixture \
test test-unit test-compiler-smoke test-compiler test-package \
test test-unit test-compiler-smoke test-compiler test-package test-protocol \
test-lang test-library test-commit test-lang-byteid \
$(LANG_TEST_TARGETS) $(BYTEID_WW_TARGETS) \
$(SEP_WW_TARGETS) test-data-byteid test-byteid \

138
protocol/README.md Normal file
View File

@@ -0,0 +1,138 @@
# WWAR v1 Phase 0 conformance
This directory freezes the byte-level interoperability surface of WWAR v1. It
does not describe or execute the WW package manager, compiler, action graph,
scheduler, provider system, cache, or bootstrap process.
Phase 0 follows one rule: schemas describe representation, executable WW/C
code owns behavior, and tests observe that behavior. The Python programs here
are development-time conformance tools. They are not part of a production WW
build and are not a second build-system implementation.
## Contents
- `schema/wire.json` fixes the WWAR envelope, primitive frames, container
frames, canonical Unicode rules, limits, and malformed-input precedence.
- `schema/records.json` fixes scalar representations, record fields and tags,
enum values, union discriminants, encoded defaults, record kinds, wrapper
assignments, and artifact-to-digest identities.
- `schema/digests.json` fixes the twelve domain separators and their finite,
non-nestable byte formulas.
- `schema/wwar-v1.sha256` fixes the exact bytes of those three schemas.
- `tool.py` strictly validates the schemas, encodes and decodes WWAR values and
typed records, computes the frozen digests, and generates data-only lookup
tables.
- `generated/wwar_v1_tables.json` is a compact, pre-indexed codec table compiled
from the three schemas. It contains no executable policy or schema prose.
- `vectors/` contains compact wire, typed-record, wrapper, and digest goldens.
- `check.py` is the aggregate conformance gate and contains a small independent
raw-wire/hash oracle. That oracle does not load or interpret record schemas.
Run the complete gate from the repository root:
```sh
make test-protocol
```
Regenerate the checked-in data after an intentional schema change:
```sh
python3 -B protocol/tool.py write-manifest
python3 -B protocol/tool.py emit-tables --output protocol/generated/wwar_v1_tables.json
python3 -B protocol/check.py
```
Generation is deterministic. The gate regenerates in two fresh directories,
compares their bytes, and compares both with the checked-in output. All JSON is
UTF-8, duplicate keys are rejected, and schema strings must already be NFC.
The generated table removes repetitive lookup construction from future codecs
instead of copying the authoring schemas. Its positional columns are fixed:
- a type is `[kind, scalar-or-name-or-element-type]`;
- a scalar is `[base, length, maximum, values, path-class, nonempty]`;
- a path is `[shape, absolute, allow-dot, allow-dotdot, ASCII, roots]`;
- a record is `[top-level-kind, fields]`;
- a field is `[tag, name, type, cardinality, default, order, order-by]`;
- a union is `[discriminator, case-table]`;
- a digest is `[algorithm, separator, input, formula, entry-encoding]`.
The generator also turns enum, kind, artifact, and wrapper arrays into direct
keyed lookup tables. The checked-in output carries the exact input-file hashes
and bundle digest, and the gate proves it equals a fresh compilation.
Path lexical checks are derived from the closed path columns; there is no
second free-form `rules` list that can disagree with the codec.
## Frozen surface
The v1 catalog contains:
- seven primitive/container wire type codes;
- 165 representation records and 809 field tags;
- 41 enums with 202 numeric values;
- three structural unions with 35 arms;
- 22 top-level record-kind assignments, all at schema version 1;
- 12 domain-separated SHA-256 formulas;
- four compact wrapper assignments.
Every declared record field is present on the wire in increasing tag order.
An optional field's `encoded_default` is its encoded empty value, not permission
to omit the field. A decoder therefore reports `MISSING_FIELD` when a declared
tag is absent. Union-inactive fields likewise remain present with their encoded
empty defaults.
The generic WWAR envelope carries exactly one complete value. Typed record
identity and wrapper operations additionally require the record named by their
schema. This resolves an inconsistency in the experiment: its envelope prose
said “record”, while both readers and nearly all primitive/container goldens
accepted a generic root value.
The only experimental record deliberately not retained is
`NativeTypeGraphContextV1`. It was unreachable from every top-level record,
digest preimage, and signature preimage, and existed only as context for the
discarded projection proof runtime. The other digest-preimage records remain
as wire layouts; how later phases construct them is not Phase 0 behavior.
The migration compared a canonical assignment catalog against the archived
experimental IDL. Its SHA-256 was
`7b8660b451cc5260e9c7ad8d45da8e62313ff1f9b54259e211ff04b49c38671f`.
The comparison covers retained record names, field names/types/tags/defaults,
scalar wire refinements, path classes, enum numbers, union arms, record kinds,
digest formulas, artifact mappings, and wrapper assignments. In particular, it
preserves intentional numeric holes;
for example, `FinalLinkTokenKind` has no value 4.
## What is deferred
Phase 0 retains only bytes and identities. The implementation phases own the
following behavior and test it when it exists:
- Phase 1: source import extraction, package loading and cycles, compiler export
production/consumption, public type closure, and ABI projection construction.
- Phase 2: action construction, action graphs, scheduling, failure propagation,
CAS/cache storage and validation, sandboxing, and environment policy.
- Phase 3: manifest/lock/work/vendor text parsers, module and source resolution,
fetching, source-store policy, and source-tree filesystem construction.
- Phase 4: native providers, recursive provider expansion, lowering, link-plan
construction, tool adapters, and platform/native policy.
- Phase 6: bootstrap-plan execution, staged rebuilds, and byte-for-byte
fixed-point comparison.
There is intentionally no predicate language, context lookup mechanism,
projection proof system, lowering program, graph interpreter, text-parser AST,
semantic answer table, or bootstrap proof record in this directory. Digest
preimage layouts and byte formulas do not prescribe how those values are
derived.
## Change discipline
WWAR v1 assignments are compatibility data. Do not renumber or silently reuse
tags, enum values, union discriminants, record kinds, wrapper versions, or
digest separators. An incompatible representation change requires a new wire
or schema version and new vectors.
Declarative additions must remain closed data shapes and must remove more
handwritten complexity than they introduce. Build behavior belongs in ordinary
typed WW/C functions with focused tests. A generator may remove repetitive
codec tables, but it must remain generic, deterministic, reviewable, and
byte-for-byte reproducible.

1198
protocol/check.py Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,253 @@
{
"format": "wwar-v1-digest-schema",
"version": 1,
"domains": [
{
"name": "action-key",
"algorithm": "sha256",
"separator_utf8_hex": "57572d414354494f4e2d4b455900",
"input": {
"record": "ActionRecordV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"scalar": "ActionKey"
}
},
{
"name": "blob",
"algorithm": "sha256",
"separator_utf8_hex": "57572d424c4f4200",
"input": {
"kind": "bytes"
},
"formula": [
"separator",
"u64be(input-length)",
"input-bytes"
],
"result": {
"record": "TypedDigestV1",
"domain": "blob",
"record-kind": 0,
"record-schema": 0
}
},
{
"name": "calling-conventions",
"algorithm": "sha256",
"separator_utf8_hex": "57572d43414c4c494e472d434f4e56454e54494f4e532d563100",
"input": {
"record": "CallingConventionTableProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "export-declaration-abi",
"algorithm": "sha256",
"separator_utf8_hex": "57572d4558504f52542d4445434c2d4142492d563100",
"input": {
"record": "ExportDeclarationABIProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "native-data-layout",
"algorithm": "sha256",
"separator_utf8_hex": "57572d4e41544956452d444154412d4c41594f55542d563100",
"input": {
"record": "NativeDataLayoutProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "native-header-contract",
"algorithm": "sha256",
"separator_utf8_hex": "57572d4e41544956452d4845414445522d434f4e54524143542d563100",
"input": {
"record": "NativeHeaderContractProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "native-type-contract",
"algorithm": "sha256",
"separator_utf8_hex": "57572d4e41544956452d545950452d434f4e54524143542d563100",
"input": {
"record": "NativeTypeContractProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "origin-type-contract",
"algorithm": "sha256",
"separator_utf8_hex": "57572d4f524947494e2d545950452d434f4e54524143542d563100",
"input": {
"record": "OriginTypeContractProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "public-abi",
"algorithm": "sha256",
"separator_utf8_hex": "57572d5055424c49432d4142492d563100",
"input": {
"record": "PublicABIProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "public-type",
"algorithm": "sha256",
"separator_utf8_hex": "57572d5055424c49432d545950452d563100",
"input": {
"record": "PublicTypeProjectionV1",
"encoding": "WWAR"
},
"formula": [
"separator",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"kind": "bytes",
"length": 32
}
},
{
"name": "record",
"algorithm": "sha256",
"separator_utf8_hex": "57572d5245434f524400",
"input": {
"record": "top-level record",
"encoding": "WWAR"
},
"formula": [
"separator",
"u32be(record-kind)",
"u32be(record-schema)",
"u64be(encoded-length)",
"encoded-bytes"
],
"result": {
"record": "TypedDigestV1",
"domain": "record",
"record-kind": "1..22",
"record-schema": 1
}
},
{
"name": "source-tree",
"algorithm": "sha256",
"separator_utf8_hex": "77772d736f757263652d747265652d763100",
"input": {
"record": "SourceTreeProjectionV1",
"encoding": "special-source-tree-v1"
},
"entry_encoding": {
"path": [
"u64be-byte-length",
"raw-nfc-utf8"
],
"type": {
"dir": 1,
"file": 2
},
"executable": {
"false": 0,
"true": 1,
"directory": 0
},
"content": {
"dir": [
"u64be",
0
],
"file": [
"u64be",
32,
"raw-sha256"
]
},
"order": "raw-utf8-path-bytes"
},
"formula": [
"separator",
"concatenate entry path,type,executable,content frames"
],
"result": {
"kind": "bytes",
"scalar": "SourceTreeDigest"
}
}
]
}

1958
protocol/schema/records.json Normal file

File diff suppressed because it is too large Load Diff

145
protocol/schema/wire.json Normal file
View File

@@ -0,0 +1,145 @@
{
"format": "wwar-v1-wire-schema",
"version": 1,
"magic_hex": "57574152",
"schema_version": 1,
"root": "one complete value; typed identities and wrappers additionally require their declared record",
"value_frame": {
"type": "u8",
"payload_length": "u64be",
"payload": "exactly payload_length bytes"
},
"container_frames": {
"list": {
"count": "u32be",
"members": "count repetitions of u64be(value_length) followed by exactly one complete value frame"
},
"map": {
"count": "u32be",
"members": "count repetitions of u64be(key_length), raw UTF-8 key, u64be(value_length), complete value frame"
},
"record": {
"count": "u32be",
"members": "count repetitions of u32be(field_tag), u64be(value_length), complete value frame"
}
},
"wire_types": [
{
"name": "bytes",
"code": 1,
"payload": {
"frame": "raw-bytes",
"canonical": [
"declared-limit",
"frame-available",
"exact-length"
]
}
},
{
"name": "string",
"code": 2,
"payload": {
"frame": "utf8",
"canonical": [
"declared-limit",
"frame-available",
"valid-utf8",
"no-nul-string",
"nfc-string",
"exact-length"
]
}
},
{
"name": "uint",
"code": 3,
"payload": {
"frame": "minimal-uint",
"canonical": [
"declared-limit",
"frame-available",
"uint-width",
"uint-minimal",
"exact-length"
]
}
},
{
"name": "bool",
"code": 4,
"payload": {
"frame": "byte",
"canonical": [
"declared-limit",
"frame-available",
"bool-00-or-01",
"exact-length"
]
}
},
{
"name": "list",
"code": 5,
"payload": {
"frame": "counted-values",
"canonical": [
"declared-limit",
"frame-available",
"declared-order",
"exact-length"
]
}
},
{
"name": "map",
"code": 6,
"payload": {
"frame": "counted-pairs",
"canonical": [
"declared-limit",
"frame-available",
"raw-utf8-key-order",
"exact-length"
]
}
},
{
"name": "record",
"code": 7,
"payload": {
"frame": "counted-fields",
"canonical": [
"declared-limit",
"frame-available",
"increasing-tag-order",
"exact-length"
]
}
}
],
"limits": {
"container_members_max": 16777215,
"nesting_depth_max": 64,
"string_or_bytes_length_max": 2147483647,
"uint_max": "18446744073709551615",
"wwar_payload_length_max": "18446744073709551615"
},
"unicode": {
"version": "16.0.0",
"form": "NFC",
"nul_forbidden": true,
"scalar_values_only": true,
"utf8": "RFC 3629 shortest form; surrogates and values above U+10FFFF are invalid",
"validation_order": [
"decode shortest-form UTF-8",
"reject NUL and non-scalar values",
"require exact NFC under Unicode 16.0.0"
]
},
"error_precedence": [
"declared limit before frame availability",
"frame truncation before type-specific or exact-length checks",
"fully framed child length mismatch before child interpretation"
]
}

View File

@@ -0,0 +1,3 @@
fd27eaf17bb8767f685bad4b4f577eb7521771f9ea58eeb4824a78a622664f4f wire.json
4b4d18f60de652831e16d4c34b6c291020991ba7e5493a25f9f28b11d14b3cba records.json
de722e871e3bb8c5801d94d214b3cbe03d111b3a53957ca95a876f53e11e58cc digests.json

2100
protocol/tool.py Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,873 @@
{
"format": "wwar-v1-record-vectors",
"version": 1,
"archived_assignment_sha256": "7b8660b451cc5260e9c7ad8d45da8e62313ff1f9b54259e211ff04b49c38671f",
"assignment_sha256": "eb9397b996853d7f7b1b6bcaf6859ebbf076e5eb1dd9308ee53c7afae1314357",
"coverage": {
"scalar_types": 44,
"path_classes": 10,
"records": 165,
"fields": 809,
"encoded_defaults": 363,
"enums": 41,
"enum_values": 202,
"unions": 3,
"union_arms": 35,
"record_kinds": 22,
"artifact_mappings": 15,
"wrappers": 4
},
"cases": [
{
"id": "tree.encoded-defaults",
"record": "TreeV1",
"value": {},
"wwar_hex": "5757415200010700000000000000330000000200000001000000000000000a0300000000000000010100000002000000000000000d05000000000000000400000000",
"decoded": {
"schema": 1,
"entries": []
},
"record_id": "653a4144fd5c916fc3bf5c1324296a757d5acf735ab888fe1842dcf5a01ca8da"
},
{
"id": "typed-digest.blob",
"record": "TypedDigestV1",
"value": {
"domain": "blob",
"algorithm": "sha256",
"record-kind": 0,
"record-schema": 0,
"digest": "0000000000000000000000000000000000000000000000000000000000000000"
},
"wwar_hex": "5757415200010700000000000000910000000500000001000000000000000a0300000000000000010100000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010000000004000000000000000a030000000000000001000000000500000000000000290100000000000000200000000000000000000000000000000000000000000000000000000000000000",
"decoded": {
"domain": "blob",
"algorithm": "sha256",
"record-kind": 0,
"record-schema": 0,
"digest": "0000000000000000000000000000000000000000000000000000000000000000"
}
},
{
"id": "typed-digest.record",
"record": "TypedDigestV1",
"value": {
"domain": "record",
"algorithm": "sha256",
"record-kind": 1,
"record-schema": 1,
"digest": "0000000000000000000000000000000000000000000000000000000000000000"
},
"wwar_hex": "5757415200010700000000000000910000000500000001000000000000000a0300000000000000010200000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010100000004000000000000000a030000000000000001010000000500000000000000290100000000000000200000000000000000000000000000000000000000000000000000000000000000",
"decoded": {
"domain": "record",
"algorithm": "sha256",
"record-kind": 1,
"record-schema": 1,
"digest": "0000000000000000000000000000000000000000000000000000000000000000"
}
}
],
"union_cases": [
{
"id": "LinkTokenTemplateUnion.object",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "object",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010100000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.archive",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "archive",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010200000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.shared",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "shared",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010300000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.provider",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "provider",
"artifact": {},
"provider-slot": "x",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000010400000002000000000000000d0700000000000000040000000000000003000000000000000a0200000000000000017800000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.group",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "group",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": [
{
"kind": "object",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
}
]
},
"wwar_hex": "5757415200010700000000000002030000000800000001000000000000000a0300000000000000010500000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000015a05000000000000015100000001000000000000014507000000000000013c0000000800000001000000000000000a0300000000000000010100000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.whole",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "whole",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": [
{
"kind": "object",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
}
]
},
"wwar_hex": "5757415200010700000000000002030000000800000001000000000000000a0300000000000000010600000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000015a05000000000000015100000001000000000000014507000000000000013c0000000800000001000000000000000a0300000000000000010100000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.as-needed",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "as-needed",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": [
{
"kind": "object",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
}
]
},
"wwar_hex": "5757415200010700000000000002030000000800000001000000000000000a0300000000000000010700000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000015a05000000000000015100000001000000000000014507000000000000013c0000000800000001000000000000000a0300000000000000010100000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.linker-script",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "linker-script",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010800000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.version-script",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "version-script",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010900000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.export-map",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "export-map",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010a00000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.def-file",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "def-file",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "57574152000107000000000000013c0000000800000001000000000000000a0300000000000000010b00000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.runtime-search",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "runtime-search",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "/x",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b90000000800000001000000000000000a0300000000000000010c00000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000b0200000000000000022f7800000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.install-name",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "install-name",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000010d00000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.dynamic-loader",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "dynamic-loader",
"artifact": {
"namespace": "source",
"owner": "",
"name": "x",
"artifact-kind": "file",
"expected": {},
"mode": "data"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "/x",
"items": []
},
"wwar_hex": "57574152000107000000000000013e0000000800000001000000000000000a0300000000000000010e00000002000000000000009307000000000000008a0000000600000001000000000000000a0300000000000000010100000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0300000000000000010100000005000000000000000d0700000000000000040000000000000006000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000b0200000000000000022f7800000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.entry",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "entry",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000010f00000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.retain",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "retain",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000011000000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.splice",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "splice",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000011100000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenTemplateUnion.script-slot",
"record": "LinkTokenTemplateV1",
"value": {
"kind": "script-slot",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b60000000800000001000000000000000a0300000000000000011200000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.object",
"record": "LinkTokenV1",
"value": {
"kind": "object",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010100000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.archive",
"record": "LinkTokenV1",
"value": {
"kind": "archive",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010200000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.shared",
"record": "LinkTokenV1",
"value": {
"kind": "shared",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010300000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.group",
"record": "LinkTokenV1",
"value": {
"kind": "group",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": [
{
"kind": "object",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
}
]
},
"wwar_hex": "5757415200010700000000000001a80000000800000001000000000000000a0300000000000000010500000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a040000000000000001000000000600000000000000090200000000000000000000000700000000000000090200000000000000000000000800000000000000ff0500000000000000f60000000100000000000000ea0700000000000000e10000000800000001000000000000000a0300000000000000010100000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.whole",
"record": "LinkTokenV1",
"value": {
"kind": "whole",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": [
{
"kind": "object",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
}
]
},
"wwar_hex": "5757415200010700000000000001a80000000800000001000000000000000a0300000000000000010600000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a040000000000000001000000000600000000000000090200000000000000000000000700000000000000090200000000000000000000000800000000000000ff0500000000000000f60000000100000000000000ea0700000000000000e10000000800000001000000000000000a0300000000000000010100000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.as-needed",
"record": "LinkTokenV1",
"value": {
"kind": "as-needed",
"artifact": {},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": [
{
"kind": "object",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
}
]
},
"wwar_hex": "5757415200010700000000000001a80000000800000001000000000000000a0300000000000000010700000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a040000000000000001000000000600000000000000090200000000000000000000000700000000000000090200000000000000000000000800000000000000ff0500000000000000f60000000100000000000000ea0700000000000000e10000000800000001000000000000000a0300000000000000010100000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.linker-script",
"record": "LinkTokenV1",
"value": {
"kind": "linker-script",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010800000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.version-script",
"record": "LinkTokenV1",
"value": {
"kind": "version-script",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010900000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.export-map",
"record": "LinkTokenV1",
"value": {
"kind": "export-map",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010a00000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.def-file",
"record": "LinkTokenV1",
"value": {
"kind": "def-file",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000e10000000800000001000000000000000a0300000000000000010b00000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.runtime-search",
"record": "LinkTokenV1",
"value": {
"kind": "runtime-search",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "/x",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b90000000800000001000000000000000a0300000000000000010c00000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000b0200000000000000022f7800000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.install-name",
"record": "LinkTokenV1",
"value": {
"kind": "install-name",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000010d00000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.dynamic-loader",
"record": "LinkTokenV1",
"value": {
"kind": "dynamic-loader",
"artifact": {
"slot": "",
"artifact-kind": "file"
},
"provider-slot": "",
"value": "",
"enabled": false,
"validated-path": "",
"runtime-path": "/x",
"items": []
},
"wwar_hex": "5757415200010700000000000000e30000000800000001000000000000000a0300000000000000010e00000002000000000000003807000000000000002f0000000200000001000000000000000902000000000000000000000002000000000000000a0300000000000000010100000003000000000000000902000000000000000000000004000000000000000902000000000000000000000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000b0200000000000000022f7800000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.entry",
"record": "LinkTokenV1",
"value": {
"kind": "entry",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000010f00000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "LinkTokenUnion.retain",
"record": "LinkTokenV1",
"value": {
"kind": "retain",
"artifact": {},
"provider-slot": "",
"value": "x",
"enabled": false,
"validated-path": "",
"runtime-path": "",
"items": []
},
"wwar_hex": "5757415200010700000000000000b70000000800000001000000000000000a0300000000000000011000000002000000000000000d0700000000000000040000000000000003000000000000000902000000000000000000000004000000000000000a0200000000000000017800000005000000000000000a0400000000000000010000000006000000000000000902000000000000000000000007000000000000000902000000000000000000000008000000000000000d05000000000000000400000000"
},
{
"id": "TypedDigestUnion.blob",
"record": "TypedDigestV1",
"value": {
"domain": "blob",
"algorithm": "sha256",
"record-kind": 0,
"record-schema": 0,
"digest": "00"
},
"wwar_hex": "5757415200010700000000000000720000000500000001000000000000000a0300000000000000010100000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010000000004000000000000000a0300000000000000010000000005000000000000000a01000000000000000100"
},
{
"id": "TypedDigestUnion.record",
"record": "TypedDigestV1",
"value": {
"domain": "record",
"algorithm": "sha256",
"record-kind": 1,
"record-schema": 1,
"digest": "00"
},
"wwar_hex": "5757415200010700000000000000720000000500000001000000000000000a0300000000000000010200000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010100000004000000000000000a0300000000000000010100000005000000000000000a01000000000000000100"
}
],
"wrapper_cases": [
{
"id": "wwe.magic-and-body",
"wrapper": ".wwe",
"value": {
"schema": 1,
"reader-capabilities": [],
"language-type-protocol": {
"language": "x",
"type-system": "x"
},
"abi": {
"product-platform": {
"domain": "blob",
"algorithm": "sha256",
"record-kind": 0,
"record-schema": 0,
"digest": "00"
},
"c-abi": "",
"object-abi": "x",
"runtime-abi": "x"
},
"package": {
"identity": "",
"name": ""
},
"origin-types": [],
"type-graph": [],
"declarations": [],
"public-init-abi": {
"init-symbols": [],
"foreign-providers": [],
"abi-facts": {}
},
"public-type-digest": "0000000000000000000000000000000000000000000000000000000000000000",
"public-abi-digest": "0000000000000000000000000000000000000000000000000000000000000000"
},
"bytes_hex": "57574558000000015757415200010700000000000002b50000000b00000001000000000000000a0300000000000000010100000002000000000000000d050000000000000004000000000000000300000000000000390700000000000000300000000200000001000000000000000a0200000000000000017800000002000000000000000a020000000000000001780000000400000000000000d50700000000000000cc0000000400000001000000000000007b0700000000000000720000000500000001000000000000000a0300000000000000010100000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010000000004000000000000000a0300000000000000010000000005000000000000000a0100000000000000010000000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0200000000000000017800000005000000000000003707000000000000002e0000000200000001000000000000000902000000000000000000000002000000000000000902000000000000000000000006000000000000000d0500000000000000040000000000000007000000000000000d0500000000000000040000000000000008000000000000000d0500000000000000040000000000000009000000000000005807000000000000004f0000000300000001000000000000000d0500000000000000040000000000000002000000000000000d0500000000000000040000000000000003000000000000000d060000000000000004000000000000000a000000000000002901000000000000002000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000290100000000000000200000000000000000000000000000000000000000000000000000000000000000"
}
],
"invalid_cases": [
{
"id": "kind-substitution",
"operation": "record-id",
"record": "TreeV1",
"kind": 2,
"schema": 1,
"value": {},
"error": {
"code": "KIND_SUBSTITUTION",
"path": "$.kind"
}
},
{
"id": "missing-field",
"operation": "decode-record",
"record": "TreeV1",
"input_hex": "57574152000107000000000000001a0000000100000001000000000000000a03000000000000000101",
"error": {
"code": "MISSING_FIELD",
"path": "$.entries"
}
},
{
"id": "unknown-field",
"operation": "decode-record",
"record": "TreeV1",
"input_hex": "5757415200010700000000000000490000000300000001000000000000000a0300000000000000010100000002000000000000000d0500000000000000040000000000000003000000000000000a04000000000000000100",
"error": {
"code": "UNKNOWN_FIELD",
"path": "$.3"
}
},
{
"id": "unknown-enum",
"operation": "decode-record",
"record": "TypedDigestV1",
"input_hex": "5757415200010700000000000000910000000500000001000000000000000a0300000000000000016300000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010000000004000000000000000a030000000000000001000000000500000000000000290100000000000000200000000000000000000000000000000000000000000000000000000000000000",
"error": {
"code": "UNKNOWN_ENUM",
"path": "$.domain"
}
},
{
"id": "wwe-bad-magic",
"operation": "decode-wrapper",
"wrapper": ".wwe",
"input_hex": "58574558000000015757415200010700000000000002b50000000b00000001000000000000000a0300000000000000010100000002000000000000000d050000000000000004000000000000000300000000000000390700000000000000300000000200000001000000000000000a0200000000000000017800000002000000000000000a020000000000000001780000000400000000000000d50700000000000000cc0000000400000001000000000000007b0700000000000000720000000500000001000000000000000a0300000000000000010100000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010000000004000000000000000a0300000000000000010000000005000000000000000a0100000000000000010000000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0200000000000000017800000005000000000000003707000000000000002e0000000200000001000000000000000902000000000000000000000002000000000000000902000000000000000000000006000000000000000d0500000000000000040000000000000007000000000000000d0500000000000000040000000000000008000000000000000d0500000000000000040000000000000009000000000000005807000000000000004f0000000300000001000000000000000d0500000000000000040000000000000002000000000000000d0500000000000000040000000000000003000000000000000d060000000000000004000000000000000a000000000000002901000000000000002000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000290100000000000000200000000000000000000000000000000000000000000000000000000000000000",
"error": {
"code": "BAD_MAGIC",
"path": "$"
}
},
{
"id": "wwe-trailing",
"operation": "decode-wrapper",
"wrapper": ".wwe",
"input_hex": "57574558000000015757415200010700000000000002b50000000b00000001000000000000000a0300000000000000010100000002000000000000000d050000000000000004000000000000000300000000000000390700000000000000300000000200000001000000000000000a0200000000000000017800000002000000000000000a020000000000000001780000000400000000000000d50700000000000000cc0000000400000001000000000000007b0700000000000000720000000500000001000000000000000a0300000000000000010100000002000000000000000a0300000000000000010100000003000000000000000a0300000000000000010000000004000000000000000a0300000000000000010000000005000000000000000a0100000000000000010000000002000000000000000902000000000000000000000003000000000000000a0200000000000000017800000004000000000000000a0200000000000000017800000005000000000000003707000000000000002e0000000200000001000000000000000902000000000000000000000002000000000000000902000000000000000000000006000000000000000d0500000000000000040000000000000007000000000000000d0500000000000000040000000000000008000000000000000d0500000000000000040000000000000009000000000000005807000000000000004f0000000300000001000000000000000d0500000000000000040000000000000002000000000000000d0500000000000000040000000000000003000000000000000d060000000000000004000000000000000a000000000000002901000000000000002000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000029010000000000000020000000000000000000000000000000000000000000000000000000000000000000",
"error": {
"code": "TRAILING_BYTES",
"path": "$"
}
}
]
}

View File

@@ -0,0 +1,222 @@
{
"format": "wwar-v1-wire-invalid",
"version": 1,
"cases": [
{
"id": "bad-magic",
"input_hex": "58574152000107000000000000000400000000",
"error": {
"code": "BAD_MAGIC",
"path": "$"
}
},
{
"id": "bad-version",
"input_hex": "57574152000207000000000000000400000000",
"error": {
"code": "BAD_VERSION",
"path": "$"
}
},
{
"id": "truncated-magic",
"input_hex": "5757",
"error": {
"code": "TRUNCATED",
"path": "$"
}
},
{
"id": "truncated-version",
"input_hex": "5757415200",
"error": {
"code": "TRUNCATED",
"path": "$"
}
},
{
"id": "truncated-value-header",
"input_hex": "5757415200010100",
"error": {
"code": "TRUNCATED",
"path": "$"
}
},
{
"id": "bytes-limit-before-truncation",
"input_hex": "575741520001010000000080000000",
"error": {
"code": "LIMIT_EXCEEDED",
"path": "$"
}
},
{
"id": "bytes-truncated",
"input_hex": "575741520001010000000000000001",
"error": {
"code": "TRUNCATED",
"path": "$"
}
},
{
"id": "bool-truncated-before-length",
"input_hex": "575741520001040000000000000002",
"error": {
"code": "TRUNCATED",
"path": "$"
}
},
{
"id": "bool-length-mismatch",
"input_hex": "5757415200010400000000000000020000",
"error": {
"code": "LENGTH_MISMATCH",
"path": "$"
}
},
{
"id": "bool-invalid",
"input_hex": "57574152000104000000000000000102",
"error": {
"code": "INVALID_BOOL",
"path": "$"
}
},
{
"id": "uint-empty",
"input_hex": "575741520001030000000000000000",
"error": {
"code": "NONMINIMAL_UINT",
"path": "$"
}
},
{
"id": "uint-nonminimal",
"input_hex": "5757415200010300000000000000020001",
"error": {
"code": "NONMINIMAL_UINT",
"path": "$"
}
},
{
"id": "uint-overflow",
"input_hex": "575741520001030000000000000009010000000000000000",
"error": {
"code": "OVERFLOW",
"path": "$"
}
},
{
"id": "string-invalid-utf8",
"input_hex": "575741520001020000000000000001ff",
"error": {
"code": "INVALID_UTF8",
"path": "$"
}
},
{
"id": "string-nul",
"input_hex": "57574152000102000000000000000100",
"error": {
"code": "NUL_STRING",
"path": "$"
}
},
{
"id": "string-non-nfc",
"input_hex": "57574152000102000000000000000365cc81",
"error": {
"code": "NON_NFC",
"path": "$"
}
},
{
"id": "list-count-limit",
"input_hex": "57574152000105000000000000000401000000",
"error": {
"code": "LIMIT_EXCEEDED",
"path": "$"
}
},
{
"id": "list-truncated-member",
"input_hex": "57574152000105000000000000000400000001",
"error": {
"code": "TRUNCATED",
"path": "$[0]"
}
},
{
"id": "list-child-length-mismatch",
"input_hex": "57574152000105000000000000000c00000001000000000000000a",
"error": {
"code": "LENGTH_MISMATCH",
"path": "$[0]"
}
},
{
"id": "map-duplicate",
"input_hex": "57574152000106000000000000003a00000002000000000000000161000000000000000a04000000000000000100000000000000000161000000000000000a04000000000000000100",
"error": {
"code": "DUPLICATE_MAP_KEY",
"path": "$[1].key"
}
},
{
"id": "map-order",
"input_hex": "57574152000106000000000000003a00000002000000000000000162000000000000000a04000000000000000100000000000000000161000000000000000a04000000000000000101",
"error": {
"code": "MAP_KEY_ORDER",
"path": "$[1].key"
}
},
{
"id": "record-duplicate",
"input_hex": "5757415200010700000000000000300000000200000001000000000000000a0400000000000000010000000001000000000000000a04000000000000000100",
"error": {
"code": "FIELD_ORDER",
"path": "$.1"
}
},
{
"id": "record-order",
"input_hex": "5757415200010700000000000000300000000200000002000000000000000a0400000000000000010000000001000000000000000a04000000000000000100",
"error": {
"code": "FIELD_ORDER",
"path": "$.1"
}
},
{
"id": "record-zero-tag",
"input_hex": "57574152000107000000000000001a0000000100000000000000000000000a04000000000000000100",
"error": {
"code": "FIELD_ORDER",
"path": "$.0"
}
},
{
"id": "unknown-type",
"input_hex": "575741520001080000000000000000",
"error": {
"code": "UNKNOWN_TYPE",
"path": "$"
}
},
{
"id": "trailing",
"input_hex": "5757415200010700000000000000040000000000",
"error": {
"code": "TRAILING_BYTES",
"path": "$"
}
},
{
"id": "nesting-limit",
"input_hex": "57574152000105000000000000055600000001000000000000054a05000000000000054100000001000000000000053505000000000000052c00000001000000000000052005000000000000051700000001000000000000050b0500000000000005020000000100000000000004f60500000000000004ed0000000100000000000004e10500000000000004d80000000100000000000004cc0500000000000004c30000000100000000000004b70500000000000004ae0000000100000000000004a205000000000000049900000001000000000000048d05000000000000048400000001000000000000047805000000000000046f00000001000000000000046305000000000000045a00000001000000000000044e05000000000000044500000001000000000000043905000000000000043000000001000000000000042405000000000000041b00000001000000000000040f0500000000000004060000000100000000000003fa0500000000000003f10000000100000000000003e50500000000000003dc0000000100000000000003d00500000000000003c70000000100000000000003bb0500000000000003b20000000100000000000003a605000000000000039d00000001000000000000039105000000000000038800000001000000000000037c05000000000000037300000001000000000000036705000000000000035e00000001000000000000035205000000000000034900000001000000000000033d05000000000000033400000001000000000000032805000000000000031f00000001000000000000031305000000000000030a0000000100000000000002fe0500000000000002f50000000100000000000002e90500000000000002e00000000100000000000002d40500000000000002cb0000000100000000000002bf0500000000000002b60000000100000000000002aa0500000000000002a100000001000000000000029505000000000000028c00000001000000000000028005000000000000027700000001000000000000026b05000000000000026200000001000000000000025605000000000000024d00000001000000000000024105000000000000023800000001000000000000022c05000000000000022300000001000000000000021705000000000000020e0000000100000000000002020500000000000001f90000000100000000000001ed0500000000000001e40000000100000000000001d80500000000000001cf0000000100000000000001c30500000000000001ba0000000100000000000001ae0500000000000001a500000001000000000000019905000000000000019000000001000000000000018405000000000000017b00000001000000000000016f05000000000000016600000001000000000000015a05000000000000015100000001000000000000014505000000000000013c00000001000000000000013005000000000000012700000001000000000000011b0500000000000001120000000100000000000001060500000000000000fd0000000100000000000000f10500000000000000e80000000100000000000000dc0500000000000000d30000000100000000000000c70500000000000000be0000000100000000000000b20500000000000000a900000001000000000000009d05000000000000009400000001000000000000008805000000000000007f00000001000000000000007305000000000000006a00000001000000000000005e05000000000000005500000001000000000000004905000000000000004000000001000000000000003405000000000000002b00000001000000000000001f05000000000000001600000001000000000000000a04000000000000000100",
"error": {
"code": "LIMIT_EXCEEDED",
"path": "$[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]"
}
}
]
}

View File

@@ -0,0 +1,179 @@
{
"format": "wwar-v1-wire-valid",
"version": 1,
"cases": [
{
"id": "bool.false",
"value": {
"bool": false
},
"wwar_hex": "57574152000104000000000000000100",
"sha256": "a8c3e92d7edeecbc654f8f9390ea3eb12239202daa8b3b722f0712c30d1c8879"
},
{
"id": "bool.true",
"value": {
"bool": true
},
"wwar_hex": "57574152000104000000000000000101",
"sha256": "79f3f90ea5b8064498618c46a07327599f7106d675de57fd42d3d8507b768437"
},
{
"id": "bytes.empty",
"value": {
"bytes": ""
},
"wwar_hex": "575741520001010000000000000000",
"sha256": "8e009dfe2f881177e492688bb049de22f43d81d986546807c9f772096d9fe37f"
},
{
"id": "bytes.payload",
"value": {
"bytes": "0001ff"
},
"wwar_hex": "5757415200010100000000000000030001ff",
"sha256": "02e77171cbbb17f903aba78724c3cbfc14e3935b3de11bb3b430f18d560c9056"
},
{
"id": "string.empty",
"value": {
"string": ""
},
"wwar_hex": "575741520001020000000000000000",
"sha256": "c298a28c53cf596d254a78ac97c6c569477ac630abd8062df3f00f0a1122267d"
},
{
"id": "string.ascii",
"value": {
"string": "WWAR"
},
"wwar_hex": "57574152000102000000000000000457574152",
"sha256": "fab2562fb19a6baf0ea3ebf9e1b911596b79dee862c813a6f1384fe810073516"
},
{
"id": "string.nfc",
"value": {
"string": "é"
},
"wwar_hex": "575741520001020000000000000002c3a9",
"sha256": "9a42f284f8a3c27e4b7066d7a4528906b3c1645c81658744fc3b856191ed3342"
},
{
"id": "uint.zero",
"value": {
"uint": "0"
},
"wwar_hex": "57574152000103000000000000000100",
"sha256": "4904edc76c78e73847458c94978a584e464f8c2eb98f00ba35c662d2f1767ed5"
},
{
"id": "uint.255",
"value": {
"uint": "255"
},
"wwar_hex": "575741520001030000000000000001ff",
"sha256": "aa7c0cebc79e38b0102278f045375382c727253413ccfa002b70dfe3ed2819d4"
},
{
"id": "uint.256",
"value": {
"uint": "256"
},
"wwar_hex": "5757415200010300000000000000020100",
"sha256": "a68e8f2aedacb5259c116110773644f328372f2091043fd0651df87319eb8870"
},
{
"id": "uint.max",
"value": {
"uint": "18446744073709551615"
},
"wwar_hex": "575741520001030000000000000008ffffffffffffffff",
"sha256": "1f95d731a7a4889c49e5c8d1f97b44820a345926125c7625d9ef86745f35e260"
},
{
"id": "list.empty",
"value": {
"list": []
},
"wwar_hex": "57574152000105000000000000000400000000",
"sha256": "f211cff02842ce114f6f5ef655593042e1e52531da70fa6df9f8c8eded7b534e"
},
{
"id": "list.ordered",
"value": {
"list": [
{
"string": "z"
},
{
"string": "a"
}
]
},
"wwar_hex": "57574152000105000000000000002800000002000000000000000a0200000000000000017a000000000000000a02000000000000000161",
"sha256": "15c65285fe9d9b4c1beb1c20589c6408b54f1d48879a41cc3da12664e28b2439"
},
{
"id": "map.empty",
"value": {
"map": []
},
"wwar_hex": "57574152000106000000000000000400000000",
"sha256": "194b1bb965574f395e9a4c040eec66c4aa3c8691b1b0a000cff5a59de75531c1"
},
{
"id": "map.sorted",
"value": {
"map": [
[
"a",
{
"uint": "1"
}
],
[
"é",
{
"uint": "2"
}
]
]
},
"wwar_hex": "57574152000106000000000000003b00000002000000000000000161000000000000000a030000000000000001010000000000000002c3a9000000000000000a03000000000000000102",
"sha256": "41eec75e4b05ca60b6da7abbc00b9820a09c698f86acd426e293ecaddfef883a"
},
{
"id": "record.empty",
"value": {
"record": []
},
"wwar_hex": "57574152000107000000000000000400000000",
"sha256": "138c6acb7f01e91df73cb1d9c3356d18f19d7b8eb8b0a15426bef32e515d0de0"
},
{
"id": "record.nested",
"value": {
"record": [
[
1,
{
"record": []
}
],
[
9,
{
"list": [
{
"bool": true
}
]
}
]
]
},
"wwar_hex": "5757415200010700000000000000480000000200000001000000000000000d0700000000000000040000000000000009000000000000001f05000000000000001600000001000000000000000a04000000000000000101",
"sha256": "9bf1bfd8d3ba6feb0f1a3093c17e6b22693b09bee1695f3c249a90953a3f210f"
}
]
}