{
  "description": "Service wire-format conformance vectors for the Contubernium wire specification v1, section 13. 'scalars' pins both directions of the tagged scalar encoding; 'rejections' pins what a decoder must refuse; 'records' pins that decoding a record's wire form reaches the same digest the canonical encoding produces. See docs/specification.md.",
  "records": [
    {
      "digest": "c1254954ee6bdef5b639f6d12f131a39a667b5f57815225f8e184bec6b637ba0",
      "domain": "contubernium.observation.v1",
      "kind": "observation",
      "name": "observation",
      "wire": {
        "attestation": {
          "time_source": "s:gps"
        },
        "interval": {
          "end": "s:2025-01-01T01:00:00Z",
          "start": "s:2025-01-01T00:00:00Z"
        },
        "quality": "s:measured",
        "quantity": "s:energy_price",
        "scale": "i:5",
        "scope": {
          "iso": "s:CAISO",
          "node": "s:TH_NP15_GEN-APND"
        },
        "source_id": "s:device-a",
        "unit": "s:USD_per_MWh",
        "value": "i:3315976"
      }
    },
    {
      "digest": "8f366d9f0a59e692c582b7d6164058683100c268ec8d59b88ed105a0ab98c567",
      "domain": "contubernium.fragment.v1",
      "kind": "fragment",
      "name": "fragment",
      "wire": {
        "constraints": {
          "congested": null,
          "congestion": null,
          "loss": null,
          "price": "i:3315976",
          "scale": "i:5",
          "unit": "s:USD_per_MWh"
        },
        "derivation": {
          "complete": false,
          "congestion_epsilon": "i:50000",
          "quantities_present": [
            "s:congestion_price",
            "s:energy_price",
            "s:loss_price"
          ],
          "rule": "s:nodal_condition"
        },
        "inputs": [
          "s:1bd754ccd24302f0c2de2faac6db822888bbf0cd326664c4a93347e0c7f76bb7",
          "s:5833bc4d9a1fa582e4defe61432a4c700677c1692659284916809d03e6923c59",
          "s:c1254954ee6bdef5b639f6d12f131a39a667b5f57815225f8e184bec6b637ba0"
        ],
        "interval": {
          "end": "s:2025-01-01T01:00:00Z",
          "start": "s:2025-01-01T00:00:00Z"
        },
        "ruleset_version": "s:contubernium.ruleset.v1",
        "scope": {
          "iso": "s:CAISO",
          "node": "s:TH_NP15_GEN-APND"
        }
      }
    },
    {
      "digest": "76de5fda1912a8f73258041802fef6808ff614a9265b2ce3ca9a90a4b818b1fb",
      "domain": "contubernium.commitment.v1",
      "kind": "commitment",
      "name": "commitment",
      "wire": {
        "fragment_digest": "s:1111111111111111111111111111111111111111111111111111111111111111",
        "interval": {
          "end": "s:2025-01-01T01:00:00Z",
          "start": "s:2025-01-01T00:00:00Z"
        },
        "publisher_id": "s:publisher-0001",
        "ruleset_version": "s:contubernium.ruleset.v1",
        "scope": {
          "iso": "s:CAISO",
          "node": "s:TH_NP15_GEN-APND"
        },
        "sequence": "i:7",
        "stake_ref": "s:stake-0001"
      }
    },
    {
      "digest": "7a066a27397eb66e13144faeda22a3b4f89d3e7ba9c795fecc0ee897623182fb",
      "domain": "contubernium.log.checkpoint.v1",
      "kind": "checkpoint",
      "name": "checkpoint",
      "wire": {
        "issued_at": "s:2025-01-01T01:00:00Z",
        "log_id": "s:contubernium.test.log",
        "root_hash": "s:0935cb26ce6439bf4a170737331847661a25086986261507b91c8d5dc20ea39a",
        "tree_size": "i:20"
      }
    },
    {
      "digest": "938d07b9a894a7dc551f22ee98bad5b0f5d0c2cd3f98958fc65c58fa366ab267",
      "domain": "contubernium.anchor.receipt.v1",
      "kind": "receipt",
      "name": "receipt",
      "wire": {
        "evidence": {
          "checkpoint": {
            "issued_at": "s:2025-01-01T01:00:00Z",
            "log_id": "s:contubernium.test.log",
            "root_hash": "s:63cb79ffd2f5e0df7a34912ee5b2af672fd97343af125984f606e86fe167f640",
            "tree_size": "i:1"
          },
          "inclusion": {
            "index": "i:0",
            "path": [],
            "payload_digest": "s:8ff1c414af3b06151fec9a2ca68b96c3db550cef392e1e0f6c8a4922d37f7f97",
            "tree_size": "i:1"
          }
        },
        "payload_digest": "s:8ff1c414af3b06151fec9a2ca68b96c3db550cef392e1e0f6c8a4922d37f7f97",
        "position": "i:0",
        "substrate": "s:log"
      }
    },
    {
      "digest": "d5bfee6a3ebe4da5b32013924543faccea258667c5e52c403163d23c9c62e85b",
      "domain": "contubernium.accumulator.batch.v1",
      "kind": "batch",
      "name": "batch carries its leaves and hashes their count",
      "wire": {
        "commitments": [
          "s:0000000000000000000000000000000000000000000000000000000000000001",
          "s:0000000000000000000000000000000000000000000000000000000000000002",
          "s:0000000000000000000000000000000000000000000000000000000000000003",
          "s:0000000000000000000000000000000000000000000000000000000000000004",
          "s:0000000000000000000000000000000000000000000000000000000000000005"
        ],
        "epoch": {
          "end": "s:2025-01-01T01:00:00Z",
          "start": "s:2025-01-01T00:00:00Z"
        },
        "publisher_id": "s:publisher-0001",
        "tree_root": "s:f029c6e0168c1abf08df6a52e6ede67efbcfbc08c74a82dca56fa5a853c05c5d"
      }
    },
    {
      "digest": "83d340084350cb07d1db7d1355f7b6b96b29a518bee566e6929d1f36cbb916ee",
      "domain": "contubernium.availability.manifest.v1",
      "kind": "manifest",
      "name": "manifest carries its observations and hashes their count",
      "wire": {
        "epoch": {
          "end": "s:2025-01-01T01:00:00Z",
          "start": "s:2025-01-01T00:00:00Z"
        },
        "observations": [
          "s:0000000000000000000000000000000000000000000000000000000000000001",
          "s:0000000000000000000000000000000000000000000000000000000000000002",
          "s:0000000000000000000000000000000000000000000000000000000000000003",
          "s:0000000000000000000000000000000000000000000000000000000000000004",
          "s:0000000000000000000000000000000000000000000000000000000000000005"
        ],
        "publisher_id": "s:publisher-0001",
        "retention": {
          "end": "s:2026-01-01T01:00:00Z",
          "start": "s:2025-01-01T01:00:00Z"
        },
        "tree_root": "s:7625b97ff7640d18f948d5f546f4f8617b676b751b9c5009fa2cda9ddf6a15cf"
      }
    },
    {
      "digest": "30c66471acda82ed0a97d8556fae6bdbab50e3862529fe5a91a1069c72d58581",
      "domain": "contubernium.attestation.v1",
      "kind": "attestation",
      "name": "attestation",
      "wire": {
        "reference": "s:settlement file, as received",
        "submitted_at": "s:2025-01-01T00:30:00Z",
        "submitted_digest": "s:9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f",
        "submitter_id": "s:submitter-0001"
      }
    },
    {
      "digest": "ae2bcdd533f84a736e122721c50c9ff70edfb4cbcd48dd2f9cf61826bd503d15",
      "domain": "contubernium.read.response.v1",
      "kind": "response",
      "name": "condition response",
      "wire": {
        "batch": {
          "commitments": [
            "s:d21ddbd1f52f58eeded49cbf655e93e69b7a82a8cab4be5330c665c472c7aaff"
          ],
          "epoch": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "publisher_id": "s:publisher-0001",
          "tree_root": "s:894a87d8a8fceb5cd4193c42e963a2ae246ec13a68e7db37a2d9070e528c1506"
        },
        "commitment": {
          "fragment_digest": "s:8f366d9f0a59e692c582b7d6164058683100c268ec8d59b88ed105a0ab98c567",
          "interval": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "publisher_id": "s:publisher-0001",
          "ruleset_version": "s:contubernium.ruleset.v1",
          "scope": {
            "iso": "s:CAISO",
            "node": "s:TH_NP15_GEN-APND"
          },
          "sequence": "i:0",
          "stake_ref": "s:escrow-0001"
        },
        "fragment": {
          "constraints": {
            "congested": null,
            "congestion": null,
            "loss": null,
            "price": "i:3315976",
            "scale": "i:5",
            "unit": "s:USD_per_MWh"
          },
          "derivation": {
            "complete": false,
            "congestion_epsilon": "i:50000",
            "quantities_present": [
              "s:congestion_price",
              "s:energy_price",
              "s:loss_price"
            ],
            "rule": "s:nodal_condition"
          },
          "inputs": [
            "s:1bd754ccd24302f0c2de2faac6db822888bbf0cd326664c4a93347e0c7f76bb7",
            "s:5833bc4d9a1fa582e4defe61432a4c700677c1692659284916809d03e6923c59",
            "s:c1254954ee6bdef5b639f6d12f131a39a667b5f57815225f8e184bec6b637ba0"
          ],
          "interval": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "ruleset_version": "s:contubernium.ruleset.v1",
          "scope": {
            "iso": "s:CAISO",
            "node": "s:TH_NP15_GEN-APND"
          }
        },
        "inclusion": {
          "commitment_digest": "s:d21ddbd1f52f58eeded49cbf655e93e69b7a82a8cab4be5330c665c472c7aaff",
          "index": "i:0",
          "leaf_count": "i:1",
          "path": []
        },
        "manifest_digest": "s:abababababababababababababababababababababababababababababababab",
        "receipt": {
          "evidence": {
            "checkpoint": {
              "issued_at": "s:2025-01-01T01:00:00Z",
              "log_id": "s:contubernium.test.log",
              "root_hash": "s:63cb79ffd2f5e0df7a34912ee5b2af672fd97343af125984f606e86fe167f640",
              "tree_size": "i:1"
            },
            "inclusion": {
              "index": "i:0",
              "path": [],
              "payload_digest": "s:8ff1c414af3b06151fec9a2ca68b96c3db550cef392e1e0f6c8a4922d37f7f97",
              "tree_size": "i:1"
            }
          },
          "payload_digest": "s:8ff1c414af3b06151fec9a2ca68b96c3db550cef392e1e0f6c8a4922d37f7f97",
          "position": "i:0",
          "substrate": "s:log"
        }
      }
    },
    {
      "digest": "7806339919b83bac8729e9f42e233eeb64d93ca79b70bfaed319612304b9f086",
      "domain": "contubernium.pool.v1",
      "kind": "pool",
      "name": "pool carries its members and hashes their count",
      "wire": {
        "epoch": {
          "end": "s:2025-01-01T01:00:00Z",
          "start": "s:2025-01-01T00:00:00Z"
        },
        "members": [
          "s:0a9a55db98a0ad230e0dead7ad189ca4950a484895a0eb24634233ec279254be",
          "s:642c5266cfb27bfe407968dff1fa9b7186dbd2eb1e92d584871985e2163fdfa6",
          "s:739b9b2d08cc54bba842c37cd74a21de28a51aecdda43313bf24e4ecd6c7388f",
          "s:d8a30fad1e0785a8413d2d45033847bb735c13ac9b8917e38bc571470aa5a952",
          "s:f1c6f6551753aed7361c0e9b4d65262603f76531f64e12444b1a167965f7329d"
        ],
        "pool_id": "s:pool-0001",
        "tree_root": "s:96c73b42b835430f80db388a90d340fe8de0f50c5221906492fb54dc69b4e6be"
      }
    },
    {
      "digest": "5fb8d206be622652535c9ff05e0842cc7c43527afeccba98921b9fff8a9acfbb",
      "domain": "contubernium.read.response.v2",
      "kind": "response_v2",
      "name": "pooled condition response",
      "wire": {
        "batch": {
          "commitments": [
            "s:d21ddbd1f52f58eeded49cbf655e93e69b7a82a8cab4be5330c665c472c7aaff"
          ],
          "epoch": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "publisher_id": "s:publisher-0001",
          "tree_root": "s:894a87d8a8fceb5cd4193c42e963a2ae246ec13a68e7db37a2d9070e528c1506"
        },
        "commitment": {
          "fragment_digest": "s:8f366d9f0a59e692c582b7d6164058683100c268ec8d59b88ed105a0ab98c567",
          "interval": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "publisher_id": "s:publisher-0001",
          "ruleset_version": "s:contubernium.ruleset.v1",
          "scope": {
            "iso": "s:CAISO",
            "node": "s:TH_NP15_GEN-APND"
          },
          "sequence": "i:0",
          "stake_ref": "s:escrow-0001"
        },
        "fragment": {
          "constraints": {
            "congested": null,
            "congestion": null,
            "loss": null,
            "price": "i:3315976",
            "scale": "i:5",
            "unit": "s:USD_per_MWh"
          },
          "derivation": {
            "complete": false,
            "congestion_epsilon": "i:50000",
            "quantities_present": [
              "s:congestion_price",
              "s:energy_price",
              "s:loss_price"
            ],
            "rule": "s:nodal_condition"
          },
          "inputs": [
            "s:1bd754ccd24302f0c2de2faac6db822888bbf0cd326664c4a93347e0c7f76bb7",
            "s:5833bc4d9a1fa582e4defe61432a4c700677c1692659284916809d03e6923c59",
            "s:c1254954ee6bdef5b639f6d12f131a39a667b5f57815225f8e184bec6b637ba0"
          ],
          "interval": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "ruleset_version": "s:contubernium.ruleset.v1",
          "scope": {
            "iso": "s:CAISO",
            "node": "s:TH_NP15_GEN-APND"
          }
        },
        "inclusion": {
          "commitment_digest": "s:d21ddbd1f52f58eeded49cbf655e93e69b7a82a8cab4be5330c665c472c7aaff",
          "index": "i:0",
          "leaf_count": "i:1",
          "path": []
        },
        "manifest_digest": "s:abababababababababababababababababababababababababababababababab",
        "pool": {
          "epoch": {
            "end": "s:2025-01-01T01:00:00Z",
            "start": "s:2025-01-01T00:00:00Z"
          },
          "members": [
            "s:8ff1c414af3b06151fec9a2ca68b96c3db550cef392e1e0f6c8a4922d37f7f97"
          ],
          "pool_id": "s:pool-0001",
          "tree_root": "s:fdc78526bf315ff7d488f5403bccf6e7d7e4c72142218b8ed37e0f68aca92fd3"
        },
        "pool_inclusion": {
          "batch_digest": "s:8ff1c414af3b06151fec9a2ca68b96c3db550cef392e1e0f6c8a4922d37f7f97",
          "index": "i:0",
          "leaf_count": "i:1",
          "path": []
        },
        "receipt": {
          "evidence": {
            "checkpoint": {
              "issued_at": "s:2025-01-01T01:00:00Z",
              "log_id": "s:contubernium.test.log",
              "root_hash": "s:95b1089c4635ba5b95ef15498ccf8a6dc78bccc0f174bf2f9e668e9ab1ad3bdb",
              "tree_size": "i:1"
            },
            "inclusion": {
              "index": "i:0",
              "path": [],
              "payload_digest": "s:731c14827394b7e5f9602bedd46d7c931146c618c85bfa6599716877906ee0d4",
              "tree_size": "i:1"
            }
          },
          "payload_digest": "s:731c14827394b7e5f9602bedd46d7c931146c618c85bfa6599716877906ee0d4",
          "position": "i:0",
          "substrate": "s:log"
        },
        "version": "s:contubernium.read.response.v2"
      }
    }
  ],
  "rejections": [
    {
      "name": "bare integer number",
      "wire": 3315976
    },
    {
      "name": "bare float number",
      "wire": 3.14
    },
    {
      "name": "untagged string",
      "wire": "CAISO"
    },
    {
      "name": "empty integer payload",
      "wire": "i:"
    },
    {
      "name": "integer with trailing junk",
      "wire": "i:12x"
    },
    {
      "name": "integer with leading whitespace",
      "wire": "i: 5"
    },
    {
      "name": "integer with an explicit plus",
      "wire": "i:+5"
    },
    {
      "name": "integer with a leading zero",
      "wire": "i:007"
    },
    {
      "name": "negative zero",
      "wire": "i:-0"
    },
    {
      "name": "integer from non-ascii digits",
      "wire": "i:١٢٣"
    },
    {
      "name": "uppercase hex",
      "wire": "b:AB"
    },
    {
      "name": "odd-length hex",
      "wire": "b:abc"
    },
    {
      "name": "hex with a space",
      "wire": "b:ab cd"
    },
    {
      "name": "bare number inside a container",
      "wire": {
        "scale": 5
      }
    },
    {
      "name": "untagged string inside a list",
      "wire": [
        "s:ok",
        "bad"
      ]
    }
  ],
  "scalars": [
    {
      "name": "zero",
      "value": {
        "t": "int",
        "v": "0"
      },
      "wire": "i:0"
    },
    {
      "name": "positive integer",
      "value": {
        "t": "int",
        "v": "3315976"
      },
      "wire": "i:3315976"
    },
    {
      "name": "negative integer",
      "value": {
        "t": "int",
        "v": "-42"
      },
      "wire": "i:-42"
    },
    {
      "name": "first integer a double cannot hold",
      "value": {
        "t": "int",
        "v": "9007199254740993"
      },
      "wire": "i:9007199254740993"
    },
    {
      "name": "integer wider than 64 bits",
      "value": {
        "t": "int",
        "v": "1208925819614629174706176"
      },
      "wire": "i:1208925819614629174706176"
    },
    {
      "name": "negative integer wider than 64 bits",
      "value": {
        "t": "int",
        "v": "-1208925819614629174706176"
      },
      "wire": "i:-1208925819614629174706176"
    },
    {
      "name": "empty string",
      "value": {
        "t": "str",
        "v": ""
      },
      "wire": "s:"
    },
    {
      "name": "plain string",
      "value": {
        "t": "str",
        "v": "CAISO"
      },
      "wire": "s:CAISO"
    },
    {
      "name": "string that looks like an integer tag",
      "value": {
        "t": "str",
        "v": "i:5"
      },
      "wire": "s:i:5"
    },
    {
      "name": "string that looks like a bytes tag",
      "value": {
        "t": "str",
        "v": "b:abcd"
      },
      "wire": "s:b:abcd"
    },
    {
      "name": "string with a colon",
      "value": {
        "t": "str",
        "v": "TH_NP15_GEN-APND:hourly"
      },
      "wire": "s:TH_NP15_GEN-APND:hourly"
    },
    {
      "name": "non-ascii string",
      "value": {
        "t": "str",
        "v": "naïve — ναι"
      },
      "wire": "s:naïve — ναι"
    },
    {
      "name": "empty bytes",
      "value": {
        "t": "bytes",
        "v": ""
      },
      "wire": "b:"
    },
    {
      "name": "bytes",
      "value": {
        "t": "bytes",
        "v": "00ff10ab"
      },
      "wire": "b:00ff10ab"
    },
    {
      "name": "true",
      "value": {
        "t": "bool",
        "v": true
      },
      "wire": true
    },
    {
      "name": "false",
      "value": {
        "t": "bool",
        "v": false
      },
      "wire": false
    },
    {
      "name": "null",
      "value": {
        "t": "null"
      },
      "wire": null
    },
    {
      "name": "list of mixed scalars",
      "value": {
        "t": "list",
        "v": [
          {
            "t": "int",
            "v": "1"
          },
          {
            "t": "str",
            "v": "two"
          },
          {
            "t": "bytes",
            "v": "03"
          },
          {
            "t": "bool",
            "v": true
          },
          {
            "t": "null"
          }
        ]
      },
      "wire": [
        "i:1",
        "s:two",
        "b:03",
        true,
        null
      ]
    },
    {
      "name": "nested map",
      "value": {
        "t": "map",
        "v": [
          [
            "outer",
            {
              "t": "map",
              "v": [
                [
                  "inner",
                  {
                    "t": "list",
                    "v": [
                      {
                        "t": "int",
                        "v": "0"
                      },
                      {
                        "t": "int",
                        "v": "-1"
                      }
                    ]
                  }
                ]
              ]
            }
          ],
          [
            "flag",
            {
              "t": "bool",
              "v": false
            }
          ]
        ]
      },
      "wire": {
        "flag": false,
        "outer": {
          "inner": [
            "i:0",
            "i:-1"
          ]
        }
      }
    },
    {
      "name": "empty containers",
      "value": {
        "t": "map",
        "v": [
          [
            "list",
            {
              "t": "list",
              "v": []
            }
          ],
          [
            "map",
            {
              "t": "map",
              "v": []
            }
          ]
        ]
      },
      "wire": {
        "list": [],
        "map": {}
      }
    }
  ],
  "schema": "contubernium.vectors.wire.v1"
}
