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 }