[
  {
    "comment": "minimal: empty-string $type, no pairs",
    "star_hex": "2A6C010008A16524747970656000",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": []
    }
  },
  {
    "comment": "empty-string $type, one empty-key/empty-val",
    "star_hex": "2A6C010008A16524747970656001000000",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": [
        { "key_hex": "", "value_hex": "" }
      ]
    }
  },
  {
    "comment": "empty-string $type, two empty-key/empty-val pairs",
    "star_hex": "2A6C010008A16524747970656001000001000000",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": [
        { "key_hex": "", "value_hex": "" },
        { "key_hex": "", "value_hex": "" }
      ]
    }
  },
  {
    "comment": "short non-empty $type, no pairs",
    "star_hex": "2A6C01000BA16524747970656361626300",
    "decoded": {
      "meta": { "$type": "abc" },
      "pairs": []
    }
  },
  {
    "comment": "non-ascii $type is allowed (if discouraged)",
    "star_hex": "2A6C01000BA165247479706563E2988500",
    "decoded": {
      "meta": { "$type": "★" },
      "pairs": []
    }
  },
  {
    "comment": "non-http-friendly utf-8 $type is allowed (if discouraged)",
    "star_hex": "2A6C01000EA1652474797065666120622F220000",
    "decoded": {
      "meta": { "$type": "a b/\"\u0000" },
      "pairs": []
    }
  },
  {
    "comment": "additional meta key, no pairs",
    "star_hex": "2A6C010017A2652474797065636162636662616E616E61646C6F616600",
    "decoded": {
      "meta": {
        "$type": "abc",
        "banana": "loaf"
      },
      "pairs": []
    }
  },
  {
    "comment": "additional meta key with $-prefix, no pairs",
    "star_hex": "2A6C010013A26524747970656361626366246F746865720100",
    "decoded": {
      "meta": {
        "$type": "abc",
        "$other": 1
      },
      "pairs": []
    }
  },
  {
    "comment": "multi-byte meta varint length prefix",
    "star_hex": "2A6C01008001A2652474797065606666696C6C6572786F44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444400",
    "decoded": {
      "meta": {
        "$type": "",
        "filler": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
      },
      "pairs": []
    }
  },
  {
    "comment": "structured meta values are allowed",
    "star_hex": "2A6C010010A26361727280652474797065636162630101AA01BB00",
    "decoded": {
      "meta": {
        "$type": "abc",
        "arr": []
      },
      "pairs": [
        { "key_hex": "AA", "value_hex": "BB" }
      ]
    }
  },
  {
    "comment": "non-empty $type, empty key/nul byte val",
    "star_hex": "2A6C01000BA1652474797065636162630100010000",
    "decoded": {
      "meta": { "$type": "abc" },
      "pairs": [
        { "key_hex": "", "value_hex": "00" }
      ]
    }
  },
  {
    "comment": "non-empty $type, nul byte key/empty val",
    "star_hex": "2A6C01000BA1652474797065636162630101000000",
    "decoded": {
      "meta": { "$type": "abc" },
      "pairs": [
        { "key_hex": "00", "value_hex": "" }
      ]
    }
  },
  {
    "comment": "biggest single-byte key prefix (=varint 127)",
    "star_hex": "2A6C010008A165247479706560017F444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444440000",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": [
        {
          "key_hex": "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444",
          "value_hex": ""
        }
      ]
    }
  },
  {
    "comment": "smallest two-byte key prefix (=varint 128)",
    "star_hex": "2A6C010008A16524747970656001800144444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444440000",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": [
        {
          "key_hex": "4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444",
          "value_hex": ""
        }
      ]
    }
  },
  {
    "comment": "biggest single-byte val prefix (=varint 127)",
    "star_hex": "2A6C010008A16524747970656001007F4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444400",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": [
        {
          "key_hex": "",
          "value_hex": "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444"
        }
      ]
    }
  },
  {
    "comment": "smallest two-byte val prefix (=varint 128)",
    "star_hex": "2A6C010008A16524747970656001008001444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444400",
    "decoded": {
      "meta": { "$type": "" },
      "pairs": [
        {
          "key_hex": "",
          "value_hex": "4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444"
        }
      ]
    }
  },
  {
    "comment": "a few non-empty pairs",
    "star_hex": "2A6C01000BA1652474797065636162630101AA01BB0102CCDD02EEFF00",
    "decoded": {
      "meta": { "$type": "abc" },
      "pairs": [
        { "key_hex": "AA", "value_hex": "BB" },
        { "key_hex": "CCDD", "value_hex": "EEFF" }
      ]
    }
  },
  {
    "comment": "non-sorted key order (format is ordered, not sorted)",
    "star_hex": "2A6C01000BA1652474797065636162630101FF000101AA0000",
    "decoded": {
      "meta": { "$type": "abc" },
      "pairs": [
        { "key_hex": "FF", "value_hex": "" },
        { "key_hex": "AA", "value_hex": "" }
      ]
    }
  },
  {
    "comment": "duplicate non-empty keys are allowed",
    "star_hex": "2A6C01000BA1652474797065636162630101AA01BB0101AA01CC00",
    "decoded": {
      "meta": { "$type": "abc" },
      "pairs": [
        { "key_hex": "AA", "value_hex": "BB" },
        { "key_hex": "AA", "value_hex": "CC" }
      ]
    }
  }
]
