lib

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

event_contract_registry_v7.inventory.json (158515B)


      1 {
      2   "schema_version": 1,
      3   "event_contract_registry_version": 7,
      4   "kind_contracts": [
      5     {
      6       "ordinal": 0,
      7       "kind": 0,
      8       "canonical_constant": "KIND_PROFILE",
      9       "name": "Profile Metadata",
     10       "class": "replaceable",
     11       "standard": "nip01",
     12       "accepted_event_contracts": [
     13         "radroots.profile.metadata.v1"
     14       ]
     15     },
     16     {
     17       "ordinal": 1,
     18       "kind": 1,
     19       "canonical_constant": "KIND_POST",
     20       "name": "Short Text Note",
     21       "class": "regular",
     22       "standard": "nip01",
     23       "accepted_event_contracts": [
     24         "radroots.social.post.v1",
     25         "radroots.social.update.v1",
     26         "radroots.social.photo_update.v1",
     27         "radroots.social.ask.v1",
     28         "radroots.social.reply.v1"
     29       ]
     30     },
     31     {
     32       "ordinal": 2,
     33       "kind": 3,
     34       "canonical_constant": "KIND_FOLLOW",
     35       "name": "Contact List",
     36       "class": "replaceable",
     37       "standard": "nip01",
     38       "accepted_event_contracts": [
     39         "radroots.social.follow_list.v1"
     40       ]
     41     },
     42     {
     43       "ordinal": 3,
     44       "kind": 5,
     45       "canonical_constant": "KIND_DELETION_REQUEST",
     46       "name": "Deletion Request",
     47       "class": "regular",
     48       "standard": "nip09",
     49       "accepted_event_contracts": [
     50         "radroots.social.deletion_request.v1"
     51       ]
     52     },
     53     {
     54       "ordinal": 4,
     55       "kind": 6,
     56       "canonical_constant": "KIND_REPOST",
     57       "name": "Repost",
     58       "class": "regular",
     59       "standard": "nip18",
     60       "accepted_event_contracts": [
     61         "radroots.social.repost.v1"
     62       ]
     63     },
     64     {
     65       "ordinal": 5,
     66       "kind": 7,
     67       "canonical_constant": "KIND_REACTION",
     68       "name": "Reaction",
     69       "class": "regular",
     70       "standard": "nip25",
     71       "accepted_event_contracts": [
     72         "radroots.social.reaction.v1"
     73       ]
     74     },
     75     {
     76       "ordinal": 6,
     77       "kind": 13,
     78       "canonical_constant": "KIND_SEAL",
     79       "name": "Seal",
     80       "class": "regular",
     81       "standard": "nip17",
     82       "accepted_event_contracts": [
     83         "radroots.message.seal.v1"
     84       ]
     85     },
     86     {
     87       "ordinal": 7,
     88       "kind": 14,
     89       "canonical_constant": "KIND_MESSAGE",
     90       "name": "Direct Message",
     91       "class": "regular",
     92       "standard": "nip17",
     93       "accepted_event_contracts": [
     94         "radroots.message.private.v1"
     95       ]
     96     },
     97     {
     98       "ordinal": 8,
     99       "kind": 15,
    100       "canonical_constant": "KIND_MESSAGE_FILE",
    101       "name": "Direct Message File",
    102       "class": "regular",
    103       "standard": "nip17",
    104       "accepted_event_contracts": [
    105         "radroots.message.file.v1"
    106       ]
    107     },
    108     {
    109       "ordinal": 9,
    110       "kind": 16,
    111       "canonical_constant": "KIND_GENERIC_REPOST",
    112       "name": "Generic Repost",
    113       "class": "regular",
    114       "standard": "nip18",
    115       "accepted_event_contracts": [
    116         "radroots.social.generic_repost.v1"
    117       ]
    118     },
    119     {
    120       "ordinal": 10,
    121       "kind": 78,
    122       "canonical_constant": "KIND_FARM_CRDT_CHANGE",
    123       "name": "Farm CRDT Change",
    124       "class": "regular",
    125       "standard": "radroots",
    126       "accepted_event_contracts": [
    127         "radroots.farm.crdt_change.v1"
    128       ]
    129     },
    130     {
    131       "ordinal": 11,
    132       "kind": 1059,
    133       "canonical_constant": "KIND_GIFT_WRAP",
    134       "name": "Gift Wrap",
    135       "class": "regular",
    136       "standard": "nip17",
    137       "accepted_event_contracts": [
    138         "radroots.message.gift_wrap.v1"
    139       ]
    140     },
    141     {
    142       "ordinal": 12,
    143       "kind": 1063,
    144       "canonical_constant": "KIND_FILE_METADATA",
    145       "name": "File Metadata",
    146       "class": "regular",
    147       "standard": "nip94",
    148       "accepted_event_contracts": [
    149         "radroots.file.metadata.v1"
    150       ]
    151     },
    152     {
    153       "ordinal": 13,
    154       "kind": 1111,
    155       "canonical_constant": "KIND_COMMENT",
    156       "name": "Comment",
    157       "class": "regular",
    158       "standard": "nip22",
    159       "accepted_event_contracts": [
    160         "radroots.social.comment.v1"
    161       ]
    162     },
    163     {
    164       "ordinal": 14,
    165       "kind": 1984,
    166       "canonical_constant": "KIND_REPORT",
    167       "name": "Report",
    168       "class": "regular",
    169       "standard": "nip56",
    170       "accepted_event_contracts": [
    171         "radroots.social.report.v1"
    172       ]
    173     },
    174     {
    175       "ordinal": 15,
    176       "kind": 9000,
    177       "canonical_constant": "KIND_GROUP_PUT_USER",
    178       "name": "Group Put User",
    179       "class": "regular",
    180       "standard": "nip29",
    181       "accepted_event_contracts": [
    182         "radroots.group.put_user.v1"
    183       ]
    184     },
    185     {
    186       "ordinal": 16,
    187       "kind": 9001,
    188       "canonical_constant": "KIND_GROUP_REMOVE_USER",
    189       "name": "Group Remove User",
    190       "class": "regular",
    191       "standard": "nip29",
    192       "accepted_event_contracts": [
    193         "radroots.group.remove_user.v1"
    194       ]
    195     },
    196     {
    197       "ordinal": 17,
    198       "kind": 9002,
    199       "canonical_constant": "KIND_GROUP_EDIT_METADATA",
    200       "name": "Group Edit Metadata",
    201       "class": "regular",
    202       "standard": "nip29",
    203       "accepted_event_contracts": [
    204         "radroots.group.edit_metadata.v1"
    205       ]
    206     },
    207     {
    208       "ordinal": 18,
    209       "kind": 9005,
    210       "canonical_constant": "KIND_GROUP_DELETE_EVENT",
    211       "name": "Group Delete Event",
    212       "class": "regular",
    213       "standard": "nip29",
    214       "accepted_event_contracts": [
    215         "radroots.group.delete_event.v1"
    216       ]
    217     },
    218     {
    219       "ordinal": 19,
    220       "kind": 9007,
    221       "canonical_constant": "KIND_GROUP_CREATE_GROUP",
    222       "name": "Group Create Group",
    223       "class": "regular",
    224       "standard": "nip29",
    225       "accepted_event_contracts": [
    226         "radroots.group.create_group.v1"
    227       ]
    228     },
    229     {
    230       "ordinal": 20,
    231       "kind": 9008,
    232       "canonical_constant": "KIND_GROUP_DELETE_GROUP",
    233       "name": "Group Delete Group",
    234       "class": "regular",
    235       "standard": "nip29",
    236       "accepted_event_contracts": [
    237         "radroots.group.delete_group.v1"
    238       ]
    239     },
    240     {
    241       "ordinal": 21,
    242       "kind": 9009,
    243       "canonical_constant": "KIND_GROUP_CREATE_INVITE",
    244       "name": "Group Create Invite",
    245       "class": "regular",
    246       "standard": "nip29",
    247       "accepted_event_contracts": [
    248         "radroots.group.create_invite.v1"
    249       ]
    250     },
    251     {
    252       "ordinal": 22,
    253       "kind": 9021,
    254       "canonical_constant": "KIND_GROUP_JOIN_REQUEST",
    255       "name": "Group Join Request",
    256       "class": "regular",
    257       "standard": "nip29",
    258       "accepted_event_contracts": [
    259         "radroots.group.join_request.v1"
    260       ]
    261     },
    262     {
    263       "ordinal": 23,
    264       "kind": 9022,
    265       "canonical_constant": "KIND_GROUP_LEAVE_REQUEST",
    266       "name": "Group Leave Request",
    267       "class": "regular",
    268       "standard": "nip29",
    269       "accepted_event_contracts": [
    270         "radroots.group.leave_request.v1"
    271       ]
    272     },
    273     {
    274       "ordinal": 24,
    275       "kind": 20000,
    276       "canonical_constant": "KIND_GEOCHAT",
    277       "name": "Geochat",
    278       "class": "ephemeral",
    279       "standard": "nip28",
    280       "accepted_event_contracts": [
    281         "radroots.social.geochat.v1"
    282       ]
    283     },
    284     {
    285       "ordinal": 25,
    286       "kind": 22242,
    287       "canonical_constant": "KIND_RELAY_AUTH",
    288       "name": "Relay Auth",
    289       "class": "ephemeral",
    290       "standard": "nip42",
    291       "accepted_event_contracts": [
    292         "radroots.relay.auth.v1"
    293       ]
    294     },
    295     {
    296       "ordinal": 26,
    297       "kind": 27235,
    298       "canonical_constant": "KIND_HTTP_AUTH",
    299       "name": "HTTP Auth",
    300       "class": "ephemeral",
    301       "standard": "nip98",
    302       "accepted_event_contracts": [
    303         "radroots.http.auth.v1"
    304       ]
    305     },
    306     {
    307       "ordinal": 27,
    308       "kind": 10000,
    309       "canonical_constant": "KIND_LIST_MUTE",
    310       "name": "Mute List",
    311       "class": "replaceable",
    312       "standard": "nip51",
    313       "accepted_event_contracts": [
    314         "radroots.list.mute.v1"
    315       ]
    316     },
    317     {
    318       "ordinal": 28,
    319       "kind": 10001,
    320       "canonical_constant": "KIND_LIST_PINNED_NOTES",
    321       "name": "Pinned Notes List",
    322       "class": "replaceable",
    323       "standard": "nip51",
    324       "accepted_event_contracts": [
    325         "radroots.list.pinned_notes.v1"
    326       ]
    327     },
    328     {
    329       "ordinal": 29,
    330       "kind": 10002,
    331       "canonical_constant": "KIND_LIST_READ_WRITE_RELAYS",
    332       "name": "Read Write Relays List",
    333       "class": "replaceable",
    334       "standard": "nip51",
    335       "accepted_event_contracts": [
    336         "radroots.list.read_write_relays.v1"
    337       ]
    338     },
    339     {
    340       "ordinal": 30,
    341       "kind": 10003,
    342       "canonical_constant": "KIND_LIST_BOOKMARKS",
    343       "name": "Bookmarks List",
    344       "class": "replaceable",
    345       "standard": "nip51",
    346       "accepted_event_contracts": [
    347         "radroots.list.bookmarks.v1"
    348       ]
    349     },
    350     {
    351       "ordinal": 31,
    352       "kind": 10004,
    353       "canonical_constant": "KIND_LIST_COMMUNITIES",
    354       "name": "Communities List",
    355       "class": "replaceable",
    356       "standard": "nip51",
    357       "accepted_event_contracts": [
    358         "radroots.list.communities.v1"
    359       ]
    360     },
    361     {
    362       "ordinal": 32,
    363       "kind": 10005,
    364       "canonical_constant": "KIND_LIST_PUBLIC_CHATS",
    365       "name": "Public Chats List",
    366       "class": "replaceable",
    367       "standard": "nip51",
    368       "accepted_event_contracts": [
    369         "radroots.list.public_chats.v1"
    370       ]
    371     },
    372     {
    373       "ordinal": 33,
    374       "kind": 10006,
    375       "canonical_constant": "KIND_LIST_BLOCKED_RELAYS",
    376       "name": "Blocked Relays List",
    377       "class": "replaceable",
    378       "standard": "nip51",
    379       "accepted_event_contracts": [
    380         "radroots.list.blocked_relays.v1"
    381       ]
    382     },
    383     {
    384       "ordinal": 34,
    385       "kind": 10007,
    386       "canonical_constant": "KIND_LIST_SEARCH_RELAYS",
    387       "name": "Search Relays List",
    388       "class": "replaceable",
    389       "standard": "nip51",
    390       "accepted_event_contracts": [
    391         "radroots.list.search_relays.v1"
    392       ]
    393     },
    394     {
    395       "ordinal": 35,
    396       "kind": 10009,
    397       "canonical_constant": "KIND_LIST_SIMPLE_GROUPS",
    398       "name": "Simple Groups List",
    399       "class": "replaceable",
    400       "standard": "nip51",
    401       "accepted_event_contracts": [
    402         "radroots.list.simple_groups.v1"
    403       ]
    404     },
    405     {
    406       "ordinal": 36,
    407       "kind": 10012,
    408       "canonical_constant": "KIND_LIST_RELAY_FEEDS",
    409       "name": "Relay Feeds List",
    410       "class": "replaceable",
    411       "standard": "nip51",
    412       "accepted_event_contracts": [
    413         "radroots.list.relay_feeds.v1"
    414       ]
    415     },
    416     {
    417       "ordinal": 37,
    418       "kind": 10015,
    419       "canonical_constant": "KIND_LIST_INTERESTS",
    420       "name": "Interests List",
    421       "class": "replaceable",
    422       "standard": "nip51",
    423       "accepted_event_contracts": [
    424         "radroots.list.interests.v1"
    425       ]
    426     },
    427     {
    428       "ordinal": 38,
    429       "kind": 10020,
    430       "canonical_constant": "KIND_LIST_MEDIA_FOLLOWS",
    431       "name": "Media Follows List",
    432       "class": "replaceable",
    433       "standard": "nip51",
    434       "accepted_event_contracts": [
    435         "radroots.list.media_follows.v1"
    436       ]
    437     },
    438     {
    439       "ordinal": 39,
    440       "kind": 10030,
    441       "canonical_constant": "KIND_LIST_EMOJIS",
    442       "name": "Emojis List",
    443       "class": "replaceable",
    444       "standard": "nip51",
    445       "accepted_event_contracts": [
    446         "radroots.list.emojis.v1"
    447       ]
    448     },
    449     {
    450       "ordinal": 40,
    451       "kind": 10050,
    452       "canonical_constant": "KIND_LIST_DM_RELAYS",
    453       "name": "DM Relays List",
    454       "class": "replaceable",
    455       "standard": "nip51",
    456       "accepted_event_contracts": [
    457         "radroots.list.dm_relays.v1"
    458       ]
    459     },
    460     {
    461       "ordinal": 41,
    462       "kind": 10101,
    463       "canonical_constant": "KIND_LIST_GOOD_WIKI_AUTHORS",
    464       "name": "Good Wiki Authors List",
    465       "class": "replaceable",
    466       "standard": "nip51",
    467       "accepted_event_contracts": [
    468         "radroots.list.good_wiki_authors.v1"
    469       ]
    470     },
    471     {
    472       "ordinal": 42,
    473       "kind": 10102,
    474       "canonical_constant": "KIND_LIST_GOOD_WIKI_RELAYS",
    475       "name": "Good Wiki Relays List",
    476       "class": "replaceable",
    477       "standard": "nip51",
    478       "accepted_event_contracts": [
    479         "radroots.list.good_wiki_relays.v1"
    480       ]
    481     },
    482     {
    483       "ordinal": 43,
    484       "kind": 30000,
    485       "canonical_constant": "KIND_LIST_SET_FOLLOW",
    486       "name": "Follow Set",
    487       "class": "addressable",
    488       "standard": "nip51",
    489       "accepted_event_contracts": [
    490         "radroots.list_set.follow.v1"
    491       ]
    492     },
    493     {
    494       "ordinal": 44,
    495       "kind": 30001,
    496       "canonical_constant": "KIND_LIST_SET_GENERIC",
    497       "name": "Generic List Set",
    498       "class": "addressable",
    499       "standard": "nip51",
    500       "accepted_event_contracts": [
    501         "radroots.list_set.farm.members.v1",
    502         "radroots.list_set.farm.members.owners.v1",
    503         "radroots.list_set.farm.members.workers.v1",
    504         "radroots.list_set.farm.plots.v1",
    505         "radroots.list_set.farm.listings.v1",
    506         "radroots.list_set.member_of.farms.v1"
    507       ]
    508     },
    509     {
    510       "ordinal": 45,
    511       "kind": 30002,
    512       "canonical_constant": "KIND_LIST_SET_RELAY",
    513       "name": "Relay Set",
    514       "class": "addressable",
    515       "standard": "nip51",
    516       "accepted_event_contracts": [
    517         "radroots.list_set.relay.v1"
    518       ]
    519     },
    520     {
    521       "ordinal": 46,
    522       "kind": 30003,
    523       "canonical_constant": "KIND_LIST_SET_BOOKMARK",
    524       "name": "Bookmark Set",
    525       "class": "addressable",
    526       "standard": "nip51",
    527       "accepted_event_contracts": [
    528         "radroots.list_set.bookmark.v1"
    529       ]
    530     },
    531     {
    532       "ordinal": 47,
    533       "kind": 30004,
    534       "canonical_constant": "KIND_LIST_SET_CURATION",
    535       "name": "Curation Set",
    536       "class": "addressable",
    537       "standard": "nip51",
    538       "accepted_event_contracts": [
    539         "radroots.list_set.curation.v1"
    540       ]
    541     },
    542     {
    543       "ordinal": 48,
    544       "kind": 30005,
    545       "canonical_constant": "KIND_LIST_SET_VIDEO",
    546       "name": "Video Set",
    547       "class": "addressable",
    548       "standard": "nip51",
    549       "accepted_event_contracts": [
    550         "radroots.list_set.video.v1"
    551       ]
    552     },
    553     {
    554       "ordinal": 49,
    555       "kind": 30006,
    556       "canonical_constant": "KIND_LIST_SET_PICTURE",
    557       "name": "Picture Set",
    558       "class": "addressable",
    559       "standard": "nip51",
    560       "accepted_event_contracts": [
    561         "radroots.list_set.picture.v1"
    562       ]
    563     },
    564     {
    565       "ordinal": 50,
    566       "kind": 30007,
    567       "canonical_constant": "KIND_LIST_SET_KIND_MUTE",
    568       "name": "Kind Mute Set",
    569       "class": "addressable",
    570       "standard": "nip51",
    571       "accepted_event_contracts": [
    572         "radroots.list_set.kind_mute.v1"
    573       ]
    574     },
    575     {
    576       "ordinal": 51,
    577       "kind": 30015,
    578       "canonical_constant": "KIND_LIST_SET_INTEREST",
    579       "name": "Interest Set",
    580       "class": "addressable",
    581       "standard": "nip51",
    582       "accepted_event_contracts": [
    583         "radroots.list_set.interest.v1"
    584       ]
    585     },
    586     {
    587       "ordinal": 52,
    588       "kind": 30030,
    589       "canonical_constant": "KIND_LIST_SET_EMOJI",
    590       "name": "Emoji Set",
    591       "class": "addressable",
    592       "standard": "nip51",
    593       "accepted_event_contracts": [
    594         "radroots.list_set.emoji.v1"
    595       ]
    596     },
    597     {
    598       "ordinal": 53,
    599       "kind": 30063,
    600       "canonical_constant": "KIND_LIST_SET_RELEASE_ARTIFACT",
    601       "name": "Release Artifact Set",
    602       "class": "addressable",
    603       "standard": "nip51",
    604       "accepted_event_contracts": [
    605         "radroots.list_set.release_artifact.v1"
    606       ]
    607     },
    608     {
    609       "ordinal": 54,
    610       "kind": 30267,
    611       "canonical_constant": "KIND_LIST_SET_APP_CURATION",
    612       "name": "App Curation Set",
    613       "class": "addressable",
    614       "standard": "nip51",
    615       "accepted_event_contracts": [
    616         "radroots.list_set.app_curation.v1"
    617       ]
    618     },
    619     {
    620       "ordinal": 55,
    621       "kind": 30023,
    622       "canonical_constant": "KIND_ARTICLE",
    623       "name": "Long Form Article",
    624       "class": "addressable",
    625       "standard": "nip23",
    626       "accepted_event_contracts": [
    627         "radroots.social.article.v1"
    628       ]
    629     },
    630     {
    631       "ordinal": 56,
    632       "kind": 818,
    633       "canonical_constant": "KIND_WIKI_MERGE_REQUEST",
    634       "name": "Wiki Merge Request",
    635       "class": "regular",
    636       "standard": "nip54",
    637       "accepted_event_contracts": [
    638         "radroots.wiki.merge_request.v1"
    639       ]
    640     },
    641     {
    642       "ordinal": 57,
    643       "kind": 30818,
    644       "canonical_constant": "KIND_WIKI_ARTICLE",
    645       "name": "Wiki Article",
    646       "class": "addressable",
    647       "standard": "nip54",
    648       "accepted_event_contracts": [
    649         "radroots.wiki.article.v1"
    650       ]
    651     },
    652     {
    653       "ordinal": 58,
    654       "kind": 30819,
    655       "canonical_constant": "KIND_WIKI_REDIRECT",
    656       "name": "Wiki Redirect",
    657       "class": "addressable",
    658       "standard": "nip54",
    659       "accepted_event_contracts": [
    660         "radroots.wiki.redirect.v1"
    661       ]
    662     },
    663     {
    664       "ordinal": 59,
    665       "kind": 31922,
    666       "canonical_constant": "KIND_CALENDAR_DATE_EVENT",
    667       "name": "Calendar Date Event",
    668       "class": "addressable",
    669       "standard": "nip52",
    670       "accepted_event_contracts": [
    671         "radroots.calendar.date_event.v1"
    672       ]
    673     },
    674     {
    675       "ordinal": 60,
    676       "kind": 31923,
    677       "canonical_constant": "KIND_CALENDAR_TIME_EVENT",
    678       "name": "Calendar Time Event",
    679       "class": "addressable",
    680       "standard": "nip52",
    681       "accepted_event_contracts": [
    682         "radroots.calendar.time_event.v1"
    683       ]
    684     },
    685     {
    686       "ordinal": 61,
    687       "kind": 31924,
    688       "canonical_constant": "KIND_CALENDAR",
    689       "name": "Calendar Collection",
    690       "class": "addressable",
    691       "standard": "nip52",
    692       "accepted_event_contracts": [
    693         "radroots.calendar.collection.v1"
    694       ]
    695     },
    696     {
    697       "ordinal": 62,
    698       "kind": 31925,
    699       "canonical_constant": "KIND_CALENDAR_EVENT_RSVP",
    700       "name": "Calendar RSVP",
    701       "class": "addressable",
    702       "standard": "nip52",
    703       "accepted_event_contracts": [
    704         "radroots.calendar.rsvp.v1"
    705       ]
    706     },
    707     {
    708       "ordinal": 63,
    709       "kind": 39089,
    710       "canonical_constant": "KIND_LIST_SET_STARTER_PACK",
    711       "name": "Starter Pack Set",
    712       "class": "addressable",
    713       "standard": "nip51",
    714       "accepted_event_contracts": [
    715         "radroots.list_set.starter_pack.v1"
    716       ]
    717     },
    718     {
    719       "ordinal": 64,
    720       "kind": 39092,
    721       "canonical_constant": "KIND_LIST_SET_MEDIA_STARTER_PACK",
    722       "name": "Media Starter Pack Set",
    723       "class": "addressable",
    724       "standard": "nip51",
    725       "accepted_event_contracts": [
    726         "radroots.list_set.media_starter_pack.v1"
    727       ]
    728     },
    729     {
    730       "ordinal": 65,
    731       "kind": 30340,
    732       "canonical_constant": "KIND_FARM",
    733       "name": "Farm",
    734       "class": "addressable",
    735       "standard": "radroots",
    736       "accepted_event_contracts": [
    737         "radroots.farm.profile.v1"
    738       ]
    739     },
    740     {
    741       "ordinal": 66,
    742       "kind": 30350,
    743       "canonical_constant": "KIND_PLOT",
    744       "name": "Plot",
    745       "class": "addressable",
    746       "standard": "radroots",
    747       "accepted_event_contracts": [
    748         "radroots.farm.plot.v1"
    749       ]
    750     },
    751     {
    752       "ordinal": 67,
    753       "kind": 30360,
    754       "canonical_constant": "KIND_COOP",
    755       "name": "Coop",
    756       "class": "addressable",
    757       "standard": "radroots",
    758       "accepted_event_contracts": [
    759         "radroots.farm.coop.v1"
    760       ]
    761     },
    762     {
    763       "ordinal": 68,
    764       "kind": 30361,
    765       "canonical_constant": "KIND_DOCUMENT",
    766       "name": "Document",
    767       "class": "addressable",
    768       "standard": "radroots",
    769       "accepted_event_contracts": [
    770         "radroots.farm.document.v1"
    771       ]
    772     },
    773     {
    774       "ordinal": 69,
    775       "kind": 30370,
    776       "canonical_constant": "KIND_RESOURCE_AREA",
    777       "name": "Resource Area",
    778       "class": "addressable",
    779       "standard": "radroots",
    780       "accepted_event_contracts": [
    781         "radroots.farm.resource_area.v1"
    782       ]
    783     },
    784     {
    785       "ordinal": 70,
    786       "kind": 30371,
    787       "canonical_constant": "KIND_RESOURCE_HARVEST_CAP",
    788       "name": "Resource Harvest Capacity",
    789       "class": "addressable",
    790       "standard": "radroots",
    791       "accepted_event_contracts": [
    792         "radroots.farm.resource_harvest_cap.v1"
    793       ]
    794     },
    795     {
    796       "ordinal": 71,
    797       "kind": 30380,
    798       "canonical_constant": "KIND_ACCOUNT_CLAIM",
    799       "name": "Account Claim",
    800       "class": "addressable",
    801       "standard": "radroots",
    802       "accepted_event_contracts": [
    803         "radroots.account.claim.v1"
    804       ]
    805     },
    806     {
    807       "ordinal": 72,
    808       "kind": 30078,
    809       "canonical_constant": "KIND_FARM_WORKSPACE_MANIFEST",
    810       "name": "Farm Workspace Manifest",
    811       "class": "addressable",
    812       "standard": "nip78",
    813       "accepted_event_contracts": [
    814         "radroots.farm.workspace_manifest.v1"
    815       ]
    816     },
    817     {
    818       "ordinal": 73,
    819       "kind": 30402,
    820       "canonical_constant": "KIND_CLASSIFIED_LISTING",
    821       "name": "Classified Listing",
    822       "class": "addressable",
    823       "standard": "nip99",
    824       "accepted_event_contracts": [
    825         "radroots.operational_listing.published.v1",
    826         "radroots.food.availability.v1"
    827       ]
    828     },
    829     {
    830       "ordinal": 74,
    831       "kind": 30450,
    832       "canonical_constant": "KIND_KNOWLEDGE_SOURCE",
    833       "name": "Knowledge Source",
    834       "class": "addressable",
    835       "standard": "radroots",
    836       "accepted_event_contracts": [
    837         "radroots.knowledge.source.v1"
    838       ]
    839     },
    840     {
    841       "ordinal": 75,
    842       "kind": 30451,
    843       "canonical_constant": "KIND_EVIDENCE_BOUNTY",
    844       "name": "Evidence Bounty",
    845       "class": "addressable",
    846       "standard": "radroots",
    847       "accepted_event_contracts": [
    848         "radroots.knowledge.evidence_bounty.v1"
    849       ]
    850     },
    851     {
    852       "ordinal": 76,
    853       "kind": 3460,
    854       "canonical_constant": "KIND_KNOWLEDGE_CLAIM",
    855       "name": "Knowledge Claim",
    856       "class": "regular",
    857       "standard": "radroots",
    858       "accepted_event_contracts": [
    859         "radroots.knowledge.claim.v1"
    860       ]
    861     },
    862     {
    863       "ordinal": 77,
    864       "kind": 3461,
    865       "canonical_constant": "KIND_KNOWLEDGE_RELATION",
    866       "name": "Knowledge Relation",
    867       "class": "regular",
    868       "standard": "radroots",
    869       "accepted_event_contracts": [
    870         "radroots.knowledge.relation.v1"
    871       ]
    872     },
    873     {
    874       "ordinal": 78,
    875       "kind": 3462,
    876       "canonical_constant": "KIND_KNOWLEDGE_REVIEW",
    877       "name": "Knowledge Review",
    878       "class": "regular",
    879       "standard": "radroots",
    880       "accepted_event_contracts": [
    881         "radroots.knowledge.review.v1"
    882       ]
    883     },
    884     {
    885       "ordinal": 79,
    886       "kind": 3463,
    887       "canonical_constant": "KIND_KNOWLEDGE_FIELD_REPORT",
    888       "name": "Knowledge Field Report",
    889       "class": "regular",
    890       "standard": "radroots",
    891       "accepted_event_contracts": [
    892         "radroots.knowledge.field_report.v1"
    893       ]
    894     },
    895     {
    896       "ordinal": 80,
    897       "kind": 3464,
    898       "canonical_constant": "KIND_KNOWLEDGE_CHANGE_PROPOSAL",
    899       "name": "Knowledge Change Proposal",
    900       "class": "regular",
    901       "standard": "radroots",
    902       "accepted_event_contracts": [
    903         "radroots.knowledge.change_proposal.v1"
    904       ]
    905     },
    906     {
    907       "ordinal": 81,
    908       "kind": 3465,
    909       "canonical_constant": "KIND_CONTRIBUTION_ATTESTATION",
    910       "name": "Contribution Attestation",
    911       "class": "regular",
    912       "standard": "radroots",
    913       "accepted_event_contracts": [
    914         "radroots.knowledge.contribution_attestation.v1"
    915       ]
    916     },
    917     {
    918       "ordinal": 82,
    919       "kind": 31990,
    920       "canonical_constant": "KIND_APPLICATION_HANDLER",
    921       "name": "Application Handler",
    922       "class": "addressable",
    923       "standard": "radroots",
    924       "accepted_event_contracts": [
    925         "radroots.application.handler.v1"
    926       ]
    927     },
    928     {
    929       "ordinal": 83,
    930       "kind": 39000,
    931       "canonical_constant": "KIND_GROUP_METADATA",
    932       "name": "Group Metadata",
    933       "class": "addressable",
    934       "standard": "nip29",
    935       "accepted_event_contracts": [
    936         "radroots.group.metadata.v1"
    937       ]
    938     },
    939     {
    940       "ordinal": 84,
    941       "kind": 39001,
    942       "canonical_constant": "KIND_GROUP_ADMINS",
    943       "name": "Group Admins",
    944       "class": "addressable",
    945       "standard": "nip29",
    946       "accepted_event_contracts": [
    947         "radroots.group.admins.v1"
    948       ]
    949     },
    950     {
    951       "ordinal": 85,
    952       "kind": 39002,
    953       "canonical_constant": "KIND_GROUP_MEMBERS",
    954       "name": "Group Members",
    955       "class": "addressable",
    956       "standard": "nip29",
    957       "accepted_event_contracts": [
    958         "radroots.group.members.v1"
    959       ]
    960     },
    961     {
    962       "ordinal": 86,
    963       "kind": 39003,
    964       "canonical_constant": "KIND_GROUP_ROLES",
    965       "name": "Group Roles",
    966       "class": "addressable",
    967       "standard": "nip29",
    968       "accepted_event_contracts": [
    969         "radroots.group.roles.v1"
    970       ]
    971     },
    972     {
    973       "ordinal": 87,
    974       "kind": 3470,
    975       "canonical_constant": "KIND_TRADE_PROPOSAL",
    976       "name": "Trade Proposal",
    977       "class": "regular",
    978       "standard": "radroots",
    979       "accepted_event_contracts": [
    980         "radroots.trade.proposal.v1"
    981       ]
    982     },
    983     {
    984       "ordinal": 88,
    985       "kind": 3471,
    986       "canonical_constant": "KIND_TRADE_DECISION",
    987       "name": "Trade Decision",
    988       "class": "regular",
    989       "standard": "radroots",
    990       "accepted_event_contracts": [
    991         "radroots.trade.decision.v1"
    992       ]
    993     },
    994     {
    995       "ordinal": 89,
    996       "kind": 3472,
    997       "canonical_constant": "KIND_TRADE_REVISION_PROPOSAL",
    998       "name": "Trade Revision Proposal",
    999       "class": "regular",
   1000       "standard": "radroots",
   1001       "accepted_event_contracts": [
   1002         "radroots.trade.revision_proposal.v1"
   1003       ]
   1004     },
   1005     {
   1006       "ordinal": 90,
   1007       "kind": 3473,
   1008       "canonical_constant": "KIND_TRADE_REVISION_DECISION",
   1009       "name": "Trade Revision Decision",
   1010       "class": "regular",
   1011       "standard": "radroots",
   1012       "accepted_event_contracts": [
   1013         "radroots.trade.revision_decision.v1"
   1014       ]
   1015     },
   1016     {
   1017       "ordinal": 91,
   1018       "kind": 3474,
   1019       "canonical_constant": "KIND_TRADE_CANCELLATION",
   1020       "name": "Trade Cancellation",
   1021       "class": "regular",
   1022       "standard": "radroots",
   1023       "accepted_event_contracts": [
   1024         "radroots.trade.cancellation.v1"
   1025       ]
   1026     },
   1027     {
   1028       "ordinal": 92,
   1029       "kind": 3441,
   1030       "canonical_constant": "KIND_RHI_EVIDENCE_ATTESTATION",
   1031       "name": "RHI Evidence Attestation",
   1032       "class": "regular",
   1033       "standard": "radroots",
   1034       "accepted_event_contracts": [
   1035         "radroots.rhi.evidence_attestation.v1"
   1036       ]
   1037     }
   1038   ],
   1039   "event_contracts": [
   1040     {
   1041       "ordinal": 0,
   1042       "contract_id": "radroots.profile.metadata.v1",
   1043       "kind": 0,
   1044       "name": "Profile Metadata",
   1045       "payload_type": "RadrootsAuthoredProfile / RadrootsInboundProfileMetadata",
   1046       "class": "replaceable",
   1047       "stability": "stable",
   1048       "privacy": "public",
   1049       "author_role": "any",
   1050       "content_schema": "json_object",
   1051       "authoring_policy": "typed_only",
   1052       "discriminator": {
   1053         "type": "kind_only"
   1054       },
   1055       "tags": [
   1056         {
   1057           "name": "p",
   1058           "cardinality": "optional_many",
   1059           "semantic": "counterparty",
   1060           "value_type": "public_key",
   1061           "relay_indexed": true
   1062         }
   1063       ],
   1064       "reducers": [
   1065         "profile_projection"
   1066       ]
   1067     },
   1068     {
   1069       "ordinal": 1,
   1070       "contract_id": "radroots.social.post.v1",
   1071       "kind": 1,
   1072       "name": "Short Text Note",
   1073       "payload_type": "RadrootsPost",
   1074       "class": "regular",
   1075       "stability": "stable",
   1076       "privacy": "public",
   1077       "author_role": "any",
   1078       "content_schema": "plain_text",
   1079       "authoring_policy": "read_only",
   1080       "discriminator": {
   1081         "type": "kind_only"
   1082       },
   1083       "tags": [],
   1084       "reducers": [
   1085         "social_projection"
   1086       ]
   1087     },
   1088     {
   1089       "ordinal": 2,
   1090       "contract_id": "radroots.social.update.v1",
   1091       "kind": 1,
   1092       "name": "Root Text Update",
   1093       "payload_type": "RadrootsAuthoredUpdate / RadrootsInboundPostProjection",
   1094       "class": "regular",
   1095       "stability": "stable",
   1096       "privacy": "public",
   1097       "author_role": "any",
   1098       "content_schema": "plain_text",
   1099       "authoring_policy": "typed_only",
   1100       "discriminator": {
   1101         "type": "admission_only"
   1102       },
   1103       "tags": [],
   1104       "reducers": [
   1105         "social_projection"
   1106       ]
   1107     },
   1108     {
   1109       "ordinal": 3,
   1110       "contract_id": "radroots.social.photo_update.v1",
   1111       "kind": 1,
   1112       "name": "NIP-92 Photo Update",
   1113       "payload_type": "RadrootsAuthoredPhotoUpdate / RadrootsInboundPostProjection",
   1114       "class": "regular",
   1115       "stability": "stable",
   1116       "privacy": "public",
   1117       "author_role": "any",
   1118       "content_schema": "plain_text",
   1119       "authoring_policy": "typed_only",
   1120       "discriminator": {
   1121         "type": "admission_only"
   1122       },
   1123       "tags": [
   1124         {
   1125           "name": "imeta",
   1126           "cardinality": "required_many",
   1127           "semantic": "image",
   1128           "value_type": "text",
   1129           "relay_indexed": false
   1130         }
   1131       ],
   1132       "reducers": [
   1133         "social_projection"
   1134       ]
   1135     },
   1136     {
   1137       "ordinal": 4,
   1138       "contract_id": "radroots.social.ask.v1",
   1139       "kind": 1,
   1140       "name": "Root Ask",
   1141       "payload_type": "RadrootsAuthoredAsk / RadrootsInboundPostProjection",
   1142       "class": "regular",
   1143       "stability": "stable",
   1144       "privacy": "public",
   1145       "author_role": "any",
   1146       "content_schema": "plain_text",
   1147       "authoring_policy": "typed_only",
   1148       "discriminator": {
   1149         "type": "admission_only"
   1150       },
   1151       "tags": [
   1152         {
   1153           "name": "t",
   1154           "cardinality": "required_one",
   1155           "semantic": "topic",
   1156           "value_type": "text",
   1157           "relay_indexed": true
   1158         },
   1159         {
   1160           "name": "imeta",
   1161           "cardinality": "optional_many",
   1162           "semantic": "image",
   1163           "value_type": "text",
   1164           "relay_indexed": false
   1165         }
   1166       ],
   1167       "reducers": [
   1168         "social_projection"
   1169       ]
   1170     },
   1171     {
   1172       "ordinal": 5,
   1173       "contract_id": "radroots.social.reply.v1",
   1174       "kind": 1,
   1175       "name": "NIP-10 Reply",
   1176       "payload_type": "RadrootsAuthoredNip10Reply / RadrootsInboundNip10ReplyProjection",
   1177       "class": "regular",
   1178       "stability": "stable",
   1179       "privacy": "public",
   1180       "author_role": "any",
   1181       "content_schema": "plain_text",
   1182       "authoring_policy": "typed_only",
   1183       "discriminator": {
   1184         "type": "admission_only"
   1185       },
   1186       "tags": [
   1187         {
   1188           "name": "e",
   1189           "cardinality": "required_many",
   1190           "semantic": "event_pointer",
   1191           "value_type": "event_id",
   1192           "relay_indexed": true
   1193         },
   1194         {
   1195           "name": "p",
   1196           "cardinality": "optional_many",
   1197           "semantic": "participant",
   1198           "value_type": "public_key",
   1199           "relay_indexed": true
   1200         }
   1201       ],
   1202       "reducers": [
   1203         "social_projection"
   1204       ]
   1205     },
   1206     {
   1207       "ordinal": 6,
   1208       "contract_id": "radroots.social.follow_list.v1",
   1209       "kind": 3,
   1210       "name": "Contact List",
   1211       "payload_type": "RadrootsFollowList",
   1212       "class": "replaceable",
   1213       "stability": "stable",
   1214       "privacy": "public",
   1215       "author_role": "any",
   1216       "content_schema": "json_object",
   1217       "authoring_policy": "generic_draft",
   1218       "discriminator": {
   1219         "type": "kind_only"
   1220       },
   1221       "tags": [
   1222         {
   1223           "name": "p",
   1224           "cardinality": "optional_many",
   1225           "semantic": "counterparty",
   1226           "value_type": "public_key",
   1227           "relay_indexed": true
   1228         }
   1229       ],
   1230       "reducers": [
   1231         "profile_projection"
   1232       ]
   1233     },
   1234     {
   1235       "ordinal": 7,
   1236       "contract_id": "radroots.social.deletion_request.v1",
   1237       "kind": 5,
   1238       "name": "Deletion Request",
   1239       "payload_type": "RadrootsAuthoredNip09DeletionRequest / RadrootsInboundNip09DeletionProjection",
   1240       "class": "regular",
   1241       "stability": "stable",
   1242       "privacy": "public",
   1243       "author_role": "any",
   1244       "content_schema": "plain_text",
   1245       "authoring_policy": "typed_only",
   1246       "discriminator": {
   1247         "type": "admission_only"
   1248       },
   1249       "tags": [
   1250         {
   1251           "name": "e",
   1252           "cardinality": "optional_many",
   1253           "semantic": "event_pointer",
   1254           "value_type": "event_id",
   1255           "relay_indexed": true
   1256         },
   1257         {
   1258           "name": "a",
   1259           "cardinality": "optional_many",
   1260           "semantic": "nip01_coordinate",
   1261           "value_type": "nip01_coordinate",
   1262           "relay_indexed": true
   1263         },
   1264         {
   1265           "name": "k",
   1266           "cardinality": "optional_many",
   1267           "semantic": "kind",
   1268           "value_type": "kind",
   1269           "relay_indexed": true
   1270         }
   1271       ],
   1272       "reducers": [
   1273         "social_projection"
   1274       ]
   1275     },
   1276     {
   1277       "ordinal": 8,
   1278       "contract_id": "radroots.social.repost.v1",
   1279       "kind": 6,
   1280       "name": "Repost",
   1281       "payload_type": "RadrootsRepost",
   1282       "class": "regular",
   1283       "stability": "stable",
   1284       "privacy": "public",
   1285       "author_role": "any",
   1286       "content_schema": "json_object",
   1287       "authoring_policy": "generic_draft",
   1288       "discriminator": {
   1289         "type": "kind_only"
   1290       },
   1291       "tags": [
   1292         {
   1293           "name": "e",
   1294           "cardinality": "optional_many",
   1295           "semantic": "event_pointer",
   1296           "value_type": "event_id",
   1297           "relay_indexed": true
   1298         },
   1299         {
   1300           "name": "p",
   1301           "cardinality": "optional_many",
   1302           "semantic": "counterparty",
   1303           "value_type": "public_key",
   1304           "relay_indexed": true
   1305         },
   1306         {
   1307           "name": "k",
   1308           "cardinality": "optional_one",
   1309           "semantic": "kind",
   1310           "value_type": "kind",
   1311           "relay_indexed": true
   1312         }
   1313       ],
   1314       "reducers": [
   1315         "social_projection"
   1316       ]
   1317     },
   1318     {
   1319       "ordinal": 9,
   1320       "contract_id": "radroots.social.reaction.v1",
   1321       "kind": 7,
   1322       "name": "Reaction",
   1323       "payload_type": "RadrootsReaction",
   1324       "class": "regular",
   1325       "stability": "stable",
   1326       "privacy": "public",
   1327       "author_role": "any",
   1328       "content_schema": "plain_text",
   1329       "authoring_policy": "generic_draft",
   1330       "discriminator": {
   1331         "type": "kind_only"
   1332       },
   1333       "tags": [
   1334         {
   1335           "name": "e",
   1336           "cardinality": "optional_many",
   1337           "semantic": "event_pointer",
   1338           "value_type": "event_id",
   1339           "relay_indexed": true
   1340         },
   1341         {
   1342           "name": "p",
   1343           "cardinality": "optional_many",
   1344           "semantic": "counterparty",
   1345           "value_type": "public_key",
   1346           "relay_indexed": true
   1347         },
   1348         {
   1349           "name": "k",
   1350           "cardinality": "optional_one",
   1351           "semantic": "kind",
   1352           "value_type": "kind",
   1353           "relay_indexed": true
   1354         }
   1355       ],
   1356       "reducers": [
   1357         "social_projection"
   1358       ]
   1359     },
   1360     {
   1361       "ordinal": 10,
   1362       "contract_id": "radroots.message.seal.v1",
   1363       "kind": 13,
   1364       "name": "Seal",
   1365       "payload_type": "RadrootsSeal",
   1366       "class": "regular",
   1367       "stability": "stable",
   1368       "privacy": "encrypted",
   1369       "author_role": "any",
   1370       "content_schema": "encrypted",
   1371       "authoring_policy": "generic_draft",
   1372       "discriminator": {
   1373         "type": "kind_only"
   1374       },
   1375       "tags": [],
   1376       "reducers": [
   1377         "social_projection"
   1378       ]
   1379     },
   1380     {
   1381       "ordinal": 11,
   1382       "contract_id": "radroots.message.private.v1",
   1383       "kind": 14,
   1384       "name": "Direct Message",
   1385       "payload_type": "RadrootsMessage",
   1386       "class": "regular",
   1387       "stability": "stable",
   1388       "privacy": "encrypted",
   1389       "author_role": "any",
   1390       "content_schema": "encrypted",
   1391       "authoring_policy": "generic_draft",
   1392       "discriminator": {
   1393         "type": "kind_only"
   1394       },
   1395       "tags": [
   1396         {
   1397           "name": "p",
   1398           "cardinality": "optional_many",
   1399           "semantic": "counterparty",
   1400           "value_type": "public_key",
   1401           "relay_indexed": true
   1402         }
   1403       ],
   1404       "reducers": [
   1405         "social_projection"
   1406       ]
   1407     },
   1408     {
   1409       "ordinal": 12,
   1410       "contract_id": "radroots.message.file.v1",
   1411       "kind": 15,
   1412       "name": "Direct Message File",
   1413       "payload_type": "RadrootsMessageFile",
   1414       "class": "regular",
   1415       "stability": "stable",
   1416       "privacy": "encrypted",
   1417       "author_role": "any",
   1418       "content_schema": "encrypted",
   1419       "authoring_policy": "generic_draft",
   1420       "discriminator": {
   1421         "type": "kind_only"
   1422       },
   1423       "tags": [
   1424         {
   1425           "name": "p",
   1426           "cardinality": "optional_many",
   1427           "semantic": "counterparty",
   1428           "value_type": "public_key",
   1429           "relay_indexed": true
   1430         }
   1431       ],
   1432       "reducers": [
   1433         "social_projection"
   1434       ]
   1435     },
   1436     {
   1437       "ordinal": 13,
   1438       "contract_id": "radroots.social.generic_repost.v1",
   1439       "kind": 16,
   1440       "name": "Generic Repost",
   1441       "payload_type": "RadrootsGenericRepost",
   1442       "class": "regular",
   1443       "stability": "stable",
   1444       "privacy": "public",
   1445       "author_role": "any",
   1446       "content_schema": "json_object",
   1447       "authoring_policy": "generic_draft",
   1448       "discriminator": {
   1449         "type": "kind_only"
   1450       },
   1451       "tags": [
   1452         {
   1453           "name": "e",
   1454           "cardinality": "optional_many",
   1455           "semantic": "event_pointer",
   1456           "value_type": "event_id",
   1457           "relay_indexed": true
   1458         },
   1459         {
   1460           "name": "p",
   1461           "cardinality": "optional_many",
   1462           "semantic": "counterparty",
   1463           "value_type": "public_key",
   1464           "relay_indexed": true
   1465         },
   1466         {
   1467           "name": "k",
   1468           "cardinality": "optional_one",
   1469           "semantic": "kind",
   1470           "value_type": "kind",
   1471           "relay_indexed": true
   1472         }
   1473       ],
   1474       "reducers": [
   1475         "social_projection"
   1476       ]
   1477     },
   1478     {
   1479       "ordinal": 14,
   1480       "contract_id": "radroots.farm.crdt_change.v1",
   1481       "kind": 78,
   1482       "name": "Farm CRDT Change",
   1483       "payload_type": "RadrootsFarmCrdtChange",
   1484       "class": "regular",
   1485       "stability": "stable",
   1486       "privacy": "encrypted",
   1487       "author_role": "farmer",
   1488       "content_schema": "json_object",
   1489       "authoring_policy": "generic_draft",
   1490       "discriminator": {
   1491         "type": "kind_only"
   1492       },
   1493       "tags": [],
   1494       "reducers": [
   1495         "farm_ops_projection"
   1496       ]
   1497     },
   1498     {
   1499       "ordinal": 15,
   1500       "contract_id": "radroots.message.gift_wrap.v1",
   1501       "kind": 1059,
   1502       "name": "Gift Wrap",
   1503       "payload_type": "RadrootsGiftWrap",
   1504       "class": "regular",
   1505       "stability": "stable",
   1506       "privacy": "encrypted",
   1507       "author_role": "any",
   1508       "content_schema": "encrypted",
   1509       "authoring_policy": "generic_draft",
   1510       "discriminator": {
   1511         "type": "kind_only"
   1512       },
   1513       "tags": [
   1514         {
   1515           "name": "p",
   1516           "cardinality": "optional_many",
   1517           "semantic": "counterparty",
   1518           "value_type": "public_key",
   1519           "relay_indexed": true
   1520         }
   1521       ],
   1522       "reducers": [
   1523         "social_projection"
   1524       ]
   1525     },
   1526     {
   1527       "ordinal": 16,
   1528       "contract_id": "radroots.file.metadata.v1",
   1529       "kind": 1063,
   1530       "name": "File Metadata",
   1531       "payload_type": "RadrootsFileMetadata",
   1532       "class": "regular",
   1533       "stability": "stable",
   1534       "privacy": "public",
   1535       "author_role": "any",
   1536       "content_schema": "json_object",
   1537       "authoring_policy": "generic_draft",
   1538       "discriminator": {
   1539         "type": "kind_only"
   1540       },
   1541       "tags": [
   1542         {
   1543           "name": "url",
   1544           "cardinality": "optional_one",
   1545           "semantic": "url",
   1546           "value_type": "url",
   1547           "relay_indexed": false
   1548         },
   1549         {
   1550           "name": "image",
   1551           "cardinality": "optional_many",
   1552           "semantic": "image",
   1553           "value_type": "url",
   1554           "relay_indexed": false
   1555         }
   1556       ],
   1557       "reducers": [
   1558         "social_projection"
   1559       ]
   1560     },
   1561     {
   1562       "ordinal": 17,
   1563       "contract_id": "radroots.social.comment.v1",
   1564       "kind": 1111,
   1565       "name": "Comment",
   1566       "payload_type": "RadrootsAuthoredNip22Comment / RadrootsInboundNip22CommentProjection",
   1567       "class": "regular",
   1568       "stability": "stable",
   1569       "privacy": "public",
   1570       "author_role": "any",
   1571       "content_schema": "plain_text",
   1572       "authoring_policy": "typed_only",
   1573       "discriminator": {
   1574         "type": "admission_only"
   1575       },
   1576       "tags": [
   1577         {
   1578           "name": "E",
   1579           "cardinality": "optional_one",
   1580           "semantic": "root_event",
   1581           "value_type": "event_id",
   1582           "relay_indexed": true
   1583         },
   1584         {
   1585           "name": "A",
   1586           "cardinality": "optional_one",
   1587           "semantic": "addressable_coordinate",
   1588           "value_type": "addressable_coordinate",
   1589           "relay_indexed": true
   1590         },
   1591         {
   1592           "name": "K",
   1593           "cardinality": "required_one",
   1594           "semantic": "kind",
   1595           "value_type": "kind",
   1596           "relay_indexed": true
   1597         },
   1598         {
   1599           "name": "P",
   1600           "cardinality": "required_one",
   1601           "semantic": "participant",
   1602           "value_type": "public_key",
   1603           "relay_indexed": true
   1604         },
   1605         {
   1606           "name": "a",
   1607           "cardinality": "optional_one",
   1608           "semantic": "addressable_coordinate",
   1609           "value_type": "addressable_coordinate",
   1610           "relay_indexed": true
   1611         },
   1612         {
   1613           "name": "e",
   1614           "cardinality": "required_one",
   1615           "semantic": "event_pointer",
   1616           "value_type": "event_id",
   1617           "relay_indexed": true
   1618         },
   1619         {
   1620           "name": "k",
   1621           "cardinality": "required_one",
   1622           "semantic": "kind",
   1623           "value_type": "kind",
   1624           "relay_indexed": true
   1625         },
   1626         {
   1627           "name": "p",
   1628           "cardinality": "required_many",
   1629           "semantic": "participant",
   1630           "value_type": "public_key",
   1631           "relay_indexed": true
   1632         }
   1633       ],
   1634       "reducers": [
   1635         "social_projection"
   1636       ]
   1637     },
   1638     {
   1639       "ordinal": 18,
   1640       "contract_id": "radroots.social.report.v1",
   1641       "kind": 1984,
   1642       "name": "Report",
   1643       "payload_type": "RadrootsReport",
   1644       "class": "regular",
   1645       "stability": "stable",
   1646       "privacy": "public",
   1647       "author_role": "moderator",
   1648       "content_schema": "plain_text",
   1649       "authoring_policy": "generic_draft",
   1650       "discriminator": {
   1651         "type": "kind_only"
   1652       },
   1653       "tags": [
   1654         {
   1655           "name": "e",
   1656           "cardinality": "optional_many",
   1657           "semantic": "event_pointer",
   1658           "value_type": "event_id",
   1659           "relay_indexed": true
   1660         },
   1661         {
   1662           "name": "p",
   1663           "cardinality": "optional_many",
   1664           "semantic": "counterparty",
   1665           "value_type": "public_key",
   1666           "relay_indexed": true
   1667         },
   1668         {
   1669           "name": "k",
   1670           "cardinality": "optional_one",
   1671           "semantic": "kind",
   1672           "value_type": "kind",
   1673           "relay_indexed": true
   1674         }
   1675       ],
   1676       "reducers": [
   1677         "social_projection"
   1678       ]
   1679     },
   1680     {
   1681       "ordinal": 19,
   1682       "contract_id": "radroots.group.put_user.v1",
   1683       "kind": 9000,
   1684       "name": "Group Put User",
   1685       "payload_type": "RadrootsGroupPutUser",
   1686       "class": "regular",
   1687       "stability": "stable",
   1688       "privacy": "public",
   1689       "author_role": "moderator",
   1690       "content_schema": "json_object",
   1691       "authoring_policy": "generic_draft",
   1692       "discriminator": {
   1693         "type": "kind_only"
   1694       },
   1695       "tags": [
   1696         {
   1697           "name": "h",
   1698           "cardinality": "required_one",
   1699           "semantic": "group_id",
   1700           "value_type": "d_tag",
   1701           "relay_indexed": true
   1702         },
   1703         {
   1704           "name": "p",
   1705           "cardinality": "optional_many",
   1706           "semantic": "counterparty",
   1707           "value_type": "public_key",
   1708           "relay_indexed": true
   1709         },
   1710         {
   1711           "name": "e",
   1712           "cardinality": "optional_many",
   1713           "semantic": "event_pointer",
   1714           "value_type": "event_id",
   1715           "relay_indexed": true
   1716         }
   1717       ],
   1718       "reducers": [
   1719         "group_projection"
   1720       ]
   1721     },
   1722     {
   1723       "ordinal": 20,
   1724       "contract_id": "radroots.group.remove_user.v1",
   1725       "kind": 9001,
   1726       "name": "Group Remove User",
   1727       "payload_type": "RadrootsGroupRemoveUser",
   1728       "class": "regular",
   1729       "stability": "stable",
   1730       "privacy": "public",
   1731       "author_role": "moderator",
   1732       "content_schema": "json_object",
   1733       "authoring_policy": "generic_draft",
   1734       "discriminator": {
   1735         "type": "kind_only"
   1736       },
   1737       "tags": [
   1738         {
   1739           "name": "h",
   1740           "cardinality": "required_one",
   1741           "semantic": "group_id",
   1742           "value_type": "d_tag",
   1743           "relay_indexed": true
   1744         },
   1745         {
   1746           "name": "p",
   1747           "cardinality": "optional_many",
   1748           "semantic": "counterparty",
   1749           "value_type": "public_key",
   1750           "relay_indexed": true
   1751         },
   1752         {
   1753           "name": "e",
   1754           "cardinality": "optional_many",
   1755           "semantic": "event_pointer",
   1756           "value_type": "event_id",
   1757           "relay_indexed": true
   1758         }
   1759       ],
   1760       "reducers": [
   1761         "group_projection"
   1762       ]
   1763     },
   1764     {
   1765       "ordinal": 21,
   1766       "contract_id": "radroots.group.edit_metadata.v1",
   1767       "kind": 9002,
   1768       "name": "Group Edit Metadata",
   1769       "payload_type": "RadrootsGroupEditMetadata",
   1770       "class": "regular",
   1771       "stability": "stable",
   1772       "privacy": "public",
   1773       "author_role": "moderator",
   1774       "content_schema": "json_object",
   1775       "authoring_policy": "generic_draft",
   1776       "discriminator": {
   1777         "type": "kind_only"
   1778       },
   1779       "tags": [
   1780         {
   1781           "name": "h",
   1782           "cardinality": "required_one",
   1783           "semantic": "group_id",
   1784           "value_type": "d_tag",
   1785           "relay_indexed": true
   1786         },
   1787         {
   1788           "name": "p",
   1789           "cardinality": "optional_many",
   1790           "semantic": "counterparty",
   1791           "value_type": "public_key",
   1792           "relay_indexed": true
   1793         },
   1794         {
   1795           "name": "e",
   1796           "cardinality": "optional_many",
   1797           "semantic": "event_pointer",
   1798           "value_type": "event_id",
   1799           "relay_indexed": true
   1800         }
   1801       ],
   1802       "reducers": [
   1803         "group_projection"
   1804       ]
   1805     },
   1806     {
   1807       "ordinal": 22,
   1808       "contract_id": "radroots.group.delete_event.v1",
   1809       "kind": 9005,
   1810       "name": "Group Delete Event",
   1811       "payload_type": "RadrootsGroupDeleteEvent",
   1812       "class": "regular",
   1813       "stability": "stable",
   1814       "privacy": "public",
   1815       "author_role": "moderator",
   1816       "content_schema": "json_object",
   1817       "authoring_policy": "generic_draft",
   1818       "discriminator": {
   1819         "type": "kind_only"
   1820       },
   1821       "tags": [
   1822         {
   1823           "name": "h",
   1824           "cardinality": "required_one",
   1825           "semantic": "group_id",
   1826           "value_type": "d_tag",
   1827           "relay_indexed": true
   1828         },
   1829         {
   1830           "name": "p",
   1831           "cardinality": "optional_many",
   1832           "semantic": "counterparty",
   1833           "value_type": "public_key",
   1834           "relay_indexed": true
   1835         },
   1836         {
   1837           "name": "e",
   1838           "cardinality": "optional_many",
   1839           "semantic": "event_pointer",
   1840           "value_type": "event_id",
   1841           "relay_indexed": true
   1842         }
   1843       ],
   1844       "reducers": [
   1845         "group_projection"
   1846       ]
   1847     },
   1848     {
   1849       "ordinal": 23,
   1850       "contract_id": "radroots.group.create_group.v1",
   1851       "kind": 9007,
   1852       "name": "Group Create Group",
   1853       "payload_type": "RadrootsGroupCreateGroup",
   1854       "class": "regular",
   1855       "stability": "stable",
   1856       "privacy": "public",
   1857       "author_role": "moderator",
   1858       "content_schema": "json_object",
   1859       "authoring_policy": "generic_draft",
   1860       "discriminator": {
   1861         "type": "kind_only"
   1862       },
   1863       "tags": [
   1864         {
   1865           "name": "h",
   1866           "cardinality": "required_one",
   1867           "semantic": "group_id",
   1868           "value_type": "d_tag",
   1869           "relay_indexed": true
   1870         },
   1871         {
   1872           "name": "p",
   1873           "cardinality": "optional_many",
   1874           "semantic": "counterparty",
   1875           "value_type": "public_key",
   1876           "relay_indexed": true
   1877         },
   1878         {
   1879           "name": "e",
   1880           "cardinality": "optional_many",
   1881           "semantic": "event_pointer",
   1882           "value_type": "event_id",
   1883           "relay_indexed": true
   1884         }
   1885       ],
   1886       "reducers": [
   1887         "group_projection"
   1888       ]
   1889     },
   1890     {
   1891       "ordinal": 24,
   1892       "contract_id": "radroots.group.delete_group.v1",
   1893       "kind": 9008,
   1894       "name": "Group Delete Group",
   1895       "payload_type": "RadrootsGroupDeleteGroup",
   1896       "class": "regular",
   1897       "stability": "stable",
   1898       "privacy": "public",
   1899       "author_role": "moderator",
   1900       "content_schema": "json_object",
   1901       "authoring_policy": "generic_draft",
   1902       "discriminator": {
   1903         "type": "kind_only"
   1904       },
   1905       "tags": [
   1906         {
   1907           "name": "h",
   1908           "cardinality": "required_one",
   1909           "semantic": "group_id",
   1910           "value_type": "d_tag",
   1911           "relay_indexed": true
   1912         },
   1913         {
   1914           "name": "p",
   1915           "cardinality": "optional_many",
   1916           "semantic": "counterparty",
   1917           "value_type": "public_key",
   1918           "relay_indexed": true
   1919         },
   1920         {
   1921           "name": "e",
   1922           "cardinality": "optional_many",
   1923           "semantic": "event_pointer",
   1924           "value_type": "event_id",
   1925           "relay_indexed": true
   1926         }
   1927       ],
   1928       "reducers": [
   1929         "group_projection"
   1930       ]
   1931     },
   1932     {
   1933       "ordinal": 25,
   1934       "contract_id": "radroots.group.create_invite.v1",
   1935       "kind": 9009,
   1936       "name": "Group Create Invite",
   1937       "payload_type": "RadrootsGroupCreateInvite",
   1938       "class": "regular",
   1939       "stability": "stable",
   1940       "privacy": "public",
   1941       "author_role": "moderator",
   1942       "content_schema": "json_object",
   1943       "authoring_policy": "generic_draft",
   1944       "discriminator": {
   1945         "type": "kind_only"
   1946       },
   1947       "tags": [
   1948         {
   1949           "name": "h",
   1950           "cardinality": "required_one",
   1951           "semantic": "group_id",
   1952           "value_type": "d_tag",
   1953           "relay_indexed": true
   1954         },
   1955         {
   1956           "name": "p",
   1957           "cardinality": "optional_many",
   1958           "semantic": "counterparty",
   1959           "value_type": "public_key",
   1960           "relay_indexed": true
   1961         },
   1962         {
   1963           "name": "e",
   1964           "cardinality": "optional_many",
   1965           "semantic": "event_pointer",
   1966           "value_type": "event_id",
   1967           "relay_indexed": true
   1968         }
   1969       ],
   1970       "reducers": [
   1971         "group_projection"
   1972       ]
   1973     },
   1974     {
   1975       "ordinal": 26,
   1976       "contract_id": "radroots.group.join_request.v1",
   1977       "kind": 9021,
   1978       "name": "Group Join Request",
   1979       "payload_type": "RadrootsGroupJoinRequest",
   1980       "class": "regular",
   1981       "stability": "stable",
   1982       "privacy": "public",
   1983       "author_role": "member",
   1984       "content_schema": "json_object",
   1985       "authoring_policy": "generic_draft",
   1986       "discriminator": {
   1987         "type": "kind_only"
   1988       },
   1989       "tags": [
   1990         {
   1991           "name": "h",
   1992           "cardinality": "required_one",
   1993           "semantic": "group_id",
   1994           "value_type": "d_tag",
   1995           "relay_indexed": true
   1996         },
   1997         {
   1998           "name": "p",
   1999           "cardinality": "optional_many",
   2000           "semantic": "counterparty",
   2001           "value_type": "public_key",
   2002           "relay_indexed": true
   2003         },
   2004         {
   2005           "name": "e",
   2006           "cardinality": "optional_many",
   2007           "semantic": "event_pointer",
   2008           "value_type": "event_id",
   2009           "relay_indexed": true
   2010         }
   2011       ],
   2012       "reducers": [
   2013         "group_projection"
   2014       ]
   2015     },
   2016     {
   2017       "ordinal": 27,
   2018       "contract_id": "radroots.group.leave_request.v1",
   2019       "kind": 9022,
   2020       "name": "Group Leave Request",
   2021       "payload_type": "RadrootsGroupLeaveRequest",
   2022       "class": "regular",
   2023       "stability": "stable",
   2024       "privacy": "public",
   2025       "author_role": "member",
   2026       "content_schema": "json_object",
   2027       "authoring_policy": "generic_draft",
   2028       "discriminator": {
   2029         "type": "kind_only"
   2030       },
   2031       "tags": [
   2032         {
   2033           "name": "h",
   2034           "cardinality": "required_one",
   2035           "semantic": "group_id",
   2036           "value_type": "d_tag",
   2037           "relay_indexed": true
   2038         },
   2039         {
   2040           "name": "p",
   2041           "cardinality": "optional_many",
   2042           "semantic": "counterparty",
   2043           "value_type": "public_key",
   2044           "relay_indexed": true
   2045         },
   2046         {
   2047           "name": "e",
   2048           "cardinality": "optional_many",
   2049           "semantic": "event_pointer",
   2050           "value_type": "event_id",
   2051           "relay_indexed": true
   2052         }
   2053       ],
   2054       "reducers": [
   2055         "group_projection"
   2056       ]
   2057     },
   2058     {
   2059       "ordinal": 28,
   2060       "contract_id": "radroots.social.geochat.v1",
   2061       "kind": 20000,
   2062       "name": "Geochat",
   2063       "payload_type": "RadrootsGeochat",
   2064       "class": "ephemeral",
   2065       "stability": "stable",
   2066       "privacy": "public",
   2067       "author_role": "any",
   2068       "content_schema": "plain_text",
   2069       "authoring_policy": "generic_draft",
   2070       "discriminator": {
   2071         "type": "kind_only"
   2072       },
   2073       "tags": [],
   2074       "reducers": [
   2075         "social_projection"
   2076       ]
   2077     },
   2078     {
   2079       "ordinal": 29,
   2080       "contract_id": "radroots.relay.auth.v1",
   2081       "kind": 22242,
   2082       "name": "Relay Auth",
   2083       "payload_type": "RadrootsRelayAuth",
   2084       "class": "ephemeral",
   2085       "stability": "stable",
   2086       "privacy": "public",
   2087       "author_role": "relay",
   2088       "content_schema": "json_object",
   2089       "authoring_policy": "generic_draft",
   2090       "discriminator": {
   2091         "type": "kind_only"
   2092       },
   2093       "tags": [],
   2094       "reducers": [
   2095         "nostr_relay_policy_projection"
   2096       ]
   2097     },
   2098     {
   2099       "ordinal": 30,
   2100       "contract_id": "radroots.http.auth.v1",
   2101       "kind": 27235,
   2102       "name": "HTTP Auth",
   2103       "payload_type": "RadrootsHttpAuth",
   2104       "class": "ephemeral",
   2105       "stability": "stable",
   2106       "privacy": "public",
   2107       "author_role": "application",
   2108       "content_schema": "json_object",
   2109       "authoring_policy": "generic_draft",
   2110       "discriminator": {
   2111         "type": "kind_only"
   2112       },
   2113       "tags": [],
   2114       "reducers": [
   2115         "nostr_relay_policy_projection"
   2116       ]
   2117     },
   2118     {
   2119       "ordinal": 31,
   2120       "contract_id": "radroots.list.mute.v1",
   2121       "kind": 10000,
   2122       "name": "Mute List",
   2123       "payload_type": "RadrootsList",
   2124       "class": "replaceable",
   2125       "stability": "stable",
   2126       "privacy": "public",
   2127       "author_role": "any",
   2128       "content_schema": "json_object",
   2129       "authoring_policy": "generic_draft",
   2130       "discriminator": {
   2131         "type": "kind_only"
   2132       },
   2133       "tags": [
   2134         {
   2135           "name": "e",
   2136           "cardinality": "optional_many",
   2137           "semantic": "event_pointer",
   2138           "value_type": "event_id",
   2139           "relay_indexed": true
   2140         },
   2141         {
   2142           "name": "a",
   2143           "cardinality": "optional_one",
   2144           "semantic": "addressable_coordinate",
   2145           "value_type": "addressable_coordinate",
   2146           "relay_indexed": true
   2147         },
   2148         {
   2149           "name": "p",
   2150           "cardinality": "optional_many",
   2151           "semantic": "counterparty",
   2152           "value_type": "public_key",
   2153           "relay_indexed": true
   2154         },
   2155         {
   2156           "name": "relay",
   2157           "cardinality": "optional_many",
   2158           "semantic": "relay",
   2159           "value_type": "relay_url",
   2160           "relay_indexed": false
   2161         }
   2162       ],
   2163       "reducers": [
   2164         "social_projection"
   2165       ]
   2166     },
   2167     {
   2168       "ordinal": 32,
   2169       "contract_id": "radroots.list.pinned_notes.v1",
   2170       "kind": 10001,
   2171       "name": "Pinned Notes List",
   2172       "payload_type": "RadrootsList",
   2173       "class": "replaceable",
   2174       "stability": "stable",
   2175       "privacy": "public",
   2176       "author_role": "any",
   2177       "content_schema": "json_object",
   2178       "authoring_policy": "generic_draft",
   2179       "discriminator": {
   2180         "type": "kind_only"
   2181       },
   2182       "tags": [
   2183         {
   2184           "name": "e",
   2185           "cardinality": "optional_many",
   2186           "semantic": "event_pointer",
   2187           "value_type": "event_id",
   2188           "relay_indexed": true
   2189         },
   2190         {
   2191           "name": "a",
   2192           "cardinality": "optional_one",
   2193           "semantic": "addressable_coordinate",
   2194           "value_type": "addressable_coordinate",
   2195           "relay_indexed": true
   2196         },
   2197         {
   2198           "name": "p",
   2199           "cardinality": "optional_many",
   2200           "semantic": "counterparty",
   2201           "value_type": "public_key",
   2202           "relay_indexed": true
   2203         },
   2204         {
   2205           "name": "relay",
   2206           "cardinality": "optional_many",
   2207           "semantic": "relay",
   2208           "value_type": "relay_url",
   2209           "relay_indexed": false
   2210         }
   2211       ],
   2212       "reducers": [
   2213         "social_projection"
   2214       ]
   2215     },
   2216     {
   2217       "ordinal": 33,
   2218       "contract_id": "radroots.list.read_write_relays.v1",
   2219       "kind": 10002,
   2220       "name": "Read Write Relays List",
   2221       "payload_type": "RadrootsList",
   2222       "class": "replaceable",
   2223       "stability": "stable",
   2224       "privacy": "public",
   2225       "author_role": "any",
   2226       "content_schema": "json_object",
   2227       "authoring_policy": "generic_draft",
   2228       "discriminator": {
   2229         "type": "kind_only"
   2230       },
   2231       "tags": [
   2232         {
   2233           "name": "e",
   2234           "cardinality": "optional_many",
   2235           "semantic": "event_pointer",
   2236           "value_type": "event_id",
   2237           "relay_indexed": true
   2238         },
   2239         {
   2240           "name": "a",
   2241           "cardinality": "optional_one",
   2242           "semantic": "addressable_coordinate",
   2243           "value_type": "addressable_coordinate",
   2244           "relay_indexed": true
   2245         },
   2246         {
   2247           "name": "p",
   2248           "cardinality": "optional_many",
   2249           "semantic": "counterparty",
   2250           "value_type": "public_key",
   2251           "relay_indexed": true
   2252         },
   2253         {
   2254           "name": "relay",
   2255           "cardinality": "optional_many",
   2256           "semantic": "relay",
   2257           "value_type": "relay_url",
   2258           "relay_indexed": false
   2259         }
   2260       ],
   2261       "reducers": [
   2262         "social_projection"
   2263       ]
   2264     },
   2265     {
   2266       "ordinal": 34,
   2267       "contract_id": "radroots.list.bookmarks.v1",
   2268       "kind": 10003,
   2269       "name": "Bookmarks List",
   2270       "payload_type": "RadrootsList",
   2271       "class": "replaceable",
   2272       "stability": "stable",
   2273       "privacy": "public",
   2274       "author_role": "any",
   2275       "content_schema": "json_object",
   2276       "authoring_policy": "generic_draft",
   2277       "discriminator": {
   2278         "type": "kind_only"
   2279       },
   2280       "tags": [
   2281         {
   2282           "name": "e",
   2283           "cardinality": "optional_many",
   2284           "semantic": "event_pointer",
   2285           "value_type": "event_id",
   2286           "relay_indexed": true
   2287         },
   2288         {
   2289           "name": "a",
   2290           "cardinality": "optional_one",
   2291           "semantic": "addressable_coordinate",
   2292           "value_type": "addressable_coordinate",
   2293           "relay_indexed": true
   2294         },
   2295         {
   2296           "name": "p",
   2297           "cardinality": "optional_many",
   2298           "semantic": "counterparty",
   2299           "value_type": "public_key",
   2300           "relay_indexed": true
   2301         },
   2302         {
   2303           "name": "relay",
   2304           "cardinality": "optional_many",
   2305           "semantic": "relay",
   2306           "value_type": "relay_url",
   2307           "relay_indexed": false
   2308         }
   2309       ],
   2310       "reducers": [
   2311         "social_projection"
   2312       ]
   2313     },
   2314     {
   2315       "ordinal": 35,
   2316       "contract_id": "radroots.list.communities.v1",
   2317       "kind": 10004,
   2318       "name": "Communities List",
   2319       "payload_type": "RadrootsList",
   2320       "class": "replaceable",
   2321       "stability": "stable",
   2322       "privacy": "public",
   2323       "author_role": "any",
   2324       "content_schema": "json_object",
   2325       "authoring_policy": "generic_draft",
   2326       "discriminator": {
   2327         "type": "kind_only"
   2328       },
   2329       "tags": [
   2330         {
   2331           "name": "e",
   2332           "cardinality": "optional_many",
   2333           "semantic": "event_pointer",
   2334           "value_type": "event_id",
   2335           "relay_indexed": true
   2336         },
   2337         {
   2338           "name": "a",
   2339           "cardinality": "optional_one",
   2340           "semantic": "addressable_coordinate",
   2341           "value_type": "addressable_coordinate",
   2342           "relay_indexed": true
   2343         },
   2344         {
   2345           "name": "p",
   2346           "cardinality": "optional_many",
   2347           "semantic": "counterparty",
   2348           "value_type": "public_key",
   2349           "relay_indexed": true
   2350         },
   2351         {
   2352           "name": "relay",
   2353           "cardinality": "optional_many",
   2354           "semantic": "relay",
   2355           "value_type": "relay_url",
   2356           "relay_indexed": false
   2357         }
   2358       ],
   2359       "reducers": [
   2360         "social_projection"
   2361       ]
   2362     },
   2363     {
   2364       "ordinal": 36,
   2365       "contract_id": "radroots.list.public_chats.v1",
   2366       "kind": 10005,
   2367       "name": "Public Chats List",
   2368       "payload_type": "RadrootsList",
   2369       "class": "replaceable",
   2370       "stability": "stable",
   2371       "privacy": "public",
   2372       "author_role": "any",
   2373       "content_schema": "json_object",
   2374       "authoring_policy": "generic_draft",
   2375       "discriminator": {
   2376         "type": "kind_only"
   2377       },
   2378       "tags": [
   2379         {
   2380           "name": "e",
   2381           "cardinality": "optional_many",
   2382           "semantic": "event_pointer",
   2383           "value_type": "event_id",
   2384           "relay_indexed": true
   2385         },
   2386         {
   2387           "name": "a",
   2388           "cardinality": "optional_one",
   2389           "semantic": "addressable_coordinate",
   2390           "value_type": "addressable_coordinate",
   2391           "relay_indexed": true
   2392         },
   2393         {
   2394           "name": "p",
   2395           "cardinality": "optional_many",
   2396           "semantic": "counterparty",
   2397           "value_type": "public_key",
   2398           "relay_indexed": true
   2399         },
   2400         {
   2401           "name": "relay",
   2402           "cardinality": "optional_many",
   2403           "semantic": "relay",
   2404           "value_type": "relay_url",
   2405           "relay_indexed": false
   2406         }
   2407       ],
   2408       "reducers": [
   2409         "social_projection"
   2410       ]
   2411     },
   2412     {
   2413       "ordinal": 37,
   2414       "contract_id": "radroots.list.blocked_relays.v1",
   2415       "kind": 10006,
   2416       "name": "Blocked Relays List",
   2417       "payload_type": "RadrootsList",
   2418       "class": "replaceable",
   2419       "stability": "stable",
   2420       "privacy": "public",
   2421       "author_role": "any",
   2422       "content_schema": "json_object",
   2423       "authoring_policy": "generic_draft",
   2424       "discriminator": {
   2425         "type": "kind_only"
   2426       },
   2427       "tags": [
   2428         {
   2429           "name": "e",
   2430           "cardinality": "optional_many",
   2431           "semantic": "event_pointer",
   2432           "value_type": "event_id",
   2433           "relay_indexed": true
   2434         },
   2435         {
   2436           "name": "a",
   2437           "cardinality": "optional_one",
   2438           "semantic": "addressable_coordinate",
   2439           "value_type": "addressable_coordinate",
   2440           "relay_indexed": true
   2441         },
   2442         {
   2443           "name": "p",
   2444           "cardinality": "optional_many",
   2445           "semantic": "counterparty",
   2446           "value_type": "public_key",
   2447           "relay_indexed": true
   2448         },
   2449         {
   2450           "name": "relay",
   2451           "cardinality": "optional_many",
   2452           "semantic": "relay",
   2453           "value_type": "relay_url",
   2454           "relay_indexed": false
   2455         }
   2456       ],
   2457       "reducers": [
   2458         "social_projection"
   2459       ]
   2460     },
   2461     {
   2462       "ordinal": 38,
   2463       "contract_id": "radroots.list.search_relays.v1",
   2464       "kind": 10007,
   2465       "name": "Search Relays List",
   2466       "payload_type": "RadrootsList",
   2467       "class": "replaceable",
   2468       "stability": "stable",
   2469       "privacy": "public",
   2470       "author_role": "any",
   2471       "content_schema": "json_object",
   2472       "authoring_policy": "generic_draft",
   2473       "discriminator": {
   2474         "type": "kind_only"
   2475       },
   2476       "tags": [
   2477         {
   2478           "name": "e",
   2479           "cardinality": "optional_many",
   2480           "semantic": "event_pointer",
   2481           "value_type": "event_id",
   2482           "relay_indexed": true
   2483         },
   2484         {
   2485           "name": "a",
   2486           "cardinality": "optional_one",
   2487           "semantic": "addressable_coordinate",
   2488           "value_type": "addressable_coordinate",
   2489           "relay_indexed": true
   2490         },
   2491         {
   2492           "name": "p",
   2493           "cardinality": "optional_many",
   2494           "semantic": "counterparty",
   2495           "value_type": "public_key",
   2496           "relay_indexed": true
   2497         },
   2498         {
   2499           "name": "relay",
   2500           "cardinality": "optional_many",
   2501           "semantic": "relay",
   2502           "value_type": "relay_url",
   2503           "relay_indexed": false
   2504         }
   2505       ],
   2506       "reducers": [
   2507         "social_projection"
   2508       ]
   2509     },
   2510     {
   2511       "ordinal": 39,
   2512       "contract_id": "radroots.list.simple_groups.v1",
   2513       "kind": 10009,
   2514       "name": "Simple Groups List",
   2515       "payload_type": "RadrootsList",
   2516       "class": "replaceable",
   2517       "stability": "stable",
   2518       "privacy": "public",
   2519       "author_role": "any",
   2520       "content_schema": "json_object",
   2521       "authoring_policy": "generic_draft",
   2522       "discriminator": {
   2523         "type": "kind_only"
   2524       },
   2525       "tags": [
   2526         {
   2527           "name": "e",
   2528           "cardinality": "optional_many",
   2529           "semantic": "event_pointer",
   2530           "value_type": "event_id",
   2531           "relay_indexed": true
   2532         },
   2533         {
   2534           "name": "a",
   2535           "cardinality": "optional_one",
   2536           "semantic": "addressable_coordinate",
   2537           "value_type": "addressable_coordinate",
   2538           "relay_indexed": true
   2539         },
   2540         {
   2541           "name": "p",
   2542           "cardinality": "optional_many",
   2543           "semantic": "counterparty",
   2544           "value_type": "public_key",
   2545           "relay_indexed": true
   2546         },
   2547         {
   2548           "name": "relay",
   2549           "cardinality": "optional_many",
   2550           "semantic": "relay",
   2551           "value_type": "relay_url",
   2552           "relay_indexed": false
   2553         }
   2554       ],
   2555       "reducers": [
   2556         "social_projection"
   2557       ]
   2558     },
   2559     {
   2560       "ordinal": 40,
   2561       "contract_id": "radroots.list.relay_feeds.v1",
   2562       "kind": 10012,
   2563       "name": "Relay Feeds List",
   2564       "payload_type": "RadrootsList",
   2565       "class": "replaceable",
   2566       "stability": "stable",
   2567       "privacy": "public",
   2568       "author_role": "any",
   2569       "content_schema": "json_object",
   2570       "authoring_policy": "generic_draft",
   2571       "discriminator": {
   2572         "type": "kind_only"
   2573       },
   2574       "tags": [
   2575         {
   2576           "name": "e",
   2577           "cardinality": "optional_many",
   2578           "semantic": "event_pointer",
   2579           "value_type": "event_id",
   2580           "relay_indexed": true
   2581         },
   2582         {
   2583           "name": "a",
   2584           "cardinality": "optional_one",
   2585           "semantic": "addressable_coordinate",
   2586           "value_type": "addressable_coordinate",
   2587           "relay_indexed": true
   2588         },
   2589         {
   2590           "name": "p",
   2591           "cardinality": "optional_many",
   2592           "semantic": "counterparty",
   2593           "value_type": "public_key",
   2594           "relay_indexed": true
   2595         },
   2596         {
   2597           "name": "relay",
   2598           "cardinality": "optional_many",
   2599           "semantic": "relay",
   2600           "value_type": "relay_url",
   2601           "relay_indexed": false
   2602         }
   2603       ],
   2604       "reducers": [
   2605         "social_projection"
   2606       ]
   2607     },
   2608     {
   2609       "ordinal": 41,
   2610       "contract_id": "radroots.list.interests.v1",
   2611       "kind": 10015,
   2612       "name": "Interests List",
   2613       "payload_type": "RadrootsList",
   2614       "class": "replaceable",
   2615       "stability": "stable",
   2616       "privacy": "public",
   2617       "author_role": "any",
   2618       "content_schema": "json_object",
   2619       "authoring_policy": "generic_draft",
   2620       "discriminator": {
   2621         "type": "kind_only"
   2622       },
   2623       "tags": [
   2624         {
   2625           "name": "e",
   2626           "cardinality": "optional_many",
   2627           "semantic": "event_pointer",
   2628           "value_type": "event_id",
   2629           "relay_indexed": true
   2630         },
   2631         {
   2632           "name": "a",
   2633           "cardinality": "optional_one",
   2634           "semantic": "addressable_coordinate",
   2635           "value_type": "addressable_coordinate",
   2636           "relay_indexed": true
   2637         },
   2638         {
   2639           "name": "p",
   2640           "cardinality": "optional_many",
   2641           "semantic": "counterparty",
   2642           "value_type": "public_key",
   2643           "relay_indexed": true
   2644         },
   2645         {
   2646           "name": "relay",
   2647           "cardinality": "optional_many",
   2648           "semantic": "relay",
   2649           "value_type": "relay_url",
   2650           "relay_indexed": false
   2651         }
   2652       ],
   2653       "reducers": [
   2654         "social_projection"
   2655       ]
   2656     },
   2657     {
   2658       "ordinal": 42,
   2659       "contract_id": "radroots.list.media_follows.v1",
   2660       "kind": 10020,
   2661       "name": "Media Follows List",
   2662       "payload_type": "RadrootsList",
   2663       "class": "replaceable",
   2664       "stability": "stable",
   2665       "privacy": "public",
   2666       "author_role": "any",
   2667       "content_schema": "json_object",
   2668       "authoring_policy": "generic_draft",
   2669       "discriminator": {
   2670         "type": "kind_only"
   2671       },
   2672       "tags": [
   2673         {
   2674           "name": "e",
   2675           "cardinality": "optional_many",
   2676           "semantic": "event_pointer",
   2677           "value_type": "event_id",
   2678           "relay_indexed": true
   2679         },
   2680         {
   2681           "name": "a",
   2682           "cardinality": "optional_one",
   2683           "semantic": "addressable_coordinate",
   2684           "value_type": "addressable_coordinate",
   2685           "relay_indexed": true
   2686         },
   2687         {
   2688           "name": "p",
   2689           "cardinality": "optional_many",
   2690           "semantic": "counterparty",
   2691           "value_type": "public_key",
   2692           "relay_indexed": true
   2693         },
   2694         {
   2695           "name": "relay",
   2696           "cardinality": "optional_many",
   2697           "semantic": "relay",
   2698           "value_type": "relay_url",
   2699           "relay_indexed": false
   2700         }
   2701       ],
   2702       "reducers": [
   2703         "social_projection"
   2704       ]
   2705     },
   2706     {
   2707       "ordinal": 43,
   2708       "contract_id": "radroots.list.emojis.v1",
   2709       "kind": 10030,
   2710       "name": "Emojis List",
   2711       "payload_type": "RadrootsList",
   2712       "class": "replaceable",
   2713       "stability": "stable",
   2714       "privacy": "public",
   2715       "author_role": "any",
   2716       "content_schema": "json_object",
   2717       "authoring_policy": "generic_draft",
   2718       "discriminator": {
   2719         "type": "kind_only"
   2720       },
   2721       "tags": [
   2722         {
   2723           "name": "e",
   2724           "cardinality": "optional_many",
   2725           "semantic": "event_pointer",
   2726           "value_type": "event_id",
   2727           "relay_indexed": true
   2728         },
   2729         {
   2730           "name": "a",
   2731           "cardinality": "optional_one",
   2732           "semantic": "addressable_coordinate",
   2733           "value_type": "addressable_coordinate",
   2734           "relay_indexed": true
   2735         },
   2736         {
   2737           "name": "p",
   2738           "cardinality": "optional_many",
   2739           "semantic": "counterparty",
   2740           "value_type": "public_key",
   2741           "relay_indexed": true
   2742         },
   2743         {
   2744           "name": "relay",
   2745           "cardinality": "optional_many",
   2746           "semantic": "relay",
   2747           "value_type": "relay_url",
   2748           "relay_indexed": false
   2749         }
   2750       ],
   2751       "reducers": [
   2752         "social_projection"
   2753       ]
   2754     },
   2755     {
   2756       "ordinal": 44,
   2757       "contract_id": "radroots.list.dm_relays.v1",
   2758       "kind": 10050,
   2759       "name": "DM Relays List",
   2760       "payload_type": "RadrootsList",
   2761       "class": "replaceable",
   2762       "stability": "stable",
   2763       "privacy": "public",
   2764       "author_role": "any",
   2765       "content_schema": "json_object",
   2766       "authoring_policy": "generic_draft",
   2767       "discriminator": {
   2768         "type": "kind_only"
   2769       },
   2770       "tags": [
   2771         {
   2772           "name": "e",
   2773           "cardinality": "optional_many",
   2774           "semantic": "event_pointer",
   2775           "value_type": "event_id",
   2776           "relay_indexed": true
   2777         },
   2778         {
   2779           "name": "a",
   2780           "cardinality": "optional_one",
   2781           "semantic": "addressable_coordinate",
   2782           "value_type": "addressable_coordinate",
   2783           "relay_indexed": true
   2784         },
   2785         {
   2786           "name": "p",
   2787           "cardinality": "optional_many",
   2788           "semantic": "counterparty",
   2789           "value_type": "public_key",
   2790           "relay_indexed": true
   2791         },
   2792         {
   2793           "name": "relay",
   2794           "cardinality": "optional_many",
   2795           "semantic": "relay",
   2796           "value_type": "relay_url",
   2797           "relay_indexed": false
   2798         }
   2799       ],
   2800       "reducers": [
   2801         "social_projection"
   2802       ]
   2803     },
   2804     {
   2805       "ordinal": 45,
   2806       "contract_id": "radroots.list.good_wiki_authors.v1",
   2807       "kind": 10101,
   2808       "name": "Good Wiki Authors List",
   2809       "payload_type": "RadrootsList",
   2810       "class": "replaceable",
   2811       "stability": "stable",
   2812       "privacy": "public",
   2813       "author_role": "any",
   2814       "content_schema": "json_object",
   2815       "authoring_policy": "generic_draft",
   2816       "discriminator": {
   2817         "type": "kind_only"
   2818       },
   2819       "tags": [
   2820         {
   2821           "name": "e",
   2822           "cardinality": "optional_many",
   2823           "semantic": "event_pointer",
   2824           "value_type": "event_id",
   2825           "relay_indexed": true
   2826         },
   2827         {
   2828           "name": "a",
   2829           "cardinality": "optional_one",
   2830           "semantic": "addressable_coordinate",
   2831           "value_type": "addressable_coordinate",
   2832           "relay_indexed": true
   2833         },
   2834         {
   2835           "name": "p",
   2836           "cardinality": "optional_many",
   2837           "semantic": "counterparty",
   2838           "value_type": "public_key",
   2839           "relay_indexed": true
   2840         },
   2841         {
   2842           "name": "relay",
   2843           "cardinality": "optional_many",
   2844           "semantic": "relay",
   2845           "value_type": "relay_url",
   2846           "relay_indexed": false
   2847         }
   2848       ],
   2849       "reducers": [
   2850         "social_projection"
   2851       ]
   2852     },
   2853     {
   2854       "ordinal": 46,
   2855       "contract_id": "radroots.list.good_wiki_relays.v1",
   2856       "kind": 10102,
   2857       "name": "Good Wiki Relays List",
   2858       "payload_type": "RadrootsList",
   2859       "class": "replaceable",
   2860       "stability": "stable",
   2861       "privacy": "public",
   2862       "author_role": "any",
   2863       "content_schema": "json_object",
   2864       "authoring_policy": "generic_draft",
   2865       "discriminator": {
   2866         "type": "kind_only"
   2867       },
   2868       "tags": [
   2869         {
   2870           "name": "e",
   2871           "cardinality": "optional_many",
   2872           "semantic": "event_pointer",
   2873           "value_type": "event_id",
   2874           "relay_indexed": true
   2875         },
   2876         {
   2877           "name": "a",
   2878           "cardinality": "optional_one",
   2879           "semantic": "addressable_coordinate",
   2880           "value_type": "addressable_coordinate",
   2881           "relay_indexed": true
   2882         },
   2883         {
   2884           "name": "p",
   2885           "cardinality": "optional_many",
   2886           "semantic": "counterparty",
   2887           "value_type": "public_key",
   2888           "relay_indexed": true
   2889         },
   2890         {
   2891           "name": "relay",
   2892           "cardinality": "optional_many",
   2893           "semantic": "relay",
   2894           "value_type": "relay_url",
   2895           "relay_indexed": false
   2896         }
   2897       ],
   2898       "reducers": [
   2899         "social_projection"
   2900       ]
   2901     },
   2902     {
   2903       "ordinal": 47,
   2904       "contract_id": "radroots.list_set.follow.v1",
   2905       "kind": 30000,
   2906       "name": "Follow Set",
   2907       "payload_type": "RadrootsListSet",
   2908       "class": "addressable",
   2909       "stability": "stable",
   2910       "privacy": "public",
   2911       "author_role": "any",
   2912       "content_schema": "json_object",
   2913       "authoring_policy": "generic_draft",
   2914       "discriminator": {
   2915         "type": "kind_only"
   2916       },
   2917       "tags": [
   2918         {
   2919           "name": "d",
   2920           "cardinality": "required_one",
   2921           "semantic": "identifier",
   2922           "value_type": "d_tag",
   2923           "relay_indexed": true
   2924         },
   2925         {
   2926           "name": "e",
   2927           "cardinality": "optional_many",
   2928           "semantic": "event_pointer",
   2929           "value_type": "event_id",
   2930           "relay_indexed": true
   2931         },
   2932         {
   2933           "name": "a",
   2934           "cardinality": "optional_one",
   2935           "semantic": "addressable_coordinate",
   2936           "value_type": "addressable_coordinate",
   2937           "relay_indexed": true
   2938         },
   2939         {
   2940           "name": "p",
   2941           "cardinality": "optional_many",
   2942           "semantic": "counterparty",
   2943           "value_type": "public_key",
   2944           "relay_indexed": true
   2945         }
   2946       ],
   2947       "reducers": [
   2948         "social_projection"
   2949       ]
   2950     },
   2951     {
   2952       "ordinal": 48,
   2953       "contract_id": "radroots.list_set.farm.members.v1",
   2954       "kind": 30001,
   2955       "name": "Farm Members List Set",
   2956       "payload_type": "RadrootsListSet",
   2957       "class": "addressable",
   2958       "stability": "stable",
   2959       "privacy": "public",
   2960       "author_role": "farmer",
   2961       "content_schema": "json_object",
   2962       "authoring_policy": "generic_draft",
   2963       "discriminator": {
   2964         "type": "composite",
   2965         "parts": [
   2966           {
   2967             "type": "d_tag_prefix",
   2968             "prefix": "farm:"
   2969           },
   2970           {
   2971             "type": "d_tag_suffix",
   2972             "suffix": ":members"
   2973           }
   2974         ]
   2975       },
   2976       "tags": [
   2977         {
   2978           "name": "d",
   2979           "cardinality": "required_one",
   2980           "semantic": "identifier",
   2981           "value_type": "d_tag",
   2982           "relay_indexed": true
   2983         },
   2984         {
   2985           "name": "e",
   2986           "cardinality": "optional_many",
   2987           "semantic": "event_pointer",
   2988           "value_type": "event_id",
   2989           "relay_indexed": true
   2990         },
   2991         {
   2992           "name": "a",
   2993           "cardinality": "optional_one",
   2994           "semantic": "addressable_coordinate",
   2995           "value_type": "addressable_coordinate",
   2996           "relay_indexed": true
   2997         },
   2998         {
   2999           "name": "p",
   3000           "cardinality": "optional_many",
   3001           "semantic": "counterparty",
   3002           "value_type": "public_key",
   3003           "relay_indexed": true
   3004         }
   3005       ],
   3006       "reducers": [
   3007         "farm_ops_projection"
   3008       ]
   3009     },
   3010     {
   3011       "ordinal": 49,
   3012       "contract_id": "radroots.list_set.farm.members.owners.v1",
   3013       "kind": 30001,
   3014       "name": "Farm Owners List Set",
   3015       "payload_type": "RadrootsListSet",
   3016       "class": "addressable",
   3017       "stability": "stable",
   3018       "privacy": "public",
   3019       "author_role": "farmer",
   3020       "content_schema": "json_object",
   3021       "authoring_policy": "generic_draft",
   3022       "discriminator": {
   3023         "type": "composite",
   3024         "parts": [
   3025           {
   3026             "type": "d_tag_prefix",
   3027             "prefix": "farm:"
   3028           },
   3029           {
   3030             "type": "d_tag_suffix",
   3031             "suffix": ":members.owners"
   3032           }
   3033         ]
   3034       },
   3035       "tags": [
   3036         {
   3037           "name": "d",
   3038           "cardinality": "required_one",
   3039           "semantic": "identifier",
   3040           "value_type": "d_tag",
   3041           "relay_indexed": true
   3042         },
   3043         {
   3044           "name": "e",
   3045           "cardinality": "optional_many",
   3046           "semantic": "event_pointer",
   3047           "value_type": "event_id",
   3048           "relay_indexed": true
   3049         },
   3050         {
   3051           "name": "a",
   3052           "cardinality": "optional_one",
   3053           "semantic": "addressable_coordinate",
   3054           "value_type": "addressable_coordinate",
   3055           "relay_indexed": true
   3056         },
   3057         {
   3058           "name": "p",
   3059           "cardinality": "optional_many",
   3060           "semantic": "counterparty",
   3061           "value_type": "public_key",
   3062           "relay_indexed": true
   3063         }
   3064       ],
   3065       "reducers": [
   3066         "farm_ops_projection"
   3067       ]
   3068     },
   3069     {
   3070       "ordinal": 50,
   3071       "contract_id": "radroots.list_set.farm.members.workers.v1",
   3072       "kind": 30001,
   3073       "name": "Farm Workers List Set",
   3074       "payload_type": "RadrootsListSet",
   3075       "class": "addressable",
   3076       "stability": "stable",
   3077       "privacy": "public",
   3078       "author_role": "farmer",
   3079       "content_schema": "json_object",
   3080       "authoring_policy": "generic_draft",
   3081       "discriminator": {
   3082         "type": "composite",
   3083         "parts": [
   3084           {
   3085             "type": "d_tag_prefix",
   3086             "prefix": "farm:"
   3087           },
   3088           {
   3089             "type": "d_tag_suffix",
   3090             "suffix": ":members.workers"
   3091           }
   3092         ]
   3093       },
   3094       "tags": [
   3095         {
   3096           "name": "d",
   3097           "cardinality": "required_one",
   3098           "semantic": "identifier",
   3099           "value_type": "d_tag",
   3100           "relay_indexed": true
   3101         },
   3102         {
   3103           "name": "e",
   3104           "cardinality": "optional_many",
   3105           "semantic": "event_pointer",
   3106           "value_type": "event_id",
   3107           "relay_indexed": true
   3108         },
   3109         {
   3110           "name": "a",
   3111           "cardinality": "optional_one",
   3112           "semantic": "addressable_coordinate",
   3113           "value_type": "addressable_coordinate",
   3114           "relay_indexed": true
   3115         },
   3116         {
   3117           "name": "p",
   3118           "cardinality": "optional_many",
   3119           "semantic": "counterparty",
   3120           "value_type": "public_key",
   3121           "relay_indexed": true
   3122         }
   3123       ],
   3124       "reducers": [
   3125         "farm_ops_projection"
   3126       ]
   3127     },
   3128     {
   3129       "ordinal": 51,
   3130       "contract_id": "radroots.list_set.farm.plots.v1",
   3131       "kind": 30001,
   3132       "name": "Farm Plots List Set",
   3133       "payload_type": "RadrootsListSet",
   3134       "class": "addressable",
   3135       "stability": "stable",
   3136       "privacy": "public",
   3137       "author_role": "farmer",
   3138       "content_schema": "json_object",
   3139       "authoring_policy": "generic_draft",
   3140       "discriminator": {
   3141         "type": "composite",
   3142         "parts": [
   3143           {
   3144             "type": "d_tag_prefix",
   3145             "prefix": "farm:"
   3146           },
   3147           {
   3148             "type": "d_tag_suffix",
   3149             "suffix": ":plots"
   3150           }
   3151         ]
   3152       },
   3153       "tags": [
   3154         {
   3155           "name": "d",
   3156           "cardinality": "required_one",
   3157           "semantic": "identifier",
   3158           "value_type": "d_tag",
   3159           "relay_indexed": true
   3160         },
   3161         {
   3162           "name": "e",
   3163           "cardinality": "optional_many",
   3164           "semantic": "event_pointer",
   3165           "value_type": "event_id",
   3166           "relay_indexed": true
   3167         },
   3168         {
   3169           "name": "a",
   3170           "cardinality": "optional_one",
   3171           "semantic": "addressable_coordinate",
   3172           "value_type": "addressable_coordinate",
   3173           "relay_indexed": true
   3174         },
   3175         {
   3176           "name": "p",
   3177           "cardinality": "optional_many",
   3178           "semantic": "counterparty",
   3179           "value_type": "public_key",
   3180           "relay_indexed": true
   3181         }
   3182       ],
   3183       "reducers": [
   3184         "farm_ops_projection"
   3185       ]
   3186     },
   3187     {
   3188       "ordinal": 52,
   3189       "contract_id": "radroots.list_set.farm.listings.v1",
   3190       "kind": 30001,
   3191       "name": "Farm Listings List Set",
   3192       "payload_type": "RadrootsListSet",
   3193       "class": "addressable",
   3194       "stability": "stable",
   3195       "privacy": "public",
   3196       "author_role": "farmer",
   3197       "content_schema": "json_object",
   3198       "authoring_policy": "generic_draft",
   3199       "discriminator": {
   3200         "type": "composite",
   3201         "parts": [
   3202           {
   3203             "type": "d_tag_prefix",
   3204             "prefix": "farm:"
   3205           },
   3206           {
   3207             "type": "d_tag_suffix",
   3208             "suffix": ":listings"
   3209           }
   3210         ]
   3211       },
   3212       "tags": [
   3213         {
   3214           "name": "d",
   3215           "cardinality": "required_one",
   3216           "semantic": "identifier",
   3217           "value_type": "d_tag",
   3218           "relay_indexed": true
   3219         },
   3220         {
   3221           "name": "e",
   3222           "cardinality": "optional_many",
   3223           "semantic": "event_pointer",
   3224           "value_type": "event_id",
   3225           "relay_indexed": true
   3226         },
   3227         {
   3228           "name": "a",
   3229           "cardinality": "optional_one",
   3230           "semantic": "addressable_coordinate",
   3231           "value_type": "addressable_coordinate",
   3232           "relay_indexed": true
   3233         },
   3234         {
   3235           "name": "p",
   3236           "cardinality": "optional_many",
   3237           "semantic": "counterparty",
   3238           "value_type": "public_key",
   3239           "relay_indexed": true
   3240         }
   3241       ],
   3242       "reducers": [
   3243         "farm_ops_projection"
   3244       ]
   3245     },
   3246     {
   3247       "ordinal": 53,
   3248       "contract_id": "radroots.list_set.member_of.farms.v1",
   3249       "kind": 30001,
   3250       "name": "Member Of Farms List Set",
   3251       "payload_type": "RadrootsListSet",
   3252       "class": "addressable",
   3253       "stability": "stable",
   3254       "privacy": "public",
   3255       "author_role": "member",
   3256       "content_schema": "json_object",
   3257       "authoring_policy": "generic_draft",
   3258       "discriminator": {
   3259         "type": "d_tag_exact",
   3260         "value": "member_of.farms"
   3261       },
   3262       "tags": [
   3263         {
   3264           "name": "d",
   3265           "cardinality": "required_one",
   3266           "semantic": "identifier",
   3267           "value_type": "d_tag",
   3268           "relay_indexed": true
   3269         },
   3270         {
   3271           "name": "e",
   3272           "cardinality": "optional_many",
   3273           "semantic": "event_pointer",
   3274           "value_type": "event_id",
   3275           "relay_indexed": true
   3276         },
   3277         {
   3278           "name": "a",
   3279           "cardinality": "optional_one",
   3280           "semantic": "addressable_coordinate",
   3281           "value_type": "addressable_coordinate",
   3282           "relay_indexed": true
   3283         },
   3284         {
   3285           "name": "p",
   3286           "cardinality": "optional_many",
   3287           "semantic": "counterparty",
   3288           "value_type": "public_key",
   3289           "relay_indexed": true
   3290         }
   3291       ],
   3292       "reducers": [
   3293         "farm_ops_projection"
   3294       ]
   3295     },
   3296     {
   3297       "ordinal": 54,
   3298       "contract_id": "radroots.list_set.relay.v1",
   3299       "kind": 30002,
   3300       "name": "Relay Set",
   3301       "payload_type": "RadrootsListSet",
   3302       "class": "addressable",
   3303       "stability": "stable",
   3304       "privacy": "public",
   3305       "author_role": "any",
   3306       "content_schema": "json_object",
   3307       "authoring_policy": "generic_draft",
   3308       "discriminator": {
   3309         "type": "kind_only"
   3310       },
   3311       "tags": [
   3312         {
   3313           "name": "d",
   3314           "cardinality": "required_one",
   3315           "semantic": "identifier",
   3316           "value_type": "d_tag",
   3317           "relay_indexed": true
   3318         },
   3319         {
   3320           "name": "e",
   3321           "cardinality": "optional_many",
   3322           "semantic": "event_pointer",
   3323           "value_type": "event_id",
   3324           "relay_indexed": true
   3325         },
   3326         {
   3327           "name": "a",
   3328           "cardinality": "optional_one",
   3329           "semantic": "addressable_coordinate",
   3330           "value_type": "addressable_coordinate",
   3331           "relay_indexed": true
   3332         },
   3333         {
   3334           "name": "p",
   3335           "cardinality": "optional_many",
   3336           "semantic": "counterparty",
   3337           "value_type": "public_key",
   3338           "relay_indexed": true
   3339         }
   3340       ],
   3341       "reducers": [
   3342         "nostr_relay_policy_projection"
   3343       ]
   3344     },
   3345     {
   3346       "ordinal": 55,
   3347       "contract_id": "radroots.list_set.bookmark.v1",
   3348       "kind": 30003,
   3349       "name": "Bookmark Set",
   3350       "payload_type": "RadrootsListSet",
   3351       "class": "addressable",
   3352       "stability": "stable",
   3353       "privacy": "public",
   3354       "author_role": "any",
   3355       "content_schema": "json_object",
   3356       "authoring_policy": "generic_draft",
   3357       "discriminator": {
   3358         "type": "kind_only"
   3359       },
   3360       "tags": [
   3361         {
   3362           "name": "d",
   3363           "cardinality": "required_one",
   3364           "semantic": "identifier",
   3365           "value_type": "d_tag",
   3366           "relay_indexed": true
   3367         },
   3368         {
   3369           "name": "e",
   3370           "cardinality": "optional_many",
   3371           "semantic": "event_pointer",
   3372           "value_type": "event_id",
   3373           "relay_indexed": true
   3374         },
   3375         {
   3376           "name": "a",
   3377           "cardinality": "optional_one",
   3378           "semantic": "addressable_coordinate",
   3379           "value_type": "addressable_coordinate",
   3380           "relay_indexed": true
   3381         },
   3382         {
   3383           "name": "p",
   3384           "cardinality": "optional_many",
   3385           "semantic": "counterparty",
   3386           "value_type": "public_key",
   3387           "relay_indexed": true
   3388         }
   3389       ],
   3390       "reducers": [
   3391         "social_projection"
   3392       ]
   3393     },
   3394     {
   3395       "ordinal": 56,
   3396       "contract_id": "radroots.list_set.curation.v1",
   3397       "kind": 30004,
   3398       "name": "Curation Set",
   3399       "payload_type": "RadrootsListSet",
   3400       "class": "addressable",
   3401       "stability": "stable",
   3402       "privacy": "public",
   3403       "author_role": "any",
   3404       "content_schema": "json_object",
   3405       "authoring_policy": "generic_draft",
   3406       "discriminator": {
   3407         "type": "kind_only"
   3408       },
   3409       "tags": [
   3410         {
   3411           "name": "d",
   3412           "cardinality": "required_one",
   3413           "semantic": "identifier",
   3414           "value_type": "d_tag",
   3415           "relay_indexed": true
   3416         },
   3417         {
   3418           "name": "e",
   3419           "cardinality": "optional_many",
   3420           "semantic": "event_pointer",
   3421           "value_type": "event_id",
   3422           "relay_indexed": true
   3423         },
   3424         {
   3425           "name": "a",
   3426           "cardinality": "optional_one",
   3427           "semantic": "addressable_coordinate",
   3428           "value_type": "addressable_coordinate",
   3429           "relay_indexed": true
   3430         },
   3431         {
   3432           "name": "p",
   3433           "cardinality": "optional_many",
   3434           "semantic": "counterparty",
   3435           "value_type": "public_key",
   3436           "relay_indexed": true
   3437         }
   3438       ],
   3439       "reducers": [
   3440         "social_projection"
   3441       ]
   3442     },
   3443     {
   3444       "ordinal": 57,
   3445       "contract_id": "radroots.list_set.video.v1",
   3446       "kind": 30005,
   3447       "name": "Video Set",
   3448       "payload_type": "RadrootsListSet",
   3449       "class": "addressable",
   3450       "stability": "stable",
   3451       "privacy": "public",
   3452       "author_role": "any",
   3453       "content_schema": "json_object",
   3454       "authoring_policy": "generic_draft",
   3455       "discriminator": {
   3456         "type": "kind_only"
   3457       },
   3458       "tags": [
   3459         {
   3460           "name": "d",
   3461           "cardinality": "required_one",
   3462           "semantic": "identifier",
   3463           "value_type": "d_tag",
   3464           "relay_indexed": true
   3465         },
   3466         {
   3467           "name": "e",
   3468           "cardinality": "optional_many",
   3469           "semantic": "event_pointer",
   3470           "value_type": "event_id",
   3471           "relay_indexed": true
   3472         },
   3473         {
   3474           "name": "a",
   3475           "cardinality": "optional_one",
   3476           "semantic": "addressable_coordinate",
   3477           "value_type": "addressable_coordinate",
   3478           "relay_indexed": true
   3479         },
   3480         {
   3481           "name": "p",
   3482           "cardinality": "optional_many",
   3483           "semantic": "counterparty",
   3484           "value_type": "public_key",
   3485           "relay_indexed": true
   3486         }
   3487       ],
   3488       "reducers": [
   3489         "social_projection"
   3490       ]
   3491     },
   3492     {
   3493       "ordinal": 58,
   3494       "contract_id": "radroots.list_set.picture.v1",
   3495       "kind": 30006,
   3496       "name": "Picture Set",
   3497       "payload_type": "RadrootsListSet",
   3498       "class": "addressable",
   3499       "stability": "stable",
   3500       "privacy": "public",
   3501       "author_role": "any",
   3502       "content_schema": "json_object",
   3503       "authoring_policy": "generic_draft",
   3504       "discriminator": {
   3505         "type": "kind_only"
   3506       },
   3507       "tags": [
   3508         {
   3509           "name": "d",
   3510           "cardinality": "required_one",
   3511           "semantic": "identifier",
   3512           "value_type": "d_tag",
   3513           "relay_indexed": true
   3514         },
   3515         {
   3516           "name": "e",
   3517           "cardinality": "optional_many",
   3518           "semantic": "event_pointer",
   3519           "value_type": "event_id",
   3520           "relay_indexed": true
   3521         },
   3522         {
   3523           "name": "a",
   3524           "cardinality": "optional_one",
   3525           "semantic": "addressable_coordinate",
   3526           "value_type": "addressable_coordinate",
   3527           "relay_indexed": true
   3528         },
   3529         {
   3530           "name": "p",
   3531           "cardinality": "optional_many",
   3532           "semantic": "counterparty",
   3533           "value_type": "public_key",
   3534           "relay_indexed": true
   3535         }
   3536       ],
   3537       "reducers": [
   3538         "social_projection"
   3539       ]
   3540     },
   3541     {
   3542       "ordinal": 59,
   3543       "contract_id": "radroots.list_set.kind_mute.v1",
   3544       "kind": 30007,
   3545       "name": "Kind Mute Set",
   3546       "payload_type": "RadrootsListSet",
   3547       "class": "addressable",
   3548       "stability": "stable",
   3549       "privacy": "public",
   3550       "author_role": "any",
   3551       "content_schema": "json_object",
   3552       "authoring_policy": "generic_draft",
   3553       "discriminator": {
   3554         "type": "kind_only"
   3555       },
   3556       "tags": [
   3557         {
   3558           "name": "d",
   3559           "cardinality": "required_one",
   3560           "semantic": "identifier",
   3561           "value_type": "d_tag",
   3562           "relay_indexed": true
   3563         },
   3564         {
   3565           "name": "e",
   3566           "cardinality": "optional_many",
   3567           "semantic": "event_pointer",
   3568           "value_type": "event_id",
   3569           "relay_indexed": true
   3570         },
   3571         {
   3572           "name": "a",
   3573           "cardinality": "optional_one",
   3574           "semantic": "addressable_coordinate",
   3575           "value_type": "addressable_coordinate",
   3576           "relay_indexed": true
   3577         },
   3578         {
   3579           "name": "p",
   3580           "cardinality": "optional_many",
   3581           "semantic": "counterparty",
   3582           "value_type": "public_key",
   3583           "relay_indexed": true
   3584         }
   3585       ],
   3586       "reducers": [
   3587         "social_projection"
   3588       ]
   3589     },
   3590     {
   3591       "ordinal": 60,
   3592       "contract_id": "radroots.list_set.interest.v1",
   3593       "kind": 30015,
   3594       "name": "Interest Set",
   3595       "payload_type": "RadrootsListSet",
   3596       "class": "addressable",
   3597       "stability": "stable",
   3598       "privacy": "public",
   3599       "author_role": "any",
   3600       "content_schema": "json_object",
   3601       "authoring_policy": "generic_draft",
   3602       "discriminator": {
   3603         "type": "kind_only"
   3604       },
   3605       "tags": [
   3606         {
   3607           "name": "d",
   3608           "cardinality": "required_one",
   3609           "semantic": "identifier",
   3610           "value_type": "d_tag",
   3611           "relay_indexed": true
   3612         },
   3613         {
   3614           "name": "e",
   3615           "cardinality": "optional_many",
   3616           "semantic": "event_pointer",
   3617           "value_type": "event_id",
   3618           "relay_indexed": true
   3619         },
   3620         {
   3621           "name": "a",
   3622           "cardinality": "optional_one",
   3623           "semantic": "addressable_coordinate",
   3624           "value_type": "addressable_coordinate",
   3625           "relay_indexed": true
   3626         },
   3627         {
   3628           "name": "p",
   3629           "cardinality": "optional_many",
   3630           "semantic": "counterparty",
   3631           "value_type": "public_key",
   3632           "relay_indexed": true
   3633         }
   3634       ],
   3635       "reducers": [
   3636         "social_projection"
   3637       ]
   3638     },
   3639     {
   3640       "ordinal": 61,
   3641       "contract_id": "radroots.list_set.emoji.v1",
   3642       "kind": 30030,
   3643       "name": "Emoji Set",
   3644       "payload_type": "RadrootsListSet",
   3645       "class": "addressable",
   3646       "stability": "stable",
   3647       "privacy": "public",
   3648       "author_role": "any",
   3649       "content_schema": "json_object",
   3650       "authoring_policy": "generic_draft",
   3651       "discriminator": {
   3652         "type": "kind_only"
   3653       },
   3654       "tags": [
   3655         {
   3656           "name": "d",
   3657           "cardinality": "required_one",
   3658           "semantic": "identifier",
   3659           "value_type": "d_tag",
   3660           "relay_indexed": true
   3661         },
   3662         {
   3663           "name": "e",
   3664           "cardinality": "optional_many",
   3665           "semantic": "event_pointer",
   3666           "value_type": "event_id",
   3667           "relay_indexed": true
   3668         },
   3669         {
   3670           "name": "a",
   3671           "cardinality": "optional_one",
   3672           "semantic": "addressable_coordinate",
   3673           "value_type": "addressable_coordinate",
   3674           "relay_indexed": true
   3675         },
   3676         {
   3677           "name": "p",
   3678           "cardinality": "optional_many",
   3679           "semantic": "counterparty",
   3680           "value_type": "public_key",
   3681           "relay_indexed": true
   3682         }
   3683       ],
   3684       "reducers": [
   3685         "social_projection"
   3686       ]
   3687     },
   3688     {
   3689       "ordinal": 62,
   3690       "contract_id": "radroots.list_set.release_artifact.v1",
   3691       "kind": 30063,
   3692       "name": "Release Artifact Set",
   3693       "payload_type": "RadrootsListSet",
   3694       "class": "addressable",
   3695       "stability": "stable",
   3696       "privacy": "public",
   3697       "author_role": "any",
   3698       "content_schema": "json_object",
   3699       "authoring_policy": "generic_draft",
   3700       "discriminator": {
   3701         "type": "kind_only"
   3702       },
   3703       "tags": [
   3704         {
   3705           "name": "d",
   3706           "cardinality": "required_one",
   3707           "semantic": "identifier",
   3708           "value_type": "d_tag",
   3709           "relay_indexed": true
   3710         },
   3711         {
   3712           "name": "e",
   3713           "cardinality": "optional_many",
   3714           "semantic": "event_pointer",
   3715           "value_type": "event_id",
   3716           "relay_indexed": true
   3717         },
   3718         {
   3719           "name": "a",
   3720           "cardinality": "optional_one",
   3721           "semantic": "addressable_coordinate",
   3722           "value_type": "addressable_coordinate",
   3723           "relay_indexed": true
   3724         },
   3725         {
   3726           "name": "p",
   3727           "cardinality": "optional_many",
   3728           "semantic": "counterparty",
   3729           "value_type": "public_key",
   3730           "relay_indexed": true
   3731         }
   3732       ],
   3733       "reducers": [
   3734         "social_projection"
   3735       ]
   3736     },
   3737     {
   3738       "ordinal": 63,
   3739       "contract_id": "radroots.list_set.app_curation.v1",
   3740       "kind": 30267,
   3741       "name": "App Curation Set",
   3742       "payload_type": "RadrootsListSet",
   3743       "class": "addressable",
   3744       "stability": "stable",
   3745       "privacy": "public",
   3746       "author_role": "any",
   3747       "content_schema": "json_object",
   3748       "authoring_policy": "generic_draft",
   3749       "discriminator": {
   3750         "type": "kind_only"
   3751       },
   3752       "tags": [
   3753         {
   3754           "name": "d",
   3755           "cardinality": "required_one",
   3756           "semantic": "identifier",
   3757           "value_type": "d_tag",
   3758           "relay_indexed": true
   3759         },
   3760         {
   3761           "name": "e",
   3762           "cardinality": "optional_many",
   3763           "semantic": "event_pointer",
   3764           "value_type": "event_id",
   3765           "relay_indexed": true
   3766         },
   3767         {
   3768           "name": "a",
   3769           "cardinality": "optional_one",
   3770           "semantic": "addressable_coordinate",
   3771           "value_type": "addressable_coordinate",
   3772           "relay_indexed": true
   3773         },
   3774         {
   3775           "name": "p",
   3776           "cardinality": "optional_many",
   3777           "semantic": "counterparty",
   3778           "value_type": "public_key",
   3779           "relay_indexed": true
   3780         }
   3781       ],
   3782       "reducers": [
   3783         "social_projection"
   3784       ]
   3785     },
   3786     {
   3787       "ordinal": 64,
   3788       "contract_id": "radroots.social.article.v1",
   3789       "kind": 30023,
   3790       "name": "Long Form Article",
   3791       "payload_type": "RadrootsArticle",
   3792       "class": "addressable",
   3793       "stability": "stable",
   3794       "privacy": "public",
   3795       "author_role": "any",
   3796       "content_schema": "markdown",
   3797       "authoring_policy": "generic_draft",
   3798       "discriminator": {
   3799         "type": "kind_only"
   3800       },
   3801       "tags": [
   3802         {
   3803           "name": "d",
   3804           "cardinality": "required_one",
   3805           "semantic": "identifier",
   3806           "value_type": "d_tag",
   3807           "relay_indexed": true
   3808         },
   3809         {
   3810           "name": "title",
   3811           "cardinality": "optional_one",
   3812           "semantic": "title",
   3813           "value_type": "text",
   3814           "relay_indexed": false
   3815         },
   3816         {
   3817           "name": "summary",
   3818           "cardinality": "optional_one",
   3819           "semantic": "summary",
   3820           "value_type": "text",
   3821           "relay_indexed": false
   3822         },
   3823         {
   3824           "name": "published_at",
   3825           "cardinality": "optional_one",
   3826           "semantic": "published_at",
   3827           "value_type": "unix_timestamp",
   3828           "relay_indexed": false
   3829         }
   3830       ],
   3831       "reducers": [
   3832         "social_projection"
   3833       ]
   3834     },
   3835     {
   3836       "ordinal": 65,
   3837       "contract_id": "radroots.wiki.merge_request.v1",
   3838       "kind": 818,
   3839       "name": "Wiki Merge Request",
   3840       "payload_type": "RadrootsWikiMergeRequest",
   3841       "class": "regular",
   3842       "stability": "experimental",
   3843       "privacy": "public",
   3844       "author_role": "any",
   3845       "content_schema": "plain_text",
   3846       "authoring_policy": "generic_draft",
   3847       "discriminator": {
   3848         "type": "kind_only"
   3849       },
   3850       "tags": [
   3851         {
   3852           "name": "a",
   3853           "cardinality": "required_one",
   3854           "semantic": "addressable_coordinate",
   3855           "value_type": "addressable_coordinate",
   3856           "relay_indexed": true
   3857         },
   3858         {
   3859           "name": "p",
   3860           "cardinality": "required_one",
   3861           "semantic": "counterparty",
   3862           "value_type": "public_key",
   3863           "relay_indexed": true
   3864         },
   3865         {
   3866           "name": "e",
   3867           "cardinality": "required_one",
   3868           "semantic": "source",
   3869           "value_type": "event_id",
   3870           "relay_indexed": true
   3871         },
   3872         {
   3873           "name": "e",
   3874           "cardinality": "optional_one",
   3875           "semantic": "previous_event",
   3876           "value_type": "event_id",
   3877           "relay_indexed": true
   3878         }
   3879       ],
   3880       "reducers": [
   3881         "knowledge_projection"
   3882       ]
   3883     },
   3884     {
   3885       "ordinal": 66,
   3886       "contract_id": "radroots.wiki.article.v1",
   3887       "kind": 30818,
   3888       "name": "Wiki Article",
   3889       "payload_type": "RadrootsWikiArticle",
   3890       "class": "addressable",
   3891       "stability": "experimental",
   3892       "privacy": "public",
   3893       "author_role": "any",
   3894       "content_schema": "djot",
   3895       "authoring_policy": "generic_draft",
   3896       "discriminator": {
   3897         "type": "kind_only"
   3898       },
   3899       "tags": [
   3900         {
   3901           "name": "d",
   3902           "cardinality": "required_one",
   3903           "semantic": "identifier",
   3904           "value_type": "d_tag",
   3905           "relay_indexed": true
   3906         },
   3907         {
   3908           "name": "title",
   3909           "cardinality": "optional_one",
   3910           "semantic": "title",
   3911           "value_type": "text",
   3912           "relay_indexed": false
   3913         },
   3914         {
   3915           "name": "summary",
   3916           "cardinality": "optional_one",
   3917           "semantic": "summary",
   3918           "value_type": "text",
   3919           "relay_indexed": false
   3920         },
   3921         {
   3922           "name": "published_at",
   3923           "cardinality": "optional_one",
   3924           "semantic": "published_at",
   3925           "value_type": "unix_timestamp",
   3926           "relay_indexed": false
   3927         },
   3928         {
   3929           "name": "t",
   3930           "cardinality": "optional_many",
   3931           "semantic": "topic",
   3932           "value_type": "text",
   3933           "relay_indexed": true
   3934         },
   3935         {
   3936           "name": "source",
   3937           "cardinality": "optional_many",
   3938           "semantic": "source",
   3939           "value_type": "event_pointer",
   3940           "relay_indexed": false
   3941         },
   3942         {
   3943           "name": "a",
   3944           "cardinality": "optional_many",
   3945           "semantic": "addressable_coordinate",
   3946           "value_type": "addressable_coordinate",
   3947           "relay_indexed": true
   3948         },
   3949         {
   3950           "name": "e",
   3951           "cardinality": "optional_many",
   3952           "semantic": "event_pointer",
   3953           "value_type": "event_id",
   3954           "relay_indexed": true
   3955         }
   3956       ],
   3957       "reducers": [
   3958         "knowledge_projection"
   3959       ]
   3960     },
   3961     {
   3962       "ordinal": 67,
   3963       "contract_id": "radroots.wiki.redirect.v1",
   3964       "kind": 30819,
   3965       "name": "Wiki Redirect",
   3966       "payload_type": "RadrootsWikiRedirect",
   3967       "class": "addressable",
   3968       "stability": "experimental",
   3969       "privacy": "public",
   3970       "author_role": "any",
   3971       "content_schema": "empty",
   3972       "authoring_policy": "generic_draft",
   3973       "discriminator": {
   3974         "type": "kind_only"
   3975       },
   3976       "tags": [
   3977         {
   3978           "name": "d",
   3979           "cardinality": "required_one",
   3980           "semantic": "identifier",
   3981           "value_type": "d_tag",
   3982           "relay_indexed": true
   3983         },
   3984         {
   3985           "name": "a",
   3986           "cardinality": "required_one",
   3987           "semantic": "addressable_coordinate",
   3988           "value_type": "addressable_coordinate",
   3989           "relay_indexed": true
   3990         }
   3991       ],
   3992       "reducers": [
   3993         "knowledge_projection"
   3994       ]
   3995     },
   3996     {
   3997       "ordinal": 68,
   3998       "contract_id": "radroots.calendar.date_event.v1",
   3999       "kind": 31922,
   4000       "name": "Calendar Date Event",
   4001       "payload_type": "RadrootsAuthoredCalendarDateEvent / RadrootsParsedNip52CalendarDateEvent / RadrootsAdmittedCalendarDateEvent",
   4002       "class": "addressable",
   4003       "stability": "stable",
   4004       "privacy": "public",
   4005       "author_role": "any",
   4006       "content_schema": "plain_text",
   4007       "authoring_policy": "typed_only",
   4008       "discriminator": {
   4009         "type": "kind_only"
   4010       },
   4011       "tags": [
   4012         {
   4013           "name": "d",
   4014           "cardinality": "required_one",
   4015           "semantic": "identifier",
   4016           "value_type": "d_tag",
   4017           "relay_indexed": true
   4018         },
   4019         {
   4020           "name": "title",
   4021           "cardinality": "required_one",
   4022           "semantic": "title",
   4023           "value_type": "text",
   4024           "relay_indexed": false
   4025         },
   4026         {
   4027           "name": "name",
   4028           "cardinality": "optional_one",
   4029           "semantic": "title",
   4030           "value_type": "text",
   4031           "relay_indexed": false
   4032         },
   4033         {
   4034           "name": "start",
   4035           "cardinality": "required_one",
   4036           "semantic": "calendar_start",
   4037           "value_type": "calendar_date",
   4038           "relay_indexed": false
   4039         },
   4040         {
   4041           "name": "end",
   4042           "cardinality": "optional_one",
   4043           "semantic": "calendar_end",
   4044           "value_type": "calendar_date",
   4045           "relay_indexed": false
   4046         },
   4047         {
   4048           "name": "location",
   4049           "cardinality": "optional_many",
   4050           "semantic": "location",
   4051           "value_type": "text",
   4052           "relay_indexed": false
   4053         },
   4054         {
   4055           "name": "g",
   4056           "cardinality": "optional_one",
   4057           "semantic": "geohash",
   4058           "value_type": "geohash",
   4059           "relay_indexed": true
   4060         },
   4061         {
   4062           "name": "summary",
   4063           "cardinality": "optional_one",
   4064           "semantic": "summary",
   4065           "value_type": "text",
   4066           "relay_indexed": false
   4067         },
   4068         {
   4069           "name": "image",
   4070           "cardinality": "optional_one",
   4071           "semantic": "image",
   4072           "value_type": "url",
   4073           "relay_indexed": false
   4074         },
   4075         {
   4076           "name": "p",
   4077           "cardinality": "optional_many",
   4078           "semantic": "participant",
   4079           "value_type": "public_key",
   4080           "relay_indexed": true
   4081         },
   4082         {
   4083           "name": "t",
   4084           "cardinality": "optional_many",
   4085           "semantic": "topic",
   4086           "value_type": "text",
   4087           "relay_indexed": true
   4088         },
   4089         {
   4090           "name": "r",
   4091           "cardinality": "optional_many",
   4092           "semantic": "reference",
   4093           "value_type": "uri",
   4094           "relay_indexed": true
   4095         },
   4096         {
   4097           "name": "a",
   4098           "cardinality": "optional_many",
   4099           "semantic": "calendar_inclusion_request",
   4100           "value_type": "addressable_coordinate",
   4101           "relay_indexed": true
   4102         }
   4103       ],
   4104       "reducers": [
   4105         "calendar_projection"
   4106       ]
   4107     },
   4108     {
   4109       "ordinal": 69,
   4110       "contract_id": "radroots.calendar.time_event.v1",
   4111       "kind": 31923,
   4112       "name": "Calendar Time Event",
   4113       "payload_type": "RadrootsAuthoredCalendarTimeEvent / RadrootsParsedNip52CalendarTimeEvent / RadrootsAdmittedCalendarTimeEvent",
   4114       "class": "addressable",
   4115       "stability": "stable",
   4116       "privacy": "public",
   4117       "author_role": "any",
   4118       "content_schema": "plain_text",
   4119       "authoring_policy": "typed_only",
   4120       "discriminator": {
   4121         "type": "kind_only"
   4122       },
   4123       "tags": [
   4124         {
   4125           "name": "d",
   4126           "cardinality": "required_one",
   4127           "semantic": "identifier",
   4128           "value_type": "d_tag",
   4129           "relay_indexed": true
   4130         },
   4131         {
   4132           "name": "title",
   4133           "cardinality": "required_one",
   4134           "semantic": "title",
   4135           "value_type": "text",
   4136           "relay_indexed": false
   4137         },
   4138         {
   4139           "name": "name",
   4140           "cardinality": "optional_one",
   4141           "semantic": "title",
   4142           "value_type": "text",
   4143           "relay_indexed": false
   4144         },
   4145         {
   4146           "name": "start",
   4147           "cardinality": "required_one",
   4148           "semantic": "calendar_start",
   4149           "value_type": "unix_timestamp",
   4150           "relay_indexed": false
   4151         },
   4152         {
   4153           "name": "end",
   4154           "cardinality": "optional_one",
   4155           "semantic": "calendar_end",
   4156           "value_type": "unix_timestamp",
   4157           "relay_indexed": false
   4158         },
   4159         {
   4160           "name": "D",
   4161           "cardinality": "required_many",
   4162           "semantic": "utc_day_coverage",
   4163           "value_type": "utc_day_index",
   4164           "relay_indexed": true
   4165         },
   4166         {
   4167           "name": "start_tzid",
   4168           "cardinality": "optional_one",
   4169           "semantic": "time_zone",
   4170           "value_type": "iana_time_zone_id",
   4171           "relay_indexed": false
   4172         },
   4173         {
   4174           "name": "end_tzid",
   4175           "cardinality": "optional_one",
   4176           "semantic": "time_zone",
   4177           "value_type": "iana_time_zone_id",
   4178           "relay_indexed": false
   4179         },
   4180         {
   4181           "name": "location",
   4182           "cardinality": "optional_many",
   4183           "semantic": "location",
   4184           "value_type": "text",
   4185           "relay_indexed": false
   4186         },
   4187         {
   4188           "name": "g",
   4189           "cardinality": "optional_one",
   4190           "semantic": "geohash",
   4191           "value_type": "geohash",
   4192           "relay_indexed": true
   4193         },
   4194         {
   4195           "name": "summary",
   4196           "cardinality": "optional_one",
   4197           "semantic": "summary",
   4198           "value_type": "text",
   4199           "relay_indexed": false
   4200         },
   4201         {
   4202           "name": "image",
   4203           "cardinality": "optional_one",
   4204           "semantic": "image",
   4205           "value_type": "url",
   4206           "relay_indexed": false
   4207         },
   4208         {
   4209           "name": "p",
   4210           "cardinality": "optional_many",
   4211           "semantic": "participant",
   4212           "value_type": "public_key",
   4213           "relay_indexed": true
   4214         },
   4215         {
   4216           "name": "t",
   4217           "cardinality": "optional_many",
   4218           "semantic": "topic",
   4219           "value_type": "text",
   4220           "relay_indexed": true
   4221         },
   4222         {
   4223           "name": "r",
   4224           "cardinality": "optional_many",
   4225           "semantic": "reference",
   4226           "value_type": "uri",
   4227           "relay_indexed": true
   4228         },
   4229         {
   4230           "name": "a",
   4231           "cardinality": "optional_many",
   4232           "semantic": "calendar_inclusion_request",
   4233           "value_type": "addressable_coordinate",
   4234           "relay_indexed": true
   4235         }
   4236       ],
   4237       "reducers": [
   4238         "calendar_projection"
   4239       ]
   4240     },
   4241     {
   4242       "ordinal": 70,
   4243       "contract_id": "radroots.calendar.collection.v1",
   4244       "kind": 31924,
   4245       "name": "Calendar Collection",
   4246       "payload_type": "RadrootsAdmittedCalendar",
   4247       "class": "addressable",
   4248       "stability": "stable",
   4249       "privacy": "public",
   4250       "author_role": "any",
   4251       "content_schema": "plain_text",
   4252       "authoring_policy": "generic_draft",
   4253       "discriminator": {
   4254         "type": "kind_only"
   4255       },
   4256       "tags": [
   4257         {
   4258           "name": "d",
   4259           "cardinality": "required_one",
   4260           "semantic": "identifier",
   4261           "value_type": "calendar_uid",
   4262           "relay_indexed": true
   4263         },
   4264         {
   4265           "name": "title",
   4266           "cardinality": "required_one",
   4267           "semantic": "title",
   4268           "value_type": "text",
   4269           "relay_indexed": false
   4270         },
   4271         {
   4272           "name": "description",
   4273           "cardinality": "optional_one",
   4274           "semantic": "list_description",
   4275           "value_type": "text",
   4276           "relay_indexed": false
   4277         },
   4278         {
   4279           "name": "image",
   4280           "cardinality": "optional_one",
   4281           "semantic": "image",
   4282           "value_type": "url",
   4283           "relay_indexed": false
   4284         },
   4285         {
   4286           "name": "a",
   4287           "cardinality": "optional_many",
   4288           "semantic": "calendar_event_reference",
   4289           "value_type": "calendar_event_coordinate",
   4290           "relay_indexed": true
   4291         }
   4292       ],
   4293       "reducers": [
   4294         "calendar_projection"
   4295       ]
   4296     },
   4297     {
   4298       "ordinal": 71,
   4299       "contract_id": "radroots.calendar.rsvp.v1",
   4300       "kind": 31925,
   4301       "name": "Calendar RSVP",
   4302       "payload_type": "RadrootsAdmittedCalendarEventRsvp",
   4303       "class": "addressable",
   4304       "stability": "stable",
   4305       "privacy": "public",
   4306       "author_role": "any",
   4307       "content_schema": "plain_text",
   4308       "authoring_policy": "generic_draft",
   4309       "discriminator": {
   4310         "type": "kind_only"
   4311       },
   4312       "tags": [
   4313         {
   4314           "name": "d",
   4315           "cardinality": "required_one",
   4316           "semantic": "identifier",
   4317           "value_type": "calendar_uid",
   4318           "relay_indexed": true
   4319         },
   4320         {
   4321           "name": "a",
   4322           "cardinality": "required_one",
   4323           "semantic": "calendar_event_reference",
   4324           "value_type": "calendar_event_coordinate",
   4325           "relay_indexed": true
   4326         },
   4327         {
   4328           "name": "e",
   4329           "cardinality": "optional_one",
   4330           "semantic": "calendar_event_revision",
   4331           "value_type": "event_id",
   4332           "relay_indexed": true
   4333         },
   4334         {
   4335           "name": "status",
   4336           "cardinality": "required_one",
   4337           "semantic": "status",
   4338           "value_type": "calendar_rsvp_status",
   4339           "relay_indexed": false
   4340         },
   4341         {
   4342           "name": "fb",
   4343           "cardinality": "optional_one",
   4344           "semantic": "free_busy",
   4345           "value_type": "calendar_free_busy",
   4346           "relay_indexed": false
   4347         },
   4348         {
   4349           "name": "p",
   4350           "cardinality": "optional_one",
   4351           "semantic": "calendar_event_author",
   4352           "value_type": "public_key",
   4353           "relay_indexed": true
   4354         }
   4355       ],
   4356       "reducers": [
   4357         "calendar_projection"
   4358       ]
   4359     },
   4360     {
   4361       "ordinal": 72,
   4362       "contract_id": "radroots.list_set.starter_pack.v1",
   4363       "kind": 39089,
   4364       "name": "Starter Pack Set",
   4365       "payload_type": "RadrootsListSet",
   4366       "class": "addressable",
   4367       "stability": "stable",
   4368       "privacy": "public",
   4369       "author_role": "any",
   4370       "content_schema": "json_object",
   4371       "authoring_policy": "generic_draft",
   4372       "discriminator": {
   4373         "type": "kind_only"
   4374       },
   4375       "tags": [
   4376         {
   4377           "name": "d",
   4378           "cardinality": "required_one",
   4379           "semantic": "identifier",
   4380           "value_type": "d_tag",
   4381           "relay_indexed": true
   4382         },
   4383         {
   4384           "name": "e",
   4385           "cardinality": "optional_many",
   4386           "semantic": "event_pointer",
   4387           "value_type": "event_id",
   4388           "relay_indexed": true
   4389         },
   4390         {
   4391           "name": "a",
   4392           "cardinality": "optional_one",
   4393           "semantic": "addressable_coordinate",
   4394           "value_type": "addressable_coordinate",
   4395           "relay_indexed": true
   4396         },
   4397         {
   4398           "name": "p",
   4399           "cardinality": "optional_many",
   4400           "semantic": "counterparty",
   4401           "value_type": "public_key",
   4402           "relay_indexed": true
   4403         }
   4404       ],
   4405       "reducers": [
   4406         "social_projection"
   4407       ]
   4408     },
   4409     {
   4410       "ordinal": 73,
   4411       "contract_id": "radroots.list_set.media_starter_pack.v1",
   4412       "kind": 39092,
   4413       "name": "Media Starter Pack Set",
   4414       "payload_type": "RadrootsListSet",
   4415       "class": "addressable",
   4416       "stability": "stable",
   4417       "privacy": "public",
   4418       "author_role": "any",
   4419       "content_schema": "json_object",
   4420       "authoring_policy": "generic_draft",
   4421       "discriminator": {
   4422         "type": "kind_only"
   4423       },
   4424       "tags": [
   4425         {
   4426           "name": "d",
   4427           "cardinality": "required_one",
   4428           "semantic": "identifier",
   4429           "value_type": "d_tag",
   4430           "relay_indexed": true
   4431         },
   4432         {
   4433           "name": "e",
   4434           "cardinality": "optional_many",
   4435           "semantic": "event_pointer",
   4436           "value_type": "event_id",
   4437           "relay_indexed": true
   4438         },
   4439         {
   4440           "name": "a",
   4441           "cardinality": "optional_one",
   4442           "semantic": "addressable_coordinate",
   4443           "value_type": "addressable_coordinate",
   4444           "relay_indexed": true
   4445         },
   4446         {
   4447           "name": "p",
   4448           "cardinality": "optional_many",
   4449           "semantic": "counterparty",
   4450           "value_type": "public_key",
   4451           "relay_indexed": true
   4452         }
   4453       ],
   4454       "reducers": [
   4455         "social_projection"
   4456       ]
   4457     },
   4458     {
   4459       "ordinal": 74,
   4460       "contract_id": "radroots.farm.profile.v1",
   4461       "kind": 30340,
   4462       "name": "Farm",
   4463       "payload_type": "RadrootsFarm",
   4464       "class": "addressable",
   4465       "stability": "stable",
   4466       "privacy": "public",
   4467       "author_role": "farmer",
   4468       "content_schema": "json_object",
   4469       "authoring_policy": "generic_draft",
   4470       "discriminator": {
   4471         "type": "kind_only"
   4472       },
   4473       "tags": [
   4474         {
   4475           "name": "d",
   4476           "cardinality": "required_one",
   4477           "semantic": "identifier",
   4478           "value_type": "d_tag",
   4479           "relay_indexed": true
   4480         },
   4481         {
   4482           "name": "title",
   4483           "cardinality": "optional_one",
   4484           "semantic": "title",
   4485           "value_type": "text",
   4486           "relay_indexed": false
   4487         },
   4488         {
   4489           "name": "location",
   4490           "cardinality": "optional_many",
   4491           "semantic": "location",
   4492           "value_type": "text",
   4493           "relay_indexed": false
   4494         },
   4495         {
   4496           "name": "image",
   4497           "cardinality": "optional_many",
   4498           "semantic": "image",
   4499           "value_type": "url",
   4500           "relay_indexed": false
   4501         }
   4502       ],
   4503       "reducers": [
   4504         "farm_ops_projection"
   4505       ]
   4506     },
   4507     {
   4508       "ordinal": 75,
   4509       "contract_id": "radroots.farm.plot.v1",
   4510       "kind": 30350,
   4511       "name": "Plot",
   4512       "payload_type": "RadrootsPlot",
   4513       "class": "addressable",
   4514       "stability": "stable",
   4515       "privacy": "public",
   4516       "author_role": "farmer",
   4517       "content_schema": "json_object",
   4518       "authoring_policy": "generic_draft",
   4519       "discriminator": {
   4520         "type": "kind_only"
   4521       },
   4522       "tags": [
   4523         {
   4524           "name": "d",
   4525           "cardinality": "required_one",
   4526           "semantic": "identifier",
   4527           "value_type": "d_tag",
   4528           "relay_indexed": true
   4529         },
   4530         {
   4531           "name": "title",
   4532           "cardinality": "optional_one",
   4533           "semantic": "title",
   4534           "value_type": "text",
   4535           "relay_indexed": false
   4536         },
   4537         {
   4538           "name": "location",
   4539           "cardinality": "optional_many",
   4540           "semantic": "location",
   4541           "value_type": "text",
   4542           "relay_indexed": false
   4543         },
   4544         {
   4545           "name": "image",
   4546           "cardinality": "optional_many",
   4547           "semantic": "image",
   4548           "value_type": "url",
   4549           "relay_indexed": false
   4550         }
   4551       ],
   4552       "reducers": [
   4553         "farm_ops_projection"
   4554       ]
   4555     },
   4556     {
   4557       "ordinal": 76,
   4558       "contract_id": "radroots.farm.coop.v1",
   4559       "kind": 30360,
   4560       "name": "Coop",
   4561       "payload_type": "RadrootsCoop",
   4562       "class": "addressable",
   4563       "stability": "stable",
   4564       "privacy": "public",
   4565       "author_role": "farmer",
   4566       "content_schema": "json_object",
   4567       "authoring_policy": "generic_draft",
   4568       "discriminator": {
   4569         "type": "kind_only"
   4570       },
   4571       "tags": [
   4572         {
   4573           "name": "d",
   4574           "cardinality": "required_one",
   4575           "semantic": "identifier",
   4576           "value_type": "d_tag",
   4577           "relay_indexed": true
   4578         },
   4579         {
   4580           "name": "title",
   4581           "cardinality": "optional_one",
   4582           "semantic": "title",
   4583           "value_type": "text",
   4584           "relay_indexed": false
   4585         },
   4586         {
   4587           "name": "location",
   4588           "cardinality": "optional_many",
   4589           "semantic": "location",
   4590           "value_type": "text",
   4591           "relay_indexed": false
   4592         },
   4593         {
   4594           "name": "image",
   4595           "cardinality": "optional_many",
   4596           "semantic": "image",
   4597           "value_type": "url",
   4598           "relay_indexed": false
   4599         }
   4600       ],
   4601       "reducers": [
   4602         "farm_ops_projection"
   4603       ]
   4604     },
   4605     {
   4606       "ordinal": 77,
   4607       "contract_id": "radroots.farm.document.v1",
   4608       "kind": 30361,
   4609       "name": "Document",
   4610       "payload_type": "RadrootsDocument",
   4611       "class": "addressable",
   4612       "stability": "stable",
   4613       "privacy": "public",
   4614       "author_role": "farmer",
   4615       "content_schema": "json_object",
   4616       "authoring_policy": "generic_draft",
   4617       "discriminator": {
   4618         "type": "kind_only"
   4619       },
   4620       "tags": [
   4621         {
   4622           "name": "d",
   4623           "cardinality": "required_one",
   4624           "semantic": "identifier",
   4625           "value_type": "d_tag",
   4626           "relay_indexed": true
   4627         }
   4628       ],
   4629       "reducers": [
   4630         "farm_ops_projection"
   4631       ]
   4632     },
   4633     {
   4634       "ordinal": 78,
   4635       "contract_id": "radroots.farm.resource_area.v1",
   4636       "kind": 30370,
   4637       "name": "Resource Area",
   4638       "payload_type": "RadrootsResourceArea",
   4639       "class": "addressable",
   4640       "stability": "stable",
   4641       "privacy": "public",
   4642       "author_role": "farmer",
   4643       "content_schema": "json_object",
   4644       "authoring_policy": "generic_draft",
   4645       "discriminator": {
   4646         "type": "kind_only"
   4647       },
   4648       "tags": [
   4649         {
   4650           "name": "d",
   4651           "cardinality": "required_one",
   4652           "semantic": "identifier",
   4653           "value_type": "d_tag",
   4654           "relay_indexed": true
   4655         },
   4656         {
   4657           "name": "title",
   4658           "cardinality": "optional_one",
   4659           "semantic": "title",
   4660           "value_type": "text",
   4661           "relay_indexed": false
   4662         },
   4663         {
   4664           "name": "location",
   4665           "cardinality": "optional_many",
   4666           "semantic": "location",
   4667           "value_type": "text",
   4668           "relay_indexed": false
   4669         },
   4670         {
   4671           "name": "image",
   4672           "cardinality": "optional_many",
   4673           "semantic": "image",
   4674           "value_type": "url",
   4675           "relay_indexed": false
   4676         }
   4677       ],
   4678       "reducers": [
   4679         "farm_ops_projection"
   4680       ]
   4681     },
   4682     {
   4683       "ordinal": 79,
   4684       "contract_id": "radroots.farm.resource_harvest_cap.v1",
   4685       "kind": 30371,
   4686       "name": "Resource Harvest Capacity",
   4687       "payload_type": "RadrootsResourceHarvestCap",
   4688       "class": "addressable",
   4689       "stability": "stable",
   4690       "privacy": "public",
   4691       "author_role": "farmer",
   4692       "content_schema": "json_object",
   4693       "authoring_policy": "generic_draft",
   4694       "discriminator": {
   4695         "type": "kind_only"
   4696       },
   4697       "tags": [
   4698         {
   4699           "name": "d",
   4700           "cardinality": "required_one",
   4701           "semantic": "identifier",
   4702           "value_type": "d_tag",
   4703           "relay_indexed": true
   4704         },
   4705         {
   4706           "name": "title",
   4707           "cardinality": "optional_one",
   4708           "semantic": "title",
   4709           "value_type": "text",
   4710           "relay_indexed": false
   4711         },
   4712         {
   4713           "name": "location",
   4714           "cardinality": "optional_many",
   4715           "semantic": "location",
   4716           "value_type": "text",
   4717           "relay_indexed": false
   4718         },
   4719         {
   4720           "name": "image",
   4721           "cardinality": "optional_many",
   4722           "semantic": "image",
   4723           "value_type": "url",
   4724           "relay_indexed": false
   4725         }
   4726       ],
   4727       "reducers": [
   4728         "farm_ops_projection"
   4729       ]
   4730     },
   4731     {
   4732       "ordinal": 80,
   4733       "contract_id": "radroots.account.claim.v1",
   4734       "kind": 30380,
   4735       "name": "Account Claim",
   4736       "payload_type": "RadrootsAccountClaim",
   4737       "class": "addressable",
   4738       "stability": "stable",
   4739       "privacy": "public",
   4740       "author_role": "any",
   4741       "content_schema": "json_object",
   4742       "authoring_policy": "generic_draft",
   4743       "discriminator": {
   4744         "type": "kind_only"
   4745       },
   4746       "tags": [
   4747         {
   4748           "name": "d",
   4749           "cardinality": "required_one",
   4750           "semantic": "identifier",
   4751           "value_type": "d_tag",
   4752           "relay_indexed": true
   4753         }
   4754       ],
   4755       "reducers": [
   4756         "profile_projection"
   4757       ]
   4758     },
   4759     {
   4760       "ordinal": 81,
   4761       "contract_id": "radroots.farm.workspace_manifest.v1",
   4762       "kind": 30078,
   4763       "name": "Farm Workspace Manifest",
   4764       "payload_type": "RadrootsFarmWorkspaceManifest",
   4765       "class": "addressable",
   4766       "stability": "stable",
   4767       "privacy": "encrypted",
   4768       "author_role": "farmer",
   4769       "content_schema": "json_object",
   4770       "authoring_policy": "generic_draft",
   4771       "discriminator": {
   4772         "type": "kind_only"
   4773       },
   4774       "tags": [
   4775         {
   4776           "name": "d",
   4777           "cardinality": "required_one",
   4778           "semantic": "identifier",
   4779           "value_type": "d_tag",
   4780           "relay_indexed": true
   4781         }
   4782       ],
   4783       "reducers": [
   4784         "farm_ops_projection"
   4785       ]
   4786     },
   4787     {
   4788       "ordinal": 82,
   4789       "contract_id": "radroots.operational_listing.published.v1",
   4790       "kind": 30402,
   4791       "name": "Operational Listing",
   4792       "payload_type": "RadrootsOperationalListing",
   4793       "class": "addressable",
   4794       "stability": "stable",
   4795       "privacy": "public",
   4796       "author_role": "seller",
   4797       "content_schema": "markdown",
   4798       "authoring_policy": "generic_draft",
   4799       "discriminator": {
   4800         "type": "classified_listing_partition",
   4801         "value": "operational_listing"
   4802       },
   4803       "tags": [
   4804         {
   4805           "name": "d",
   4806           "cardinality": "required_one",
   4807           "semantic": "identifier",
   4808           "value_type": "d_tag",
   4809           "relay_indexed": true
   4810         },
   4811         {
   4812           "name": "p",
   4813           "cardinality": "required_one",
   4814           "semantic": "counterparty",
   4815           "value_type": "public_key",
   4816           "relay_indexed": true
   4817         },
   4818         {
   4819           "name": "a",
   4820           "cardinality": "required_one",
   4821           "semantic": "addressable_coordinate",
   4822           "value_type": "addressable_coordinate",
   4823           "relay_indexed": true
   4824         },
   4825         {
   4826           "name": "key",
   4827           "cardinality": "required_one",
   4828           "semantic": "category",
   4829           "value_type": "text",
   4830           "relay_indexed": false
   4831         },
   4832         {
   4833           "name": "title",
   4834           "cardinality": "required_one",
   4835           "semantic": "title",
   4836           "value_type": "text",
   4837           "relay_indexed": false
   4838         },
   4839         {
   4840           "name": "category",
   4841           "cardinality": "required_one",
   4842           "semantic": "category",
   4843           "value_type": "text",
   4844           "relay_indexed": false
   4845         },
   4846         {
   4847           "name": "summary",
   4848           "cardinality": "optional_one",
   4849           "semantic": "summary",
   4850           "value_type": "text",
   4851           "relay_indexed": false
   4852         },
   4853         {
   4854           "name": "published_at",
   4855           "cardinality": "optional_one",
   4856           "semantic": "published_at",
   4857           "value_type": "unix_timestamp",
   4858           "relay_indexed": false
   4859         },
   4860         {
   4861           "name": "process",
   4862           "cardinality": "optional_one",
   4863           "semantic": "category",
   4864           "value_type": "text",
   4865           "relay_indexed": false
   4866         },
   4867         {
   4868           "name": "lot",
   4869           "cardinality": "optional_one",
   4870           "semantic": "reference",
   4871           "value_type": "text",
   4872           "relay_indexed": false
   4873         },
   4874         {
   4875           "name": "profile",
   4876           "cardinality": "optional_one",
   4877           "semantic": "category",
   4878           "value_type": "text",
   4879           "relay_indexed": false
   4880         },
   4881         {
   4882           "name": "year",
   4883           "cardinality": "optional_one",
   4884           "semantic": "category",
   4885           "value_type": "text",
   4886           "relay_indexed": false
   4887         },
   4888         {
   4889           "name": "location",
   4890           "cardinality": "optional_many",
   4891           "semantic": "location",
   4892           "value_type": "text",
   4893           "relay_indexed": false
   4894         },
   4895         {
   4896           "name": "price",
   4897           "cardinality": "optional_many",
   4898           "semantic": "price",
   4899           "value_type": "text",
   4900           "relay_indexed": false
   4901         },
   4902         {
   4903           "name": "status",
   4904           "cardinality": "optional_one",
   4905           "semantic": "status",
   4906           "value_type": "text",
   4907           "relay_indexed": false
   4908         },
   4909         {
   4910           "name": "image",
   4911           "cardinality": "optional_many",
   4912           "semantic": "image",
   4913           "value_type": "url",
   4914           "relay_indexed": false
   4915         },
   4916         {
   4917           "name": "g",
   4918           "cardinality": "optional_one",
   4919           "semantic": "geohash",
   4920           "value_type": "geohash",
   4921           "relay_indexed": true
   4922         },
   4923         {
   4924           "name": "radroots:primary_bin",
   4925           "cardinality": "required_one",
   4926           "semantic": "operational_listing_snapshot",
   4927           "value_type": "text",
   4928           "relay_indexed": false
   4929         },
   4930         {
   4931           "name": "radroots:bin",
   4932           "cardinality": "required_many",
   4933           "semantic": "operational_listing_snapshot",
   4934           "value_type": "text",
   4935           "relay_indexed": false
   4936         },
   4937         {
   4938           "name": "radroots:price",
   4939           "cardinality": "required_many",
   4940           "semantic": "price",
   4941           "value_type": "text",
   4942           "relay_indexed": false
   4943         },
   4944         {
   4945           "name": "radroots:discount",
   4946           "cardinality": "optional_many",
   4947           "semantic": "price",
   4948           "value_type": "text",
   4949           "relay_indexed": false
   4950         },
   4951         {
   4952           "name": "radroots:resource_area",
   4953           "cardinality": "optional_one",
   4954           "semantic": "addressable_coordinate",
   4955           "value_type": "addressable_coordinate",
   4956           "relay_indexed": false
   4957         },
   4958         {
   4959           "name": "radroots:plot",
   4960           "cardinality": "optional_one",
   4961           "semantic": "addressable_coordinate",
   4962           "value_type": "addressable_coordinate",
   4963           "relay_indexed": false
   4964         },
   4965         {
   4966           "name": "inventory",
   4967           "cardinality": "optional_one",
   4968           "semantic": "operational_listing_snapshot",
   4969           "value_type": "text",
   4970           "relay_indexed": false
   4971         },
   4972         {
   4973           "name": "radroots:availability_start",
   4974           "cardinality": "optional_one",
   4975           "semantic": "status",
   4976           "value_type": "unix_timestamp",
   4977           "relay_indexed": false
   4978         },
   4979         {
   4980           "name": "expires_at",
   4981           "cardinality": "optional_one",
   4982           "semantic": "status",
   4983           "value_type": "unix_timestamp",
   4984           "relay_indexed": false
   4985         },
   4986         {
   4987           "name": "delivery",
   4988           "cardinality": "optional_one",
   4989           "semantic": "reference",
   4990           "value_type": "text",
   4991           "relay_indexed": false
   4992         }
   4993       ],
   4994       "reducers": [
   4995         "operational_listing_projection",
   4996         "market_projection",
   4997         "operational_listing_inventory_accounting"
   4998       ]
   4999     },
   5000     {
   5001       "ordinal": 83,
   5002       "contract_id": "radroots.food.availability.v1",
   5003       "kind": 30402,
   5004       "name": "Food Availability",
   5005       "payload_type": "RadrootsFoodAvailabilityDetails / RadrootsInboundFoodAvailabilityProjection",
   5006       "class": "addressable",
   5007       "stability": "stable",
   5008       "privacy": "public",
   5009       "author_role": "seller",
   5010       "content_schema": "markdown",
   5011       "authoring_policy": "typed_only",
   5012       "discriminator": {
   5013         "type": "admission_only"
   5014       },
   5015       "tags": [
   5016         {
   5017           "name": "d",
   5018           "cardinality": "required_one",
   5019           "semantic": "identifier",
   5020           "value_type": "d_tag",
   5021           "relay_indexed": true
   5022         },
   5023         {
   5024           "name": "title",
   5025           "cardinality": "required_one",
   5026           "semantic": "title",
   5027           "value_type": "text",
   5028           "relay_indexed": false
   5029         },
   5030         {
   5031           "name": "summary",
   5032           "cardinality": "required_one",
   5033           "semantic": "summary",
   5034           "value_type": "text",
   5035           "relay_indexed": false
   5036         },
   5037         {
   5038           "name": "published_at",
   5039           "cardinality": "required_one",
   5040           "semantic": "published_at",
   5041           "value_type": "unix_timestamp",
   5042           "relay_indexed": false
   5043         },
   5044         {
   5045           "name": "location",
   5046           "cardinality": "required_one",
   5047           "semantic": "location",
   5048           "value_type": "text",
   5049           "relay_indexed": false
   5050         },
   5051         {
   5052           "name": "price",
   5053           "cardinality": "required_one",
   5054           "semantic": "price",
   5055           "value_type": "text",
   5056           "relay_indexed": false
   5057         },
   5058         {
   5059           "name": "radroots:price_unit",
   5060           "cardinality": "required_one",
   5061           "semantic": "price",
   5062           "value_type": "text",
   5063           "relay_indexed": false
   5064         },
   5065         {
   5066           "name": "radroots:quantity",
   5067           "cardinality": "optional_one",
   5068           "semantic": "price",
   5069           "value_type": "text",
   5070           "relay_indexed": false
   5071         },
   5072         {
   5073           "name": "status",
   5074           "cardinality": "required_one",
   5075           "semantic": "status",
   5076           "value_type": "text",
   5077           "relay_indexed": false
   5078         },
   5079         {
   5080           "name": "image",
   5081           "cardinality": "optional_many",
   5082           "semantic": "image",
   5083           "value_type": "url",
   5084           "relay_indexed": false
   5085         }
   5086       ],
   5087       "reducers": [
   5088         "market_projection"
   5089       ]
   5090     },
   5091     {
   5092       "ordinal": 84,
   5093       "contract_id": "radroots.knowledge.source.v1",
   5094       "kind": 30450,
   5095       "name": "Knowledge Source",
   5096       "payload_type": "RadrootsKnowledgeSource",
   5097       "class": "addressable",
   5098       "stability": "experimental",
   5099       "privacy": "public",
   5100       "author_role": "any",
   5101       "content_schema": "json_object",
   5102       "authoring_policy": "generic_draft",
   5103       "discriminator": {
   5104         "type": "tag_equals",
   5105         "name": "contract",
   5106         "value": "radroots.knowledge.source.v1"
   5107       },
   5108       "tags": [
   5109         {
   5110           "name": "d",
   5111           "cardinality": "required_one",
   5112           "semantic": "identifier",
   5113           "value_type": "d_tag",
   5114           "relay_indexed": true
   5115         },
   5116         {
   5117           "name": "contract",
   5118           "cardinality": "required_one",
   5119           "semantic": "contract",
   5120           "value_type": "contract_id",
   5121           "relay_indexed": false
   5122         },
   5123         {
   5124           "name": "t",
   5125           "cardinality": "optional_many",
   5126           "semantic": "topic",
   5127           "value_type": "text",
   5128           "relay_indexed": true
   5129         },
   5130         {
   5131           "name": "source",
   5132           "cardinality": "optional_many",
   5133           "semantic": "source",
   5134           "value_type": "event_pointer",
   5135           "relay_indexed": false
   5136         }
   5137       ],
   5138       "reducers": [
   5139         "knowledge_projection"
   5140       ]
   5141     },
   5142     {
   5143       "ordinal": 85,
   5144       "contract_id": "radroots.knowledge.evidence_bounty.v1",
   5145       "kind": 30451,
   5146       "name": "Evidence Bounty",
   5147       "payload_type": "RadrootsEvidenceBounty",
   5148       "class": "addressable",
   5149       "stability": "experimental",
   5150       "privacy": "public",
   5151       "author_role": "any",
   5152       "content_schema": "json_object",
   5153       "authoring_policy": "generic_draft",
   5154       "discriminator": {
   5155         "type": "tag_equals",
   5156         "name": "contract",
   5157         "value": "radroots.knowledge.evidence_bounty.v1"
   5158       },
   5159       "tags": [
   5160         {
   5161           "name": "d",
   5162           "cardinality": "required_one",
   5163           "semantic": "identifier",
   5164           "value_type": "d_tag",
   5165           "relay_indexed": true
   5166         },
   5167         {
   5168           "name": "contract",
   5169           "cardinality": "required_one",
   5170           "semantic": "contract",
   5171           "value_type": "contract_id",
   5172           "relay_indexed": false
   5173         },
   5174         {
   5175           "name": "t",
   5176           "cardinality": "optional_many",
   5177           "semantic": "topic",
   5178           "value_type": "text",
   5179           "relay_indexed": true
   5180         },
   5181         {
   5182           "name": "evidence",
   5183           "cardinality": "optional_many",
   5184           "semantic": "evidence",
   5185           "value_type": "event_pointer",
   5186           "relay_indexed": false
   5187         }
   5188       ],
   5189       "reducers": [
   5190         "knowledge_projection"
   5191       ]
   5192     },
   5193     {
   5194       "ordinal": 86,
   5195       "contract_id": "radroots.knowledge.claim.v1",
   5196       "kind": 3460,
   5197       "name": "Knowledge Claim",
   5198       "payload_type": "RadrootsKnowledgeClaim",
   5199       "class": "regular",
   5200       "stability": "experimental",
   5201       "privacy": "public",
   5202       "author_role": "any",
   5203       "content_schema": "json_object",
   5204       "authoring_policy": "generic_draft",
   5205       "discriminator": {
   5206         "type": "tag_equals",
   5207         "name": "contract",
   5208         "value": "radroots.knowledge.claim.v1"
   5209       },
   5210       "tags": [
   5211         {
   5212           "name": "contract",
   5213           "cardinality": "required_one",
   5214           "semantic": "contract",
   5215           "value_type": "contract_id",
   5216           "relay_indexed": false
   5217         },
   5218         {
   5219           "name": "t",
   5220           "cardinality": "optional_many",
   5221           "semantic": "topic",
   5222           "value_type": "text",
   5223           "relay_indexed": true
   5224         },
   5225         {
   5226           "name": "source",
   5227           "cardinality": "optional_many",
   5228           "semantic": "source",
   5229           "value_type": "event_pointer",
   5230           "relay_indexed": false
   5231         },
   5232         {
   5233           "name": "citation",
   5234           "cardinality": "optional_many",
   5235           "semantic": "citation",
   5236           "value_type": "sha256",
   5237           "relay_indexed": false
   5238         }
   5239       ],
   5240       "reducers": [
   5241         "knowledge_projection"
   5242       ]
   5243     },
   5244     {
   5245       "ordinal": 87,
   5246       "contract_id": "radroots.knowledge.relation.v1",
   5247       "kind": 3461,
   5248       "name": "Knowledge Relation",
   5249       "payload_type": "RadrootsKnowledgeRelation",
   5250       "class": "regular",
   5251       "stability": "experimental",
   5252       "privacy": "public",
   5253       "author_role": "any",
   5254       "content_schema": "json_object",
   5255       "authoring_policy": "generic_draft",
   5256       "discriminator": {
   5257         "type": "tag_equals",
   5258         "name": "contract",
   5259         "value": "radroots.knowledge.relation.v1"
   5260       },
   5261       "tags": [
   5262         {
   5263           "name": "contract",
   5264           "cardinality": "required_one",
   5265           "semantic": "contract",
   5266           "value_type": "contract_id",
   5267           "relay_indexed": false
   5268         },
   5269         {
   5270           "name": "t",
   5271           "cardinality": "optional_many",
   5272           "semantic": "topic",
   5273           "value_type": "text",
   5274           "relay_indexed": true
   5275         },
   5276         {
   5277           "name": "source",
   5278           "cardinality": "optional_many",
   5279           "semantic": "source",
   5280           "value_type": "event_pointer",
   5281           "relay_indexed": false
   5282         }
   5283       ],
   5284       "reducers": [
   5285         "knowledge_projection"
   5286       ]
   5287     },
   5288     {
   5289       "ordinal": 88,
   5290       "contract_id": "radroots.knowledge.review.v1",
   5291       "kind": 3462,
   5292       "name": "Knowledge Review",
   5293       "payload_type": "RadrootsKnowledgeReview",
   5294       "class": "regular",
   5295       "stability": "experimental",
   5296       "privacy": "public",
   5297       "author_role": "any",
   5298       "content_schema": "json_object",
   5299       "authoring_policy": "generic_draft",
   5300       "discriminator": {
   5301         "type": "tag_equals",
   5302         "name": "contract",
   5303         "value": "radroots.knowledge.review.v1"
   5304       },
   5305       "tags": [
   5306         {
   5307           "name": "contract",
   5308           "cardinality": "required_one",
   5309           "semantic": "contract",
   5310           "value_type": "contract_id",
   5311           "relay_indexed": false
   5312         },
   5313         {
   5314           "name": "review_target",
   5315           "cardinality": "required_one",
   5316           "semantic": "review_target",
   5317           "value_type": "event_pointer",
   5318           "relay_indexed": false
   5319         },
   5320         {
   5321           "name": "evidence",
   5322           "cardinality": "optional_many",
   5323           "semantic": "evidence",
   5324           "value_type": "event_pointer",
   5325           "relay_indexed": false
   5326         }
   5327       ],
   5328       "reducers": [
   5329         "knowledge_projection"
   5330       ]
   5331     },
   5332     {
   5333       "ordinal": 89,
   5334       "contract_id": "radroots.knowledge.field_report.v1",
   5335       "kind": 3463,
   5336       "name": "Knowledge Field Report",
   5337       "payload_type": "RadrootsKnowledgeFieldReport",
   5338       "class": "regular",
   5339       "stability": "experimental",
   5340       "privacy": "public",
   5341       "author_role": "any",
   5342       "content_schema": "json_object",
   5343       "authoring_policy": "generic_draft",
   5344       "discriminator": {
   5345         "type": "tag_equals",
   5346         "name": "contract",
   5347         "value": "radroots.knowledge.field_report.v1"
   5348       },
   5349       "tags": [
   5350         {
   5351           "name": "contract",
   5352           "cardinality": "required_one",
   5353           "semantic": "contract",
   5354           "value_type": "contract_id",
   5355           "relay_indexed": false
   5356         },
   5357         {
   5358           "name": "t",
   5359           "cardinality": "optional_many",
   5360           "semantic": "topic",
   5361           "value_type": "text",
   5362           "relay_indexed": true
   5363         },
   5364         {
   5365           "name": "g",
   5366           "cardinality": "optional_one",
   5367           "semantic": "geohash",
   5368           "value_type": "geohash",
   5369           "relay_indexed": true
   5370         },
   5371         {
   5372           "name": "evidence",
   5373           "cardinality": "optional_many",
   5374           "semantic": "evidence",
   5375           "value_type": "event_pointer",
   5376           "relay_indexed": false
   5377         }
   5378       ],
   5379       "reducers": [
   5380         "knowledge_projection"
   5381       ]
   5382     },
   5383     {
   5384       "ordinal": 90,
   5385       "contract_id": "radroots.knowledge.change_proposal.v1",
   5386       "kind": 3464,
   5387       "name": "Knowledge Change Proposal",
   5388       "payload_type": "RadrootsKnowledgeChangeProposal",
   5389       "class": "regular",
   5390       "stability": "experimental",
   5391       "privacy": "public",
   5392       "author_role": "any",
   5393       "content_schema": "json_object",
   5394       "authoring_policy": "generic_draft",
   5395       "discriminator": {
   5396         "type": "tag_equals",
   5397         "name": "contract",
   5398         "value": "radroots.knowledge.change_proposal.v1"
   5399       },
   5400       "tags": [
   5401         {
   5402           "name": "contract",
   5403           "cardinality": "required_one",
   5404           "semantic": "contract",
   5405           "value_type": "contract_id",
   5406           "relay_indexed": false
   5407         },
   5408         {
   5409           "name": "evidence",
   5410           "cardinality": "optional_many",
   5411           "semantic": "evidence",
   5412           "value_type": "event_pointer",
   5413           "relay_indexed": false
   5414         }
   5415       ],
   5416       "reducers": [
   5417         "knowledge_projection"
   5418       ]
   5419     },
   5420     {
   5421       "ordinal": 91,
   5422       "contract_id": "radroots.knowledge.contribution_attestation.v1",
   5423       "kind": 3465,
   5424       "name": "Contribution Attestation",
   5425       "payload_type": "RadrootsContributionAttestation",
   5426       "class": "regular",
   5427       "stability": "experimental",
   5428       "privacy": "public",
   5429       "author_role": "any",
   5430       "content_schema": "json_object",
   5431       "authoring_policy": "generic_draft",
   5432       "discriminator": {
   5433         "type": "tag_equals",
   5434         "name": "contract",
   5435         "value": "radroots.knowledge.contribution_attestation.v1"
   5436       },
   5437       "tags": [
   5438         {
   5439           "name": "contract",
   5440           "cardinality": "required_one",
   5441           "semantic": "contract",
   5442           "value_type": "contract_id",
   5443           "relay_indexed": false
   5444         },
   5445         {
   5446           "name": "evidence",
   5447           "cardinality": "optional_many",
   5448           "semantic": "evidence",
   5449           "value_type": "event_pointer",
   5450           "relay_indexed": false
   5451         }
   5452       ],
   5453       "reducers": [
   5454         "knowledge_projection"
   5455       ]
   5456     },
   5457     {
   5458       "ordinal": 92,
   5459       "contract_id": "radroots.application.handler.v1",
   5460       "kind": 31990,
   5461       "name": "Application Handler",
   5462       "payload_type": "RadrootsApplicationHandler",
   5463       "class": "addressable",
   5464       "stability": "stable",
   5465       "privacy": "public",
   5466       "author_role": "application",
   5467       "content_schema": "json_object",
   5468       "authoring_policy": "generic_draft",
   5469       "discriminator": {
   5470         "type": "kind_only"
   5471       },
   5472       "tags": [
   5473         {
   5474           "name": "d",
   5475           "cardinality": "required_one",
   5476           "semantic": "identifier",
   5477           "value_type": "d_tag",
   5478           "relay_indexed": true
   5479         }
   5480       ],
   5481       "reducers": [
   5482         "social_projection"
   5483       ]
   5484     },
   5485     {
   5486       "ordinal": 93,
   5487       "contract_id": "radroots.group.metadata.v1",
   5488       "kind": 39000,
   5489       "name": "Group Metadata",
   5490       "payload_type": "RadrootsGroupMetadata",
   5491       "class": "addressable",
   5492       "stability": "stable",
   5493       "privacy": "public",
   5494       "author_role": "moderator",
   5495       "content_schema": "json_object",
   5496       "authoring_policy": "generic_draft",
   5497       "discriminator": {
   5498         "type": "kind_only"
   5499       },
   5500       "tags": [
   5501         {
   5502           "name": "d",
   5503           "cardinality": "required_one",
   5504           "semantic": "identifier",
   5505           "value_type": "d_tag",
   5506           "relay_indexed": true
   5507         },
   5508         {
   5509           "name": "p",
   5510           "cardinality": "optional_many",
   5511           "semantic": "counterparty",
   5512           "value_type": "public_key",
   5513           "relay_indexed": true
   5514         },
   5515         {
   5516           "name": "e",
   5517           "cardinality": "optional_many",
   5518           "semantic": "event_pointer",
   5519           "value_type": "event_id",
   5520           "relay_indexed": true
   5521         }
   5522       ],
   5523       "reducers": [
   5524         "group_projection"
   5525       ]
   5526     },
   5527     {
   5528       "ordinal": 94,
   5529       "contract_id": "radroots.group.admins.v1",
   5530       "kind": 39001,
   5531       "name": "Group Admins",
   5532       "payload_type": "RadrootsGroupAdmins",
   5533       "class": "addressable",
   5534       "stability": "stable",
   5535       "privacy": "public",
   5536       "author_role": "moderator",
   5537       "content_schema": "json_object",
   5538       "authoring_policy": "generic_draft",
   5539       "discriminator": {
   5540         "type": "kind_only"
   5541       },
   5542       "tags": [
   5543         {
   5544           "name": "d",
   5545           "cardinality": "required_one",
   5546           "semantic": "identifier",
   5547           "value_type": "d_tag",
   5548           "relay_indexed": true
   5549         },
   5550         {
   5551           "name": "p",
   5552           "cardinality": "optional_many",
   5553           "semantic": "counterparty",
   5554           "value_type": "public_key",
   5555           "relay_indexed": true
   5556         },
   5557         {
   5558           "name": "e",
   5559           "cardinality": "optional_many",
   5560           "semantic": "event_pointer",
   5561           "value_type": "event_id",
   5562           "relay_indexed": true
   5563         }
   5564       ],
   5565       "reducers": [
   5566         "group_projection"
   5567       ]
   5568     },
   5569     {
   5570       "ordinal": 95,
   5571       "contract_id": "radroots.group.members.v1",
   5572       "kind": 39002,
   5573       "name": "Group Members",
   5574       "payload_type": "RadrootsGroupMembers",
   5575       "class": "addressable",
   5576       "stability": "stable",
   5577       "privacy": "public",
   5578       "author_role": "moderator",
   5579       "content_schema": "json_object",
   5580       "authoring_policy": "generic_draft",
   5581       "discriminator": {
   5582         "type": "kind_only"
   5583       },
   5584       "tags": [
   5585         {
   5586           "name": "d",
   5587           "cardinality": "required_one",
   5588           "semantic": "identifier",
   5589           "value_type": "d_tag",
   5590           "relay_indexed": true
   5591         },
   5592         {
   5593           "name": "p",
   5594           "cardinality": "optional_many",
   5595           "semantic": "counterparty",
   5596           "value_type": "public_key",
   5597           "relay_indexed": true
   5598         },
   5599         {
   5600           "name": "e",
   5601           "cardinality": "optional_many",
   5602           "semantic": "event_pointer",
   5603           "value_type": "event_id",
   5604           "relay_indexed": true
   5605         }
   5606       ],
   5607       "reducers": [
   5608         "group_projection"
   5609       ]
   5610     },
   5611     {
   5612       "ordinal": 96,
   5613       "contract_id": "radroots.group.roles.v1",
   5614       "kind": 39003,
   5615       "name": "Group Roles",
   5616       "payload_type": "RadrootsGroupRoles",
   5617       "class": "addressable",
   5618       "stability": "stable",
   5619       "privacy": "public",
   5620       "author_role": "moderator",
   5621       "content_schema": "json_object",
   5622       "authoring_policy": "generic_draft",
   5623       "discriminator": {
   5624         "type": "kind_only"
   5625       },
   5626       "tags": [
   5627         {
   5628           "name": "d",
   5629           "cardinality": "required_one",
   5630           "semantic": "identifier",
   5631           "value_type": "d_tag",
   5632           "relay_indexed": true
   5633         },
   5634         {
   5635           "name": "p",
   5636           "cardinality": "optional_many",
   5637           "semantic": "counterparty",
   5638           "value_type": "public_key",
   5639           "relay_indexed": true
   5640         },
   5641         {
   5642           "name": "e",
   5643           "cardinality": "optional_many",
   5644           "semantic": "event_pointer",
   5645           "value_type": "event_id",
   5646           "relay_indexed": true
   5647         }
   5648       ],
   5649       "reducers": [
   5650         "group_projection"
   5651       ]
   5652     },
   5653     {
   5654       "ordinal": 97,
   5655       "contract_id": "radroots.trade.proposal.v1",
   5656       "kind": 3470,
   5657       "name": "Trade Proposal",
   5658       "payload_type": "RadrootsTradeMutationEnvelopeV1",
   5659       "class": "regular",
   5660       "stability": "stable",
   5661       "privacy": "public",
   5662       "author_role": "buyer",
   5663       "content_schema": "json_object",
   5664       "authoring_policy": "typed_only",
   5665       "discriminator": {
   5666         "type": "content_json_field_equals",
   5667         "field": "contract_id",
   5668         "value": "radroots.trade.proposal.v1"
   5669       },
   5670       "tags": [
   5671         {
   5672           "name": "contract",
   5673           "cardinality": "required_one",
   5674           "semantic": "contract",
   5675           "value_type": "contract_id",
   5676           "relay_indexed": false
   5677         },
   5678         {
   5679           "name": "d",
   5680           "cardinality": "required_one",
   5681           "semantic": "identifier",
   5682           "value_type": "d_tag",
   5683           "relay_indexed": true
   5684         },
   5685         {
   5686           "name": "x",
   5687           "cardinality": "required_many",
   5688           "semantic": "trade_mutation",
   5689           "value_type": "mutation_id",
   5690           "relay_indexed": true
   5691         },
   5692         {
   5693           "name": "p",
   5694           "cardinality": "required_many",
   5695           "semantic": "participant",
   5696           "value_type": "public_key",
   5697           "relay_indexed": true
   5698         }
   5699       ],
   5700       "reducers": [
   5701         "trade_projection",
   5702         "operational_listing_inventory_accounting"
   5703       ]
   5704     },
   5705     {
   5706       "ordinal": 98,
   5707       "contract_id": "radroots.trade.decision.v1",
   5708       "kind": 3471,
   5709       "name": "Trade Decision",
   5710       "payload_type": "RadrootsTradeMutationEnvelopeV1",
   5711       "class": "regular",
   5712       "stability": "stable",
   5713       "privacy": "public",
   5714       "author_role": "seller",
   5715       "content_schema": "json_object",
   5716       "authoring_policy": "typed_only",
   5717       "discriminator": {
   5718         "type": "content_json_field_equals",
   5719         "field": "contract_id",
   5720         "value": "radroots.trade.decision.v1"
   5721       },
   5722       "tags": [
   5723         {
   5724           "name": "contract",
   5725           "cardinality": "required_one",
   5726           "semantic": "contract",
   5727           "value_type": "contract_id",
   5728           "relay_indexed": false
   5729         },
   5730         {
   5731           "name": "d",
   5732           "cardinality": "required_one",
   5733           "semantic": "identifier",
   5734           "value_type": "d_tag",
   5735           "relay_indexed": true
   5736         },
   5737         {
   5738           "name": "x",
   5739           "cardinality": "required_many",
   5740           "semantic": "trade_mutation",
   5741           "value_type": "mutation_id",
   5742           "relay_indexed": true
   5743         },
   5744         {
   5745           "name": "p",
   5746           "cardinality": "required_many",
   5747           "semantic": "participant",
   5748           "value_type": "public_key",
   5749           "relay_indexed": true
   5750         }
   5751       ],
   5752       "reducers": [
   5753         "trade_projection",
   5754         "operational_listing_inventory_accounting"
   5755       ]
   5756     },
   5757     {
   5758       "ordinal": 99,
   5759       "contract_id": "radroots.trade.revision_proposal.v1",
   5760       "kind": 3472,
   5761       "name": "Trade Revision Proposal",
   5762       "payload_type": "RadrootsTradeMutationEnvelopeV1",
   5763       "class": "regular",
   5764       "stability": "stable",
   5765       "privacy": "public",
   5766       "author_role": "any",
   5767       "content_schema": "json_object",
   5768       "authoring_policy": "typed_only",
   5769       "discriminator": {
   5770         "type": "content_json_field_equals",
   5771         "field": "contract_id",
   5772         "value": "radroots.trade.revision_proposal.v1"
   5773       },
   5774       "tags": [
   5775         {
   5776           "name": "contract",
   5777           "cardinality": "required_one",
   5778           "semantic": "contract",
   5779           "value_type": "contract_id",
   5780           "relay_indexed": false
   5781         },
   5782         {
   5783           "name": "d",
   5784           "cardinality": "required_one",
   5785           "semantic": "identifier",
   5786           "value_type": "d_tag",
   5787           "relay_indexed": true
   5788         },
   5789         {
   5790           "name": "x",
   5791           "cardinality": "required_many",
   5792           "semantic": "trade_mutation",
   5793           "value_type": "mutation_id",
   5794           "relay_indexed": true
   5795         },
   5796         {
   5797           "name": "p",
   5798           "cardinality": "required_many",
   5799           "semantic": "participant",
   5800           "value_type": "public_key",
   5801           "relay_indexed": true
   5802         }
   5803       ],
   5804       "reducers": [
   5805         "trade_projection",
   5806         "operational_listing_inventory_accounting"
   5807       ]
   5808     },
   5809     {
   5810       "ordinal": 100,
   5811       "contract_id": "radroots.trade.revision_decision.v1",
   5812       "kind": 3473,
   5813       "name": "Trade Revision Decision",
   5814       "payload_type": "RadrootsTradeMutationEnvelopeV1",
   5815       "class": "regular",
   5816       "stability": "stable",
   5817       "privacy": "public",
   5818       "author_role": "any",
   5819       "content_schema": "json_object",
   5820       "authoring_policy": "typed_only",
   5821       "discriminator": {
   5822         "type": "content_json_field_equals",
   5823         "field": "contract_id",
   5824         "value": "radroots.trade.revision_decision.v1"
   5825       },
   5826       "tags": [
   5827         {
   5828           "name": "contract",
   5829           "cardinality": "required_one",
   5830           "semantic": "contract",
   5831           "value_type": "contract_id",
   5832           "relay_indexed": false
   5833         },
   5834         {
   5835           "name": "d",
   5836           "cardinality": "required_one",
   5837           "semantic": "identifier",
   5838           "value_type": "d_tag",
   5839           "relay_indexed": true
   5840         },
   5841         {
   5842           "name": "x",
   5843           "cardinality": "required_many",
   5844           "semantic": "trade_mutation",
   5845           "value_type": "mutation_id",
   5846           "relay_indexed": true
   5847         },
   5848         {
   5849           "name": "p",
   5850           "cardinality": "required_many",
   5851           "semantic": "participant",
   5852           "value_type": "public_key",
   5853           "relay_indexed": true
   5854         }
   5855       ],
   5856       "reducers": [
   5857         "trade_projection",
   5858         "operational_listing_inventory_accounting"
   5859       ]
   5860     },
   5861     {
   5862       "ordinal": 101,
   5863       "contract_id": "radroots.trade.cancellation.v1",
   5864       "kind": 3474,
   5865       "name": "Trade Cancellation",
   5866       "payload_type": "RadrootsTradeMutationEnvelopeV1",
   5867       "class": "regular",
   5868       "stability": "stable",
   5869       "privacy": "public",
   5870       "author_role": "buyer",
   5871       "content_schema": "json_object",
   5872       "authoring_policy": "typed_only",
   5873       "discriminator": {
   5874         "type": "content_json_field_equals",
   5875         "field": "contract_id",
   5876         "value": "radroots.trade.cancellation.v1"
   5877       },
   5878       "tags": [
   5879         {
   5880           "name": "contract",
   5881           "cardinality": "required_one",
   5882           "semantic": "contract",
   5883           "value_type": "contract_id",
   5884           "relay_indexed": false
   5885         },
   5886         {
   5887           "name": "d",
   5888           "cardinality": "required_one",
   5889           "semantic": "identifier",
   5890           "value_type": "d_tag",
   5891           "relay_indexed": true
   5892         },
   5893         {
   5894           "name": "x",
   5895           "cardinality": "required_many",
   5896           "semantic": "trade_mutation",
   5897           "value_type": "mutation_id",
   5898           "relay_indexed": true
   5899         },
   5900         {
   5901           "name": "p",
   5902           "cardinality": "required_many",
   5903           "semantic": "participant",
   5904           "value_type": "public_key",
   5905           "relay_indexed": true
   5906         }
   5907       ],
   5908       "reducers": [
   5909         "trade_projection",
   5910         "operational_listing_inventory_accounting"
   5911       ]
   5912     },
   5913     {
   5914       "ordinal": 102,
   5915       "contract_id": "radroots.rhi.evidence_attestation.v1",
   5916       "kind": 3441,
   5917       "name": "RHI Evidence Attestation",
   5918       "payload_type": "RadrootsRhiEvidenceAttestationV1",
   5919       "class": "regular",
   5920       "stability": "stable",
   5921       "privacy": "public",
   5922       "author_role": "service",
   5923       "content_schema": "json_object",
   5924       "authoring_policy": "typed_only",
   5925       "discriminator": {
   5926         "type": "kind_only"
   5927       },
   5928       "tags": [
   5929         {
   5930           "name": "contract",
   5931           "cardinality": "required_one",
   5932           "semantic": "contract",
   5933           "value_type": "contract_id",
   5934           "relay_indexed": false
   5935         },
   5936         {
   5937           "name": "d",
   5938           "cardinality": "required_one",
   5939           "semantic": "identifier",
   5940           "value_type": "d_tag",
   5941           "relay_indexed": true
   5942         },
   5943         {
   5944           "name": "x",
   5945           "cardinality": "required_many",
   5946           "semantic": "reference",
   5947           "value_type": "sha256",
   5948           "relay_indexed": true
   5949         },
   5950         {
   5951           "name": "t",
   5952           "cardinality": "required_one",
   5953           "semantic": "status",
   5954           "value_type": "text",
   5955           "relay_indexed": true
   5956         },
   5957         {
   5958           "name": "e",
   5959           "cardinality": "optional_one",
   5960           "semantic": "previous_event",
   5961           "value_type": "event_id",
   5962           "relay_indexed": true
   5963         }
   5964       ],
   5965       "reducers": [
   5966         "trade_validation"
   5967       ]
   5968     }
   5969   ]
   5970 }