lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

nip52_baseline.v1.json (40286B)


      1 {
      2   "suite": "calendar_nip52_baseline",
      3   "contract_version": "1.0.0",
      4   "vectors": [
      5     {
      6       "id": "baseline_date_minimal_001",
      7       "kind": "calendar.baseline.date.valid",
      8       "input": {
      9         "kind": 31922,
     10         "content": "",
     11         "tags": [
     12           ["d", "moss-street-market"],
     13           ["title", "Moss Street Market"],
     14           ["start", "2026-06-20"]
     15         ]
     16       },
     17       "expected": {
     18         "d": "moss-street-market",
     19         "title": "Moss Street Market",
     20         "start": "2026-06-20",
     21         "locations": [],
     22         "participants": 0,
     23         "categories": [],
     24         "references": [],
     25         "calendar_requests": 0,
     26         "date_day_extensions": []
     27       }
     28     },
     29     {
     30       "id": "baseline_date_complete_nip52_metadata_001",
     31       "kind": "calendar.baseline.date.valid",
     32       "input": {
     33         "kind": 31922,
     34         "content": "Bring reusable bags.",
     35         "tags": [
     36           ["d", "fernwood-csa-pickup"],
     37           ["title", " CSA pickup "],
     38           ["start", "2026-06-20"],
     39           ["end", "2026-06-22"],
     40           ["location", "Farm stand"],
     41           ["location", "Moss Street Market"],
     42           ["g", "C23NB62W20ST"],
     43           ["summary", " Weekly pickup "],
     44           ["image", "https://ordinary.example.test/images/market.jpg?size=large"],
     45           ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"],
     46           ["p", "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af", "wss://relay.example.test/events"],
     47           ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", "", " host "],
     48           ["t", "vegetables"],
     49           ["t", "CSA"],
     50           ["r", "ipfs://bafybeigdyrzt/reference"],
     51           ["a", "31924:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-calendar", "wss://relay.example.test"],
     52           ["name", "Deprecated display name"],
     53           ["D", "extension", "preserved"]
     54         ]
     55       },
     56       "expected": {
     57         "d": "fernwood-csa-pickup",
     58         "title": " CSA pickup ",
     59         "description": "Bring reusable bags.",
     60         "start": "2026-06-20",
     61         "end": "2026-06-22",
     62         "locations": ["Farm stand", "Moss Street Market"],
     63         "geohash": "C23NB62W20ST",
     64         "summary": " Weekly pickup ",
     65         "image": "https://ordinary.example.test/images/market.jpg?size=large",
     66         "participants": [
     67           {"pubkey": "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", "relay": null, "role": null},
     68           {"pubkey": "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af", "relay": "wss://relay.example.test/events", "role": null},
     69           {"pubkey": "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", "relay": null, "role": " host "}
     70         ],
     71         "categories": ["vegetables", "CSA"],
     72         "references": ["ipfs://bafybeigdyrzt/reference"],
     73         "calendar_requests": [
     74           {"calendar": "31924:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-calendar", "relay": "wss://relay.example.test"}
     75         ],
     76         "legacy_name": "Deprecated display name",
     77         "date_day_extensions": [["D", "extension", "preserved"]]
     78       }
     79     },
     80     {
     81       "id": "baseline_date_exclusive_end_001",
     82       "kind": "calendar.baseline.date.valid",
     83       "input": {
     84         "kind": 31922,
     85         "content": "Two all-day sale dates.",
     86         "tags": [
     87           ["d", "seedling-sale"],
     88           ["title", "Victoria Seedling Sale"],
     89           ["start", "2024-02-29"],
     90           ["end", "2024-03-02"]
     91         ]
     92       },
     93       "expected": {
     94         "d": "seedling-sale",
     95         "title": "Victoria Seedling Sale",
     96         "description": "Two all-day sale dates.",
     97         "start": "2024-02-29",
     98         "end": "2024-03-02",
     99         "locations": [],
    100         "participants": 0,
    101         "categories": [],
    102         "references": [],
    103         "calendar_requests": 0,
    104         "date_day_extensions": []
    105       }
    106     },
    107     {
    108       "id": "baseline_date_impossible_start_001",
    109       "kind": "calendar.baseline.date.invalid",
    110       "input": {
    111         "kind": 31922,
    112         "content": "",
    113         "tags": [["d", "bad-date"], ["title", "Bad date"], ["start", "2026-02-30"]]
    114       },
    115       "expected": { "error": "invalid_tag", "tag": "start" }
    116     },
    117     {
    118       "id": "baseline_date_equal_end_001",
    119       "kind": "calendar.baseline.date.invalid",
    120       "input": {
    121         "kind": 31922,
    122         "content": "",
    123         "tags": [["d", "equal-date"], ["title", "Equal date"], ["start", "2026-06-20"], ["end", "2026-06-20"]]
    124       },
    125       "expected": { "error": "invalid_tag", "tag": "end" }
    126     },
    127     {
    128       "id": "baseline_date_duplicate_title_001",
    129       "kind": "calendar.baseline.date.invalid",
    130       "input": {
    131         "kind": 31922,
    132         "content": "",
    133         "tags": [["d", "duplicate"], ["title", "First"], ["title", "Second"], ["start", "2026-06-20"]]
    134       },
    135       "expected": { "error": "duplicate_tag", "tag": "title" }
    136     },
    137     {
    138       "id": "baseline_date_relative_image_001",
    139       "kind": "calendar.baseline.date.invalid",
    140       "input": {
    141         "kind": 31922,
    142         "content": "",
    143         "tags": [["d", "relative-image"], ["title", "Relative image"], ["start", "2026-06-20"], ["image", "/market.jpg"]]
    144       },
    145       "expected": { "error": "invalid_tag", "tag": "image" }
    146     },
    147     {
    148       "id": "baseline_date_participant_empty_relay_without_role_001",
    149       "kind": "calendar.baseline.date.invalid",
    150       "input": {
    151         "kind": 31922,
    152         "content": "",
    153         "tags": [["d", "bad-participant"], ["title", "Bad participant"], ["start", "2026-06-20"], ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", ""]]
    154       },
    155       "expected": { "error": "invalid_tag", "tag": "p" }
    156     },
    157     {
    158       "id": "baseline_date_calendar_request_wrong_kind_001",
    159       "kind": "calendar.baseline.date.invalid",
    160       "input": {
    161         "kind": 31922,
    162         "content": "",
    163         "tags": [["d", "bad-request"], ["title", "Bad request"], ["start", "2026-06-20"], ["a", "31923:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:not-a-calendar"]]
    164       },
    165       "expected": { "error": "invalid_tag", "tag": "a" }
    166     },
    167     {
    168       "id": "baseline_time_should_level_day_variance_001",
    169       "kind": "calendar.baseline.time.valid",
    170       "input": {
    171         "kind": 31923,
    172         "content": "Harvest across UTC day boundaries.",
    173         "tags": [
    174           ["d", "harvest-window"],
    175           ["title", "Harvest window"],
    176           ["start", "086399"],
    177           ["end", "172801"],
    178           ["D", "000"],
    179           ["D", "2"],
    180           ["start_tzid", "America/Vancouver"],
    181           ["t", "harvest"]
    182         ]
    183       },
    184       "expected": {
    185         "d": "harvest-window",
    186         "title": "Harvest window",
    187         "description": "Harvest across UTC day boundaries.",
    188         "start_wire": "086399",
    189         "start": 86399,
    190         "end_wire": "172801",
    191         "end": 172801,
    192         "observed_days": [
    193           {"wire": "000", "index": 0, "canonical": false},
    194           {"wire": "2", "index": 2, "canonical": true}
    195         ],
    196         "start_tzid": "America/Vancouver",
    197         "effective_end_tzid": "America/Vancouver",
    198         "locations": [],
    199         "participants": 0,
    200         "categories": ["harvest"],
    201         "references": [],
    202         "calendar_requests": 0
    203       }
    204     },
    205     {
    206       "id": "baseline_time_single_start_day_001",
    207       "kind": "calendar.baseline.time.valid",
    208       "input": {
    209         "kind": 31923,
    210         "content": "",
    211         "tags": [["d", "instant"], ["title", "Instant"], ["start", "86400"], ["D", "1"]]
    212       },
    213       "expected": {
    214         "d": "instant",
    215         "title": "Instant",
    216         "start_wire": "86400",
    217         "start": 86400,
    218         "observed_days": [{"wire": "1", "index": 1, "canonical": true}],
    219         "locations": [],
    220         "participants": 0,
    221         "categories": [],
    222         "references": [],
    223         "calendar_requests": 0
    224       }
    225     },
    226     {
    227       "id": "baseline_time_over_366_days_001",
    228       "kind": "calendar.baseline.time.valid",
    229       "input": {
    230         "kind": 31923,
    231         "content": "",
    232         "tags": [["d", "long-range"], ["title", "Long range"], ["start", "0"], ["end", "31708800"], ["D", "0"]]
    233       },
    234       "expected": {
    235         "d": "long-range",
    236         "title": "Long range",
    237         "start_wire": "0",
    238         "start": 0,
    239         "end_wire": "31708800",
    240         "end": 31708800,
    241         "observed_days": [{"wire": "0", "index": 0, "canonical": true}],
    242         "locations": [],
    243         "participants": 0,
    244         "categories": [],
    245         "references": [],
    246         "calendar_requests": 0
    247       }
    248     },
    249     {
    250       "id": "baseline_time_non_start_in_range_day_001",
    251       "kind": "calendar.baseline.time.valid",
    252       "input": {
    253         "kind": 31923,
    254         "content": "",
    255         "tags": [["d", "non-start-day"], ["title", "Non-start in-range day"], ["start", "86399"], ["end", "172801"], ["D", "1"]]
    256       },
    257       "expected": {
    258         "d": "non-start-day",
    259         "title": "Non-start in-range day",
    260         "start_wire": "86399",
    261         "start": 86399,
    262         "end_wire": "172801",
    263         "end": 172801,
    264         "observed_days": [{"wire": "1", "index": 1, "canonical": true}],
    265         "locations": [],
    266         "participants": 0,
    267         "categories": [],
    268         "references": [],
    269         "calendar_requests": 0
    270       }
    271     },
    272     {
    273       "id": "baseline_time_invalid_day_decimal_001",
    274       "kind": "calendar.baseline.time.invalid",
    275       "input": {
    276         "kind": 31923,
    277         "content": "",
    278         "tags": [["d", "bad-day"], ["title", "Bad day"], ["start", "0"], ["D", "+0"]]
    279       },
    280       "expected": { "error": "invalid_tag", "tag": "D" }
    281     },
    282     {
    283       "id": "baseline_time_missing_day_001",
    284       "kind": "calendar.baseline.time.invalid",
    285       "input": {
    286         "kind": 31923,
    287         "content": "",
    288         "tags": [["d", "missing-day"], ["title", "Missing day"], ["start", "0"]]
    289       },
    290       "expected": { "error": "missing_tag", "tag": "D" }
    291     },
    292     {
    293       "id": "baseline_time_out_of_range_day_001",
    294       "kind": "calendar.baseline.time.invalid",
    295       "input": {
    296         "kind": 31923,
    297         "content": "",
    298         "tags": [["d", "out-of-range-day"], ["title", "Out-of-range day"], ["start", "0"], ["D", "1"]]
    299       },
    300       "expected": { "error": "invalid_tag", "tag": "D" }
    301     },
    302     {
    303       "id": "baseline_time_invalid_iana_timezone_001",
    304       "kind": "calendar.baseline.time.invalid",
    305       "input": {
    306         "kind": 31923,
    307         "content": "",
    308         "tags": [["d", "bad-zone"], ["title", "Bad zone"], ["start", "0"], ["D", "0"], ["start_tzid", "america/vancouver"]]
    309       },
    310       "expected": { "error": "invalid_tag", "tag": "start_tzid" }
    311     },
    312     {
    313       "id": "baseline_date_duplicate_legacy_name_001",
    314       "kind": "calendar.baseline.date.invalid",
    315       "input": {
    316         "kind": 31922,
    317         "content": "",
    318         "tags": [["d", "duplicate-name"], ["title", "Canonical title"], ["name", "Legacy one"], ["name", "Legacy two"], ["start", "2026-06-20"]]
    319       },
    320       "expected": { "error": "duplicate_tag", "tag": "name" }
    321     },
    322     {
    323       "id": "baseline_wrong_event_kind_001",
    324       "kind": "calendar.baseline.date.invalid",
    325       "input": {
    326         "kind": 1,
    327         "content": "",
    328         "tags": [["d", "wrong-kind"], ["title", "Wrong kind"], ["start", "2026-06-20"]]
    329       },
    330       "expected": { "error": "invalid_kind" }
    331     },
    332     {
    333       "id": "baseline_collection_empty_001",
    334       "kind": "calendar.baseline.collection.valid",
    335       "input": {
    336         "kind": 31924,
    337         "content": "",
    338         "tags": [["d", "Victoria farm calendar"], ["title", "Victoria farm calendar"]]
    339       },
    340       "expected": {
    341         "d": "Victoria farm calendar",
    342         "title": "Victoria farm calendar",
    343         "content": "",
    344         "list_description": null,
    345         "image": null,
    346         "event_references": []
    347       }
    348     },
    349     {
    350       "id": "baseline_collection_ordered_mixed_nip51_metadata_001",
    351       "kind": "calendar.baseline.collection.valid",
    352       "input": {
    353         "kind": 31924,
    354         "content": "Shared schedule for Victoria growers.",
    355         "tags": [
    356           ["d", "regional-farm-calendar"],
    357           ["title", "Regional farm calendar"],
    358           ["description", "NIP-51 client-facing set description"],
    359           ["image", "https://ordinary.example.test/calendars/victoria.jpg"],
    360           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:moss-street-market", "wss://date-relay.example.test/events"],
    361           ["a", "31923:e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af:harvest-window", "WSS://Time-Relay.Example.Test/events"]
    362         ]
    363       },
    364       "expected": {
    365         "d": "regional-farm-calendar",
    366         "title": "Regional farm calendar",
    367         "content": "Shared schedule for Victoria growers.",
    368         "list_description": "NIP-51 client-facing set description",
    369         "image": "https://ordinary.example.test/calendars/victoria.jpg",
    370         "event_references": [
    371           {
    372             "coordinate": "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:moss-street-market",
    373             "relay": "wss://date-relay.example.test/events"
    374           },
    375           {
    376             "coordinate": "31923:e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af:harvest-window",
    377             "relay": "WSS://Time-Relay.Example.Test/events"
    378           }
    379         ]
    380       }
    381     },
    382     {
    383       "id": "baseline_collection_uppercase_coordinate_and_relay_001",
    384       "kind": "calendar.baseline.collection.valid",
    385       "input": {
    386         "kind": 31924,
    387         "content": "",
    388         "tags": [
    389           ["d", "uppercase-observed"],
    390           ["title", "Uppercase observed"],
    391           ["a", "31922:585591529DA0BAB31B3B1B1F986611CF5F435DCA84F978C89EE8A40CCA7103DF:farm-tour", "WSS://Relay.Example.Test/events"]
    392         ]
    393       },
    394       "expected": {
    395         "d": "uppercase-observed",
    396         "title": "Uppercase observed",
    397         "content": "",
    398         "list_description": null,
    399         "image": null,
    400         "event_references": [
    401           {
    402             "coordinate": "31922:585591529DA0BAB31B3B1B1F986611CF5F435DCA84F978C89EE8A40CCA7103DF:farm-tour",
    403             "relay": "WSS://Relay.Example.Test/events"
    404           }
    405         ]
    406       }
    407     },
    408     {
    409       "id": "baseline_collection_duplicate_coordinate_observed_001",
    410       "kind": "calendar.baseline.collection.valid",
    411       "input": {
    412         "kind": 31924,
    413         "content": "",
    414         "tags": [
    415           ["d", "duplicates-observed"],
    416           ["title", "Duplicates observed"],
    417           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour", "wss://one.example.test"],
    418           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour", "wss://two.example.test"]
    419         ]
    420       },
    421       "expected": {
    422         "d": "duplicates-observed",
    423         "title": "Duplicates observed",
    424         "content": "",
    425         "list_description": null,
    426         "image": null,
    427         "event_references": [
    428           {
    429             "coordinate": "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour",
    430             "relay": "wss://one.example.test"
    431           },
    432           {
    433             "coordinate": "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour",
    434             "relay": "wss://two.example.test"
    435           }
    436         ]
    437       }
    438     },
    439     {
    440       "id": "baseline_collection_missing_d_001",
    441       "kind": "calendar.baseline.collection.invalid",
    442       "input": {"kind": 31924, "content": "", "tags": [["title", "Missing identifier"]]},
    443       "expected": {"error": "missing_tag", "tag": "d"}
    444     },
    445     {
    446       "id": "baseline_collection_missing_title_001",
    447       "kind": "calendar.baseline.collection.invalid",
    448       "input": {"kind": 31924, "content": "", "tags": [["d", "missing-title"]]},
    449       "expected": {"error": "missing_tag", "tag": "title"}
    450     },
    451     {
    452       "id": "baseline_collection_duplicate_d_001",
    453       "kind": "calendar.baseline.collection.invalid",
    454       "input": {
    455         "kind": 31924,
    456         "content": "",
    457         "tags": [["d", "one"], ["d", "two"], ["title", "Duplicate identifier"]]
    458       },
    459       "expected": {"error": "duplicate_tag", "tag": "d"}
    460     },
    461     {
    462       "id": "baseline_collection_duplicate_title_001",
    463       "kind": "calendar.baseline.collection.invalid",
    464       "input": {
    465         "kind": 31924,
    466         "content": "",
    467         "tags": [["d", "duplicate-title"], ["title", "One"], ["title", "Two"]]
    468       },
    469       "expected": {"error": "duplicate_tag", "tag": "title"}
    470     },
    471     {
    472       "id": "baseline_collection_d_extra_element_001",
    473       "kind": "calendar.baseline.collection.invalid",
    474       "input": {
    475         "kind": 31924,
    476         "content": "",
    477         "tags": [["d", "extra", "unexpected"], ["title", "Bad identifier tag"]]
    478       },
    479       "expected": {"error": "invalid_tag", "tag": "d"}
    480     },
    481     {
    482       "id": "baseline_collection_title_extra_element_001",
    483       "kind": "calendar.baseline.collection.invalid",
    484       "input": {
    485         "kind": 31924,
    486         "content": "",
    487         "tags": [["d", "bad-title-tag"], ["title", "Bad title tag", "unexpected"]]
    488       },
    489       "expected": {"error": "invalid_tag", "tag": "title"}
    490     },
    491     {
    492       "id": "baseline_collection_a_extra_element_001",
    493       "kind": "calendar.baseline.collection.invalid",
    494       "input": {
    495         "kind": 31924,
    496         "content": "",
    497         "tags": [
    498           ["d", "bad-a-arity"],
    499           ["title", "Bad a arity"],
    500           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour", "wss://relay.example.test", "unexpected"]
    501         ]
    502       },
    503       "expected": {"error": "invalid_tag", "tag": "a"}
    504     },
    505     {
    506       "id": "baseline_collection_malformed_coordinate_001",
    507       "kind": "calendar.baseline.collection.invalid",
    508       "input": {
    509         "kind": 31924,
    510         "content": "",
    511         "tags": [["d", "bad-coordinate"], ["title", "Bad coordinate"], ["a", "31922:not-a-pubkey:farm-tour"]]
    512       },
    513       "expected": {"error": "invalid_tag", "tag": "a"}
    514     },
    515     {
    516       "id": "baseline_collection_wrong_coordinate_kind_001",
    517       "kind": "calendar.baseline.collection.invalid",
    518       "input": {
    519         "kind": 31924,
    520         "content": "",
    521         "tags": [["d", "wrong-coordinate-kind"], ["title", "Wrong coordinate kind"], ["a", "31924:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:another-calendar"]]
    522       },
    523       "expected": {"error": "invalid_tag", "tag": "a"}
    524     },
    525     {
    526       "id": "baseline_collection_invalid_relay_001",
    527       "kind": "calendar.baseline.collection.invalid",
    528       "input": {
    529         "kind": 31924,
    530         "content": "",
    531         "tags": [
    532           ["d", "bad-relay"],
    533           ["title", "Bad relay"],
    534           ["a", "31923:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:harvest-window", "https://relay.example.test"]
    535         ]
    536       },
    537       "expected": {"error": "invalid_tag", "tag": "a"}
    538     },
    539     {
    540       "id": "baseline_collection_tag_element_over_limit_001",
    541       "kind": "calendar.baseline.collection.invalid",
    542       "input": {
    543         "kind": 31924,
    544         "content": "",
    545         "tags": [["d", "oversized-title"], ["title", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]]
    546       },
    547       "expected": {"error": "invalid_envelope"}
    548     },
    549     {
    550       "id": "baseline_rsvp_minimal_accepted_001",
    551       "kind": "calendar.baseline.rsvp.valid",
    552       "input": {
    553         "kind": 31925,
    554         "content": "",
    555         "tags": [
    556           ["d", "farm-tour-rsvp"],
    557           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    558           ["status", "accepted"]
    559         ]
    560       },
    561       "expected": {
    562         "d": "farm-tour-rsvp",
    563         "event_reference": {
    564           "coordinate": "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour",
    565           "relay": null
    566         },
    567         "revision_reference": null,
    568         "status": "accepted",
    569         "observed_free_busy": null,
    570         "effective_free_busy": null,
    571         "author_hint": null,
    572         "note": null
    573       }
    574     },
    575     {
    576       "id": "baseline_rsvp_complete_independent_hints_001",
    577       "kind": "calendar.baseline.rsvp.valid",
    578       "input": {
    579         "kind": 31925,
    580         "content": "I can help at the produce table.",
    581         "tags": [
    582           ["d", "market-rsvp"],
    583           ["a", "31923:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:market-shift", "wss://coordinate-relay.example.test/events"],
    584           ["e", "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af", "wss://event-relay.example.test/events"],
    585           ["status", "tentative"],
    586           ["fb", "busy"],
    587           ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", "wss://author-relay.example.test/events"]
    588         ]
    589       },
    590       "expected": {
    591         "d": "market-rsvp",
    592         "event_reference": {
    593           "coordinate": "31923:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:market-shift",
    594           "relay": "wss://coordinate-relay.example.test/events"
    595         },
    596         "revision_reference": {
    597           "id": "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af",
    598           "relay": "wss://event-relay.example.test/events"
    599         },
    600         "status": "tentative",
    601         "observed_free_busy": "busy",
    602         "effective_free_busy": "busy",
    603         "author_hint": {
    604           "pubkey": "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df",
    605           "relay": "wss://author-relay.example.test/events"
    606         },
    607         "note": "I can help at the produce table."
    608       }
    609     },
    610     {
    611       "id": "baseline_rsvp_declined_observed_free_busy_001",
    612       "kind": "calendar.baseline.rsvp.valid",
    613       "input": {
    614         "kind": 31925,
    615         "content": "Unable to attend.",
    616         "tags": [
    617           ["d", "declined-rsvp"],
    618           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:seed-swap"],
    619           ["status", "declined"],
    620           ["fb", "busy"]
    621         ]
    622       },
    623       "expected": {
    624         "d": "declined-rsvp",
    625         "event_reference": {
    626           "coordinate": "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:seed-swap",
    627           "relay": null
    628         },
    629         "revision_reference": null,
    630         "status": "declined",
    631         "observed_free_busy": "busy",
    632         "effective_free_busy": null,
    633         "author_hint": null,
    634         "note": "Unable to attend."
    635       }
    636     },
    637     {
    638       "id": "baseline_rsvp_uppercase_identifiers_and_relays_001",
    639       "kind": "calendar.baseline.rsvp.valid",
    640       "input": {
    641         "kind": 31925,
    642         "content": "",
    643         "tags": [
    644           ["d", "uppercase-rsvp"],
    645           ["a", "31922:585591529DA0BAB31B3B1B1F986611CF5F435DCA84F978C89EE8A40CCA7103DF:farm-tour", "WSS://Coordinate-Relay.Example.Test/events"],
    646           ["e", "E0266E3CFB0D2886F91C73F5F868F3B98273713E5FCD97C081663F5518A4B3AF", "WSS://Event-Relay.Example.Test/events"],
    647           ["status", "accepted"],
    648           ["fb", "free"],
    649           ["p", "585591529DA0BAB31B3B1B1F986611CF5F435DCA84F978C89EE8A40CCA7103DF", "WSS://Author-Relay.Example.Test/events"]
    650         ]
    651       },
    652       "expected": {
    653         "d": "uppercase-rsvp",
    654         "event_reference": {
    655           "coordinate": "31922:585591529DA0BAB31B3B1B1F986611CF5F435DCA84F978C89EE8A40CCA7103DF:farm-tour",
    656           "relay": "WSS://Coordinate-Relay.Example.Test/events"
    657         },
    658         "revision_reference": {
    659           "id": "E0266E3CFB0D2886F91C73F5F868F3B98273713E5FCD97C081663F5518A4B3AF",
    660           "relay": "WSS://Event-Relay.Example.Test/events"
    661         },
    662         "status": "accepted",
    663         "observed_free_busy": "free",
    664         "effective_free_busy": "free",
    665         "author_hint": {
    666           "pubkey": "585591529DA0BAB31B3B1B1F986611CF5F435DCA84F978C89EE8A40CCA7103DF",
    667           "relay": "WSS://Author-Relay.Example.Test/events"
    668         },
    669         "note": null
    670       }
    671     },
    672     {
    673       "id": "baseline_rsvp_missing_d_001",
    674       "kind": "calendar.baseline.rsvp.invalid",
    675       "input": {
    676         "kind": 31925,
    677         "content": "",
    678         "tags": [["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"]]
    679       },
    680       "expected": {"error": "missing_tag", "tag": "d"}
    681     },
    682     {
    683       "id": "baseline_rsvp_missing_a_001",
    684       "kind": "calendar.baseline.rsvp.invalid",
    685       "input": {"kind": 31925, "content": "", "tags": [["d", "missing-a"], ["status", "accepted"]]},
    686       "expected": {"error": "missing_tag", "tag": "a"}
    687     },
    688     {
    689       "id": "baseline_rsvp_missing_status_001",
    690       "kind": "calendar.baseline.rsvp.invalid",
    691       "input": {
    692         "kind": 31925,
    693         "content": "",
    694         "tags": [["d", "missing-status"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"]]
    695       },
    696       "expected": {"error": "missing_tag", "tag": "status"}
    697     },
    698     {
    699       "id": "baseline_rsvp_duplicate_d_001",
    700       "kind": "calendar.baseline.rsvp.invalid",
    701       "input": {
    702         "kind": 31925,
    703         "content": "",
    704         "tags": [["d", "one"], ["d", "two"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"]]
    705       },
    706       "expected": {"error": "duplicate_tag", "tag": "d"}
    707     },
    708     {
    709       "id": "baseline_rsvp_duplicate_a_001",
    710       "kind": "calendar.baseline.rsvp.invalid",
    711       "input": {
    712         "kind": 31925,
    713         "content": "",
    714         "tags": [
    715           ["d", "duplicate-a"],
    716           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    717           ["a", "31923:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-shift"],
    718           ["status", "accepted"]
    719         ]
    720       },
    721       "expected": {"error": "duplicate_tag", "tag": "a"}
    722     },
    723     {
    724       "id": "baseline_rsvp_duplicate_status_001",
    725       "kind": "calendar.baseline.rsvp.invalid",
    726       "input": {
    727         "kind": 31925,
    728         "content": "",
    729         "tags": [["d", "duplicate-status"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"], ["status", "tentative"]]
    730       },
    731       "expected": {"error": "duplicate_tag", "tag": "status"}
    732     },
    733     {
    734       "id": "baseline_rsvp_duplicate_e_001",
    735       "kind": "calendar.baseline.rsvp.invalid",
    736       "input": {
    737         "kind": 31925,
    738         "content": "",
    739         "tags": [
    740           ["d", "duplicate-e"],
    741           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    742           ["e", "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"],
    743           ["e", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"],
    744           ["status", "accepted"]
    745         ]
    746       },
    747       "expected": {"error": "duplicate_tag", "tag": "e"}
    748     },
    749     {
    750       "id": "baseline_rsvp_duplicate_fb_001",
    751       "kind": "calendar.baseline.rsvp.invalid",
    752       "input": {
    753         "kind": 31925,
    754         "content": "",
    755         "tags": [["d", "duplicate-fb"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"], ["fb", "free"], ["fb", "busy"]]
    756       },
    757       "expected": {"error": "duplicate_tag", "tag": "fb"}
    758     },
    759     {
    760       "id": "baseline_rsvp_duplicate_p_001",
    761       "kind": "calendar.baseline.rsvp.invalid",
    762       "input": {
    763         "kind": 31925,
    764         "content": "",
    765         "tags": [
    766           ["d", "duplicate-p"],
    767           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    768           ["status", "accepted"],
    769           ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df"],
    770           ["p", "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af"]
    771         ]
    772       },
    773       "expected": {"error": "duplicate_tag", "tag": "p"}
    774     },
    775     {
    776       "id": "baseline_rsvp_a_extra_element_001",
    777       "kind": "calendar.baseline.rsvp.invalid",
    778       "input": {
    779         "kind": 31925,
    780         "content": "",
    781         "tags": [
    782           ["d", "bad-a-arity"],
    783           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour", "wss://relay.example.test", "unexpected"],
    784           ["status", "accepted"]
    785         ]
    786       },
    787       "expected": {"error": "invalid_tag", "tag": "a"}
    788     },
    789     {
    790       "id": "baseline_rsvp_e_extra_element_001",
    791       "kind": "calendar.baseline.rsvp.invalid",
    792       "input": {
    793         "kind": 31925,
    794         "content": "",
    795         "tags": [
    796           ["d", "bad-e-arity"],
    797           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    798           ["e", "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af", "wss://relay.example.test", "unexpected"],
    799           ["status", "accepted"]
    800         ]
    801       },
    802       "expected": {"error": "invalid_tag", "tag": "e"}
    803     },
    804     {
    805       "id": "baseline_rsvp_p_role_element_001",
    806       "kind": "calendar.baseline.rsvp.invalid",
    807       "input": {
    808         "kind": 31925,
    809         "content": "",
    810         "tags": [
    811           ["d", "bad-p-role"],
    812           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    813           ["status", "accepted"],
    814           ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", "wss://relay.example.test", "host"]
    815         ]
    816       },
    817       "expected": {"error": "invalid_tag", "tag": "p"}
    818     },
    819     {
    820       "id": "baseline_rsvp_wrong_coordinate_kind_001",
    821       "kind": "calendar.baseline.rsvp.invalid",
    822       "input": {
    823         "kind": 31925,
    824         "content": "",
    825         "tags": [["d", "wrong-kind"], ["a", "31924:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-calendar"], ["status", "accepted"]]
    826       },
    827       "expected": {"error": "invalid_tag", "tag": "a"}
    828     },
    829     {
    830       "id": "baseline_rsvp_malformed_coordinate_001",
    831       "kind": "calendar.baseline.rsvp.invalid",
    832       "input": {"kind": 31925, "content": "", "tags": [["d", "bad-coordinate"], ["a", "31922:bad:farm-tour"], ["status", "accepted"]]},
    833       "expected": {"error": "invalid_tag", "tag": "a"}
    834     },
    835     {
    836       "id": "baseline_rsvp_malformed_event_id_001",
    837       "kind": "calendar.baseline.rsvp.invalid",
    838       "input": {
    839         "kind": 31925,
    840         "content": "",
    841         "tags": [["d", "bad-event-id"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["e", "not-an-event-id"], ["status", "accepted"]]
    842       },
    843       "expected": {"error": "invalid_tag", "tag": "e"}
    844     },
    845     {
    846       "id": "baseline_rsvp_malformed_author_pubkey_001",
    847       "kind": "calendar.baseline.rsvp.invalid",
    848       "input": {
    849         "kind": 31925,
    850         "content": "",
    851         "tags": [["d", "bad-author"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"], ["p", "not-a-pubkey"]]
    852       },
    853       "expected": {"error": "invalid_tag", "tag": "p"}
    854     },
    855     {
    856       "id": "baseline_rsvp_invalid_a_relay_001",
    857       "kind": "calendar.baseline.rsvp.invalid",
    858       "input": {
    859         "kind": 31925,
    860         "content": "",
    861         "tags": [["d", "bad-a-relay"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour", "https://relay.example.test"], ["status", "accepted"]]
    862       },
    863       "expected": {"error": "invalid_tag", "tag": "a"}
    864     },
    865     {
    866       "id": "baseline_rsvp_invalid_e_relay_001",
    867       "kind": "calendar.baseline.rsvp.invalid",
    868       "input": {
    869         "kind": 31925,
    870         "content": "",
    871         "tags": [["d", "bad-e-relay"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["e", "e0266e3cfb0d2886f91c73f5f868f3b98273713e5fcd97c081663f5518a4b3af", "https://relay.example.test"], ["status", "accepted"]]
    872       },
    873       "expected": {"error": "invalid_tag", "tag": "e"}
    874     },
    875     {
    876       "id": "baseline_rsvp_invalid_p_relay_001",
    877       "kind": "calendar.baseline.rsvp.invalid",
    878       "input": {
    879         "kind": 31925,
    880         "content": "",
    881         "tags": [["d", "bad-p-relay"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"], ["p", "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df", "https://relay.example.test"]]
    882       },
    883       "expected": {"error": "invalid_tag", "tag": "p"}
    884     },
    885     {
    886       "id": "baseline_rsvp_invalid_status_001",
    887       "kind": "calendar.baseline.rsvp.invalid",
    888       "input": {
    889         "kind": 31925,
    890         "content": "",
    891         "tags": [["d", "bad-status"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "maybe"]]
    892       },
    893       "expected": {"error": "invalid_tag", "tag": "status"}
    894     },
    895     {
    896       "id": "baseline_rsvp_invalid_free_busy_001",
    897       "kind": "calendar.baseline.rsvp.invalid",
    898       "input": {
    899         "kind": 31925,
    900         "content": "",
    901         "tags": [["d", "bad-fb"], ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"], ["status", "accepted"], ["fb", "unknown"]]
    902       },
    903       "expected": {"error": "invalid_tag", "tag": "fb"}
    904     },
    905     {
    906       "id": "baseline_collection_duplicate_nip51_description_001",
    907       "kind": "calendar.baseline.collection.invalid",
    908       "input": {
    909         "kind": 31924,
    910         "content": "NIP-52 content description.",
    911         "tags": [
    912           ["d", "duplicate-description"],
    913           ["title", "Duplicate description"],
    914           ["description", "One"],
    915           ["description", "Two"]
    916         ]
    917       },
    918       "expected": {"error": "duplicate_tag", "tag": "description"}
    919     },
    920     {
    921       "id": "baseline_collection_duplicate_image_001",
    922       "kind": "calendar.baseline.collection.invalid",
    923       "input": {
    924         "kind": 31924,
    925         "content": "",
    926         "tags": [
    927           ["d", "duplicate-image"],
    928           ["title", "Duplicate image"],
    929           ["image", "https://one.example.test/calendar.jpg"],
    930           ["image", "https://two.example.test/calendar.jpg"]
    931         ]
    932       },
    933       "expected": {"error": "duplicate_tag", "tag": "image"}
    934     },
    935     {
    936       "id": "baseline_collection_nip51_description_extra_element_001",
    937       "kind": "calendar.baseline.collection.invalid",
    938       "input": {
    939         "kind": 31924,
    940         "content": "",
    941         "tags": [["d", "bad-description-arity"], ["title", "Bad description arity"], ["description", "Description", "unexpected"]]
    942       },
    943       "expected": {"error": "invalid_tag", "tag": "description"}
    944     },
    945     {
    946       "id": "baseline_collection_image_extra_element_001",
    947       "kind": "calendar.baseline.collection.invalid",
    948       "input": {
    949         "kind": 31924,
    950         "content": "",
    951         "tags": [["d", "bad-image-arity"], ["title", "Bad image arity"], ["image", "https://example.test/calendar.jpg", "unexpected"]]
    952       },
    953       "expected": {"error": "invalid_tag", "tag": "image"}
    954     },
    955     {
    956       "id": "baseline_rsvp_status_extra_element_001",
    957       "kind": "calendar.baseline.rsvp.invalid",
    958       "input": {
    959         "kind": 31925,
    960         "content": "",
    961         "tags": [
    962           ["d", "bad-status-arity"],
    963           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    964           ["status", "accepted", "unexpected"]
    965         ]
    966       },
    967       "expected": {"error": "invalid_tag", "tag": "status"}
    968     },
    969     {
    970       "id": "baseline_rsvp_fb_extra_element_001",
    971       "kind": "calendar.baseline.rsvp.invalid",
    972       "input": {
    973         "kind": 31925,
    974         "content": "",
    975         "tags": [
    976           ["d", "bad-fb-arity"],
    977           ["a", "31922:585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df:farm-tour"],
    978           ["status", "accepted"],
    979           ["fb", "free", "unexpected"]
    980         ]
    981       },
    982       "expected": {"error": "invalid_tag", "tag": "fb"}
    983     }
    984   ]
    985 }