{
  "spec": "gap/0.1",
  "note": "Canonicalization, hashing, chaining and signing vectors for GAP v0.1. The signing key is RFC 8032 section 7.1 TEST 1 — a published test key, never usable for a real source.",
  "signing_key": {
    "alg": "ed25519",
    "seed_hex": "9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60",
    "public_key_base64": "11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=",
    "public_key_hex": "d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a",
    "source": "RFC 8032 section 7.1 TEST 1"
  },
  "canonicalization_cases": [
    {
      "input": {
        "b": 1,
        "a": 2
      },
      "canonical": "{\"a\":2,\"b\":1}"
    },
    {
      "input": {
        "z": null,
        "a": [
          3,
          {
            "d": 1,
            "c": 2
          }
        ]
      },
      "canonical": "{\"a\":[3,{\"c\":2,\"d\":1}],\"z\":null}"
    },
    {
      "input": {
        "n": 0,
        "s": "日本語\"quoted\""
      },
      "canonical": "{\"n\":0,\"s\":\"日本語\\\"quoted\\\"\"}"
    },
    {
      "input": {
        "f": 1.5,
        "i": 10,
        "t": true
      },
      "canonical": "{\"f\":1.5,\"i\":10,\"t\":true}"
    }
  ],
  "readings": [
    {
      "payload": {
        "value": 812.4,
        "unit": "kWh",
        "spec": "gap/0.1",
        "quality": "measured",
        "seq": 1,
        "source_id": "jp-demo-plant-chiba-meter-01",
        "metric": "electricity_kwh",
        "period_start": "2026-07-01T00:00:00Z",
        "period_end": "2026-07-01T01:00:00Z",
        "prev_hash": null
      },
      "canonical": "{\"metric\":\"electricity_kwh\",\"period_end\":\"2026-07-01T01:00:00Z\",\"period_start\":\"2026-07-01T00:00:00Z\",\"prev_hash\":null,\"quality\":\"measured\",\"seq\":1,\"source_id\":\"jp-demo-plant-chiba-meter-01\",\"spec\":\"gap/0.1\",\"unit\":\"kWh\",\"value\":812.4}",
      "payload_hash": "5f42e6df31af80d66e1ee0b906ab172bd9b7cb41c34864d853ee57c3b84a5484",
      "signature": "nUzcco29HwkDG1RWjdOHK1+4rbQkwiAmvgnod90YiU1zA10Px3TeZVArUp3Z1ZhSB2aH3dta3Xa0n3U8hgNiAQ=="
    },
    {
      "payload": {
        "spec": "gap/0.1",
        "source_id": "jp-demo-plant-chiba-meter-01",
        "seq": 2,
        "metric": "electricity_kwh",
        "period_start": "2026-07-01T01:00:00Z",
        "period_end": "2026-07-01T02:00:00Z",
        "value": 0,
        "unit": "kWh",
        "quality": "estimated",
        "prev_hash": "5f42e6df31af80d66e1ee0b906ab172bd9b7cb41c34864d853ee57c3b84a5484",
        "meta": {
          "tariff": "off_peak",
          "line": "A",
          "sensor_status": "fallback"
        }
      },
      "canonical": "{\"meta\":{\"line\":\"A\",\"sensor_status\":\"fallback\",\"tariff\":\"off_peak\"},\"metric\":\"electricity_kwh\",\"period_end\":\"2026-07-01T02:00:00Z\",\"period_start\":\"2026-07-01T01:00:00Z\",\"prev_hash\":\"5f42e6df31af80d66e1ee0b906ab172bd9b7cb41c34864d853ee57c3b84a5484\",\"quality\":\"estimated\",\"seq\":2,\"source_id\":\"jp-demo-plant-chiba-meter-01\",\"spec\":\"gap/0.1\",\"unit\":\"kWh\",\"value\":0}",
      "payload_hash": "a8f7e1e4b6a133217696ec728d0b26bc5bc939a8374cce377583726bf576c3d2",
      "signature": "WRakyGB8QFMXBqoDwkiFAkpS47A9B9NssCiVzCUv/mQs8BsoEprd3aBOTHyjEFOfuoKYCIvKX+X+le/V9J80BQ=="
    }
  ]
}
