lib

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

operations.toml (61600B)


      1 [contract]
      2 name = "radroots_core_contract"
      3 version = "1.0.0-alpha.1"
      4 source = "rust"
      5 
      6 [public]
      7 domains = [
      8   "blossom",
      9   "event",
     10   "food_availability",
     11   "profile",
     12   "farm",
     13   "operational_listing",
     14   "trade",
     15   "social",
     16   "knowledge",
     17 ]
     18 
     19 [shared_types]
     20 public = [
     21   "Sha256",
     22   "FileExtension",
     23   "HashPath",
     24   "BlobUrl",
     25   "ApprovedBlobUrl",
     26   "MediaType",
     27   "BlobDescriptor",
     28   "ApprovedDescriptor",
     29   "ByteCommitment",
     30   "ByteVerifiedDescriptor",
     31   "AuthorizationAction",
     32   "AuthorizationContent",
     33   "ServerDomain",
     34   "AuthorizationTarget",
     35   "ServerScopeRequirement",
     36   "AuthorizationValidation",
     37   "AuthorizationClaim",
     38   "ValidatedAuthorizationClaim",
     39   "AuthorizationWireParts",
     40   "AuthoredUploadClaim",
     41   "RadrootsNostrSignedBlossomAuthorization",
     42   "RadrootsNostrBlossomAuthorizationHeader",
     43   "RadrootsNostrVerifiedBlossomAuthorization",
     44   "Nip01EventWireParts",
     45   "GenericEventDraft",
     46   "AuthoredEventPlan",
     47   "SignedEvent",
     48   "EventEnvelope",
     49   "RadrootsIdVerifiedEvent",
     50   "RadrootsSignatureVerifiedEvent",
     51   "RadrootsNip01VerificationError",
     52   "RadrootsContractValidatedEvent",
     53   "RadrootsAdmittedEvent",
     54   "RadrootsEventAdmissionError",
     55   "EventHeadCoordinate",
     56   "EventHeadCandidate",
     57   "CurrentEventHead",
     58   "EventHeadDecision",
     59   "EventRef",
     60   "EventPtr",
     61   "ClassifiedListingAddress",
     62   "ClassifiedListingPartition",
     63   "AuthoredImage",
     64   "AuthoredImageError",
     65   "FoodAvailabilityError",
     66   "FoodContent",
     67   "FoodIdentifier",
     68   "FoodText",
     69   "FoodPublishedAt",
     70   "FoodCurrency",
     71   "FoodUnit",
     72   "FoodPrice",
     73   "FoodQuantity",
     74   "FoodAvailabilityStatus",
     75   "FoodImageDimensions",
     76   "FoodAvailabilityImage",
     77   "FoodAvailabilityDetailsParts",
     78   "FoodAvailabilityDetails",
     79   "RadrootsFoodAvailabilityEncodeError",
     80   "RadrootsFoodAvailabilityImageDiagnostic",
     81   "RadrootsInboundFoodAvailabilityImage",
     82   "RadrootsInboundFoodAvailabilityProjection",
     83   "RadrootsFoodAvailabilityProjectionOutcome",
     84   "RadrootsFoodAvailabilityProjectionError",
     85   "RadrootsAdmittedFoodAvailabilityEvent",
     86   "RadrootsExcludedClassifiedListingCandidate",
     87   "RadrootsFoodAvailabilityAdmissionOutcome",
     88   "RadrootsFoodAvailabilityAdmissionError",
     89   "RadrootsFoodAvailabilityRevisionError",
     90   "Nip05Identifier",
     91   "Nip05IdentifierError",
     92   "AuthoredProfile",
     93   "AuthoredProfileError",
     94   "RadrootsAuthoredProfileEncodeError",
     95   "RadrootsInboundProfileMetadata",
     96   "RadrootsProfileMetadataParseError",
     97   "RadrootsAdmittedProfileEvent",
     98   "RadrootsProfileAdmissionError",
     99   "RadrootsNip05IdentityVerification",
    100   "RadrootsUnverifiedProfileMediaReference",
    101   "Farm",
    102   "OperationalListing",
    103   "Post",
    104   "AuthoredPostError",
    105   "PostImageDimensions",
    106   "AuthoredPostImage",
    107   "AuthoredUpdate",
    108   "AuthoredPhotoUpdate",
    109   "AuthoredAsk",
    110   "Nip10ReplyError",
    111   "NostrRelayHint",
    112   "Nip10ReplyReference",
    113   "AuthoredNip10Reply",
    114   "RadrootsPostDiagnostic",
    115   "RadrootsPostClassification",
    116   "RadrootsInboundPostImeta",
    117   "RadrootsInboundPostProjection",
    118   "RadrootsPostProjectionError",
    119   "RadrootsAdmittedRootPostEvent",
    120   "RadrootsThreadExcludedPostCandidate",
    121   "RadrootsPostAdmissionOutcome",
    122   "RadrootsPostAdmissionError",
    123   "RadrootsNip10ReplyStyle",
    124   "RadrootsNip10ReplyDiagnostic",
    125   "RadrootsInboundNip10EventReference",
    126   "RadrootsInboundNip10Participant",
    127   "RadrootsInboundNip10ReplyProjection",
    128   "RadrootsNip10ReplyProjectionError",
    129   "RadrootsAdmittedNip10ReplyEvent",
    130   "RadrootsNip10ReplyAdmissionError",
    131   "Nip22CommentError",
    132   "Nip22CommentRootKind",
    133   "Nip22EventRootReference",
    134   "Nip22AddressRootReference",
    135   "Nip22CommentParentReference",
    136   "Nip22CommentRoot",
    137   "Nip22CommentPosition",
    138   "AuthoredNip22Comment",
    139   "RadrootsNip22CommentDiagnostic",
    140   "RadrootsInboundNip22Participant",
    141   "RadrootsInboundNip22EventRoot",
    142   "RadrootsInboundNip22AddressRoot",
    143   "RadrootsInboundNip22CommentRoot",
    144   "RadrootsInboundNip22CommentParent",
    145   "RadrootsInboundNip22CurrentRevision",
    146   "RadrootsInboundNip22TopLevelEventReference",
    147   "RadrootsInboundNip22TopLevelAddressReference",
    148   "RadrootsInboundNip22CommentPosition",
    149   "RadrootsInboundNip22CommentProjection",
    150   "RadrootsNip22CommentProjectionError",
    151   "RadrootsAdmittedNip22CommentEvent",
    152   "RadrootsNip22CommentAdmissionError",
    153   "Nip01Coordinate",
    154   "Nip01CoordinateParts",
    155   "Nip01CoordinateParseError",
    156   "Nip09DeletionError",
    157   "Nip09DeletionEventTarget",
    158   "Nip09DeletionAddressTarget",
    159   "AuthoredNip09DeletionRequest",
    160   "RadrootsNip09DeletionDiagnostic",
    161   "RadrootsInboundNip09DeletionEventTarget",
    162   "RadrootsInboundNip09DeletionAddressTarget",
    163   "RadrootsInboundNip09DeletionKindAdvisory",
    164   "RadrootsInboundNip09DeletionProjection",
    165   "RadrootsNip09DeletionProjectionError",
    166   "RadrootsAdmittedNip09DeletionRequestEvent",
    167   "RadrootsNip09DeletionAdmissionError",
    168   "RadrootsNip09SuppressionOutcome",
    169   "RadrootsNip09SuppressionReason",
    170   "RadrootsNip09EventReferenceEvidence",
    171   "RadrootsNip09AddressReferenceEvidence",
    172   "RadrootsNip09SuppressionDecision",
    173   "Reaction",
    174   "Article",
    175   "FileMetadata",
    176   "IanaTimeZoneId",
    177   "CalendarUri",
    178   "CalendarRequest",
    179   "CalendarParticipant",
    180   "CalendarEventError",
    181   "CalendarDate",
    182   "AuthoredCalendarDateEvent",
    183   "AuthoredCalendarTimeEvent",
    184   "ParsedNip52CalendarCommon",
    185   "ParsedNip52CalendarCommonParts",
    186   "ParsedNip52CalendarDateEvent",
    187   "ObservedUtcDay",
    188   "ParsedNip52CalendarTimeEvent",
    189   "CalendarAdmissionError",
    190   "AdmittedCalendarDateEvent",
    191   "AdmittedCalendarTimeEvent",
    192   "CalendarUid",
    193   "CalendarEventReference",
    194   "CalendarEventRevisionReference",
    195   "CalendarEventAuthorReference",
    196   "AuthoredCalendar",
    197   "ParsedNip52CalendarParts",
    198   "ParsedNip52Calendar",
    199   "AdmittedCalendar",
    200   "CalendarEventRsvpStatus",
    201   "CalendarEventFreeBusy",
    202   "AuthoredCalendarEventRsvp",
    203   "ParsedNip52CalendarEventRsvpParts",
    204   "ParsedNip52CalendarEventRsvp",
    205   "AdmittedCalendarEventRsvp",
    206   "TradeId",
    207   "TradeCandidateId",
    208   "TradeMutationId",
    209   "TradeMutationKindV1",
    210   "TradeMutationEnvelopeV1",
    211   "TradeMutationBodyV1",
    212   "TradeCandidateTermsV1",
    213   "TradeCandidateLineV1",
    214   "TradeLineTombstoneV1",
    215   "TradeEconomicsProfileV1",
    216   "TradeEconomicAdjustmentV1",
    217   "FulfillmentProfileV1",
    218   "TradeCancellationProfileV1",
    219   "TradePrivateTermsRefV1",
    220   "SellerReservationAssertionV1",
    221   "SellerReservationLineV1",
    222   "TradeDecisionV1",
    223   "TradeCanonicalMutationV1",
    224   "RadrootsTradeReductionInputV1",
    225   "RadrootsTradeMutationRecordV1",
    226   "RadrootsTradePrivateTermsEvidenceV1",
    227   "RadrootsTradeAttestationResultV1",
    228   "RadrootsTradeAttestationRecordV1",
    229   "RadrootsTradeProjectionV1",
    230   "RadrootsTradeAgreementClaimV1",
    231   "RadrootsTradeReducerIssueV1",
    232   "RadrootsTradeNegotiationStateV1",
    233   "RadrootsTradeAgreementStateV1",
    234   "RadrootsTradeEvidenceStateV1",
    235   "RadrootsTradeConflictStateV1",
    236   "RadrootsTradePrivateTermsStateV1",
    237   "RadrootsTradeAttestationStateV1",
    238   "RadrootsTradeFulfillmentStateV1",
    239   "RadrootsTradePaymentStateV1",
    240   "WikiArticle",
    241   "WikiRedirect",
    242   "WikiMergeRequest",
    243   "KnowledgeSource",
    244   "KnowledgeClaim",
    245   "KnowledgeRelation",
    246   "KnowledgeReview",
    247   "KnowledgeFieldReport",
    248   "EvidenceBounty",
    249   "KnowledgeChangeProposal",
    250   "ContributionAttestation",
    251   "RadrootsKnowledgeContractManifest",
    252   "RadrootsDecodedEvent",
    253 ]
    254 
    255 [errors]
    256 classes = [
    257   "encode_error",
    258   "parse_error",
    259   "validation_error",
    260   "address_error",
    261   "decode_error",
    262   "admission_error",
    263   "verification_error",
    264 ]
    265 
    266 [implementation_provenance]
    267 model_crates = [
    268   "radroots_core",
    269   "radroots_event",
    270   "radroots_identity",
    271   "radroots_protocol",
    272   "radroots_trade",
    273   "radroots_transport",
    274 ]
    275 algorithm_crates = [
    276   "radroots_blossom",
    277   "radroots_event_codec",
    278   "radroots_geonames",
    279   "radroots_nostr",
    280   "radroots_nostr_connect",
    281   "radroots_secrets",
    282   "radroots_signing",
    283   "radroots_storage",
    284   "radroots_storage_sqlite",
    285   "radroots_sync",
    286   "radroots_transport_nostr",
    287 ]
    288 
    289 [operations.blossom_parse_hash_path]
    290 domain = "blossom"
    291 id = "blossom.parse_hash_path"
    292 stability = "beta"
    293 inputs = ["String"]
    294 outputs = ["HashPath"]
    295 error_class = "validation_error"
    296 deterministic = true
    297 signing = "none"
    298 transport = "none"
    299 
    300 [operations.blossom_parse_hash_path.implementation]
    301 rust_modules = ["crates/blossom/src/hash.rs"]
    302 rust_types = [
    303   "radroots_blossom::FileExtension",
    304   "radroots_blossom::HashPath",
    305   "radroots_blossom::Sha256",
    306 ]
    307 
    308 [operations.blossom_parse_hash_path.conformance]
    309 vector = "contracts/conformance/vectors/blossom/hash_path_and_descriptor.v1.json"
    310 
    311 [operations.blossom_approve_descriptor_reference]
    312 domain = "blossom"
    313 id = "blossom.approve_descriptor_reference"
    314 stability = "beta"
    315 inputs = ["BlobDescriptor"]
    316 outputs = ["ApprovedDescriptor"]
    317 error_class = "validation_error"
    318 deterministic = true
    319 signing = "none"
    320 transport = "none"
    321 
    322 [operations.blossom_approve_descriptor_reference.implementation]
    323 rust_modules = ["crates/blossom/src/descriptor.rs", "crates/blossom/src/url.rs"]
    324 rust_types = [
    325   "radroots_blossom::ApprovedDescriptor",
    326   "radroots_blossom::BlobDescriptor",
    327 ]
    328 
    329 [operations.blossom_approve_descriptor_reference.conformance]
    330 vector = "contracts/conformance/vectors/blossom/hash_path_and_descriptor.v1.json"
    331 
    332 [operations.blossom_verify_descriptor_bytes]
    333 domain = "blossom"
    334 id = "blossom.verify_descriptor_bytes"
    335 stability = "beta"
    336 inputs = ["ApprovedDescriptor", "Bytes", "MediaType"]
    337 outputs = ["ByteVerifiedDescriptor"]
    338 error_class = "validation_error"
    339 deterministic = true
    340 signing = "none"
    341 transport = "none"
    342 
    343 [operations.blossom_verify_descriptor_bytes.implementation]
    344 rust_modules = [
    345   "crates/blossom/src/descriptor.rs",
    346   "crates/blossom/src/hash.rs",
    347 ]
    348 rust_types = [
    349   "radroots_blossom::ApprovedDescriptor",
    350   "radroots_blossom::ByteCommitment",
    351   "radroots_blossom::ByteVerifiedDescriptor",
    352   "radroots_blossom::MediaType",
    353 ]
    354 
    355 [operations.blossom_verify_descriptor_bytes.conformance]
    356 vector = "contracts/conformance/vectors/blossom/hash_path_and_descriptor.v1.json"
    357 
    358 [operations.blossom_build_upload_authorization_claim]
    359 domain = "blossom"
    360 id = "blossom.build_upload_authorization_claim"
    361 stability = "beta"
    362 inputs = [
    363   "AuthorizationContent",
    364   "ServerDomain",
    365   "Sha256",
    366   "CreatedAt",
    367   "LifetimeSeconds",
    368 ]
    369 outputs = ["AuthoredUploadClaim", "AuthorizationWireParts"]
    370 error_class = "validation_error"
    371 deterministic = true
    372 signing = "none"
    373 transport = "none"
    374 
    375 [operations.blossom_build_upload_authorization_claim.implementation]
    376 rust_modules = ["crates/blossom/src/authorization.rs"]
    377 rust_types = [
    378   "radroots_blossom::AuthorizationWireParts",
    379   "radroots_blossom::AuthoredUploadClaim",
    380 ]
    381 
    382 [operations.blossom_build_upload_authorization_claim.conformance]
    383 vector = "contracts/conformance/vectors/blossom/bud11_claims.v1.json"
    384 
    385 [operations.blossom_parse_authorization_claim]
    386 domain = "blossom"
    387 id = "blossom.parse_authorization_claim"
    388 stability = "beta"
    389 inputs = ["String", "CreatedAt", "NostrTags"]
    390 outputs = ["AuthorizationClaim"]
    391 error_class = "parse_error"
    392 deterministic = true
    393 signing = "none"
    394 transport = "none"
    395 
    396 [operations.blossom_parse_authorization_claim.implementation]
    397 rust_modules = ["crates/blossom/src/authorization.rs"]
    398 rust_types = ["radroots_blossom::AuthorizationClaim"]
    399 
    400 [operations.blossom_parse_authorization_claim.conformance]
    401 vector = "contracts/conformance/vectors/blossom/bud11_claims.v1.json"
    402 
    403 [operations.blossom_validate_authorization_claim]
    404 domain = "blossom"
    405 id = "blossom.validate_authorization_claim"
    406 stability = "beta"
    407 inputs = ["AuthorizationClaim", "AuthorizationValidation"]
    408 outputs = ["ValidatedAuthorizationClaim"]
    409 error_class = "validation_error"
    410 deterministic = true
    411 signing = "none"
    412 transport = "none"
    413 
    414 [operations.blossom_validate_authorization_claim.implementation]
    415 rust_modules = ["crates/blossom/src/authorization.rs"]
    416 rust_types = [
    417   "radroots_blossom::AuthorizationValidation",
    418   "radroots_blossom::ValidatedAuthorizationClaim",
    419 ]
    420 
    421 [operations.blossom_validate_authorization_claim.conformance]
    422 vector = "contracts/conformance/vectors/blossom/bud11_claims.v1.json"
    423 
    424 [operations.blossom_decode_verify_authorization_header]
    425 domain = "blossom"
    426 id = "blossom.decode_verify_authorization_header"
    427 stability = "beta"
    428 inputs = ["String", "AuthorizationValidation"]
    429 outputs = ["RadrootsNostrVerifiedBlossomAuthorization"]
    430 error_class = "decode_error"
    431 deterministic = true
    432 signing = "nip01"
    433 transport = "none"
    434 
    435 [operations.blossom_decode_verify_authorization_header.implementation]
    436 rust_modules = [
    437   "crates/blossom/src/authorization.rs",
    438   "crates/nostr/src/blossom.rs",
    439 ]
    440 rust_types = [
    441   "radroots_blossom::AuthorizationValidation",
    442   "radroots_nostr::blossom::RadrootsNostrVerifiedBlossomAuthorization",
    443 ]
    444 
    445 [operations.blossom_decode_verify_authorization_header.conformance]
    446 vector = "contracts/conformance/vectors/blossom/bud11_nostr_adapter.v1.json"
    447 
    448 [operations.event_verify_nip01]
    449 domain = "event"
    450 id = "event.verify_nip01"
    451 stability = "beta"
    452 inputs = ["EventEnvelope"]
    453 outputs = ["RadrootsSignatureVerifiedEvent"]
    454 error_class = "verification_error"
    455 deterministic = true
    456 signing = "nip01"
    457 transport = "none"
    458 
    459 [operations.event_verify_nip01.implementation]
    460 rust_modules = [
    461   "crates/event/src/wire.rs",
    462   "crates/event_codec/src/verification.rs",
    463 ]
    464 rust_types = [
    465   "radroots_event::envelope::EventEnvelope",
    466   "radroots_event_codec::verify::RadrootsIdVerifiedEvent",
    467   "radroots_event_codec::verify::RadrootsNip01VerificationError",
    468   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    469 ]
    470 
    471 [operations.event_verify_nip01.conformance]
    472 vector = "contracts/conformance/vectors/profile/verified_event.v1.json"
    473 
    474 [operations.event_admit_verified]
    475 domain = "event"
    476 id = "event.admit_verified"
    477 stability = "beta"
    478 inputs = ["RadrootsSignatureVerifiedEvent"]
    479 outputs = ["RadrootsAdmittedEvent"]
    480 error_class = "admission_error"
    481 deterministic = true
    482 signing = "none"
    483 transport = "none"
    484 
    485 [operations.event_admit_verified.implementation]
    486 rust_modules = [
    487   "crates/event_codec/src/admission.rs",
    488   "crates/event_codec/src/verification.rs",
    489 ]
    490 rust_types = [
    491   "radroots_event_codec::admission::RadrootsAdmittedEvent",
    492   "radroots_event_codec::admission::RadrootsEventAdmissionError",
    493   "radroots_event_codec::verify::RadrootsContractValidatedEvent",
    494   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    495 ]
    496 
    497 [operations.event_admit_verified.conformance]
    498 vector = "contracts/conformance/vectors/event/verified_admission.v1.json"
    499 case_kinds = ["event.admit_verified.valid", "event.admit_verified.invalid"]
    500 
    501 [operations.event_select_head]
    502 domain = "event"
    503 id = "event.select_head"
    504 stability = "beta"
    505 inputs = ["EventHeadCandidate", "CurrentEventHead?"]
    506 outputs = ["EventHeadDecision"]
    507 error_class = "validation_error"
    508 deterministic = true
    509 signing = "none"
    510 transport = "none"
    511 
    512 [operations.event_select_head.implementation]
    513 rust_modules = ["crates/event/src/event_head.rs"]
    514 rust_types = [
    515   "radroots_event::envelope::event_head::CurrentEventHead",
    516   "radroots_event::envelope::event_head::EventHeadCandidate",
    517   "radroots_event::envelope::event_head::EventHeadDecision",
    518 ]
    519 
    520 [operations.event_select_head.conformance]
    521 vector = "contracts/conformance/vectors/profile/verified_event.v1.json"
    522 
    523 [operations.food_availability_build_authored_draft]
    524 domain = "food_availability"
    525 id = "food_availability.build_authored_draft"
    526 stability = "beta"
    527 inputs = ["FoodAvailabilityDetails", "u64"]
    528 outputs = ["Nip01EventWireParts"]
    529 error_class = "encode_error"
    530 deterministic = true
    531 signing = "none"
    532 transport = "none"
    533 
    534 [operations.food_availability_build_authored_draft.implementation]
    535 rust_modules = [
    536   "crates/event/src/food_availability.rs",
    537   "crates/event_codec/src/food_availability/authored.rs",
    538 ]
    539 rust_types = [
    540   "radroots_blossom::ByteVerifiedDescriptor",
    541   "radroots_event::food::availability::FoodAvailabilityDetails",
    542   "radroots_event::food::availability::FoodAvailabilityDetailsParts",
    543   "radroots_event::food::availability::FoodAvailabilityError",
    544   "radroots_event::food::availability::FoodAvailabilityImage",
    545   "radroots_event::media::AuthoredImage",
    546   "radroots_event::wire::Nip01EventWireParts",
    547   "radroots_event_codec::food_availability::authored::RadrootsFoodAvailabilityEncodeError",
    548 ]
    549 
    550 [operations.food_availability_build_authored_draft.conformance]
    551 vector = "contracts/conformance/vectors/food_availability/profile.v1.json"
    552 case_kinds = [
    553   "food_availability.build_authored_draft.valid",
    554   "food_availability.build_authored_draft.invalid",
    555 ]
    556 
    557 [operations.food_availability_project_verified_event]
    558 domain = "food_availability"
    559 id = "food_availability.project_verified_event"
    560 stability = "beta"
    561 inputs = ["RadrootsSignatureVerifiedEvent"]
    562 outputs = ["RadrootsFoodAvailabilityProjectionOutcome"]
    563 error_class = "parse_error"
    564 deterministic = true
    565 signing = "none"
    566 transport = "none"
    567 
    568 [operations.food_availability_project_verified_event.implementation]
    569 rust_modules = [
    570   "crates/event/src/classified_listing.rs",
    571   "crates/event/src/food_availability.rs",
    572   "crates/event_codec/src/food_availability/inbound.rs",
    573 ]
    574 rust_types = [
    575   "radroots_event::listing::classified::ClassifiedListingPartition",
    576   "radroots_event::food::availability::FoodAvailabilityError",
    577   "radroots_event_codec::food_availability::inbound::RadrootsFoodAvailabilityImageDiagnostic",
    578   "radroots_event_codec::food_availability::inbound::RadrootsFoodAvailabilityProjectionError",
    579   "radroots_event_codec::food_availability::inbound::RadrootsFoodAvailabilityProjectionOutcome",
    580   "radroots_event_codec::food_availability::inbound::RadrootsInboundFoodAvailabilityImage",
    581   "radroots_event_codec::food_availability::inbound::RadrootsInboundFoodAvailabilityProjection",
    582   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    583 ]
    584 
    585 [operations.food_availability_project_verified_event.conformance]
    586 vector = "contracts/conformance/vectors/food_availability/profile.v1.json"
    587 case_kinds = [
    588   "food_availability.project_verified_event.valid",
    589   "food_availability.project_verified_event.invalid",
    590 ]
    591 
    592 [operations.food_availability_verify_and_admit_event]
    593 domain = "food_availability"
    594 id = "food_availability.verify_and_admit_event"
    595 stability = "beta"
    596 inputs = ["EventEnvelope"]
    597 outputs = ["RadrootsFoodAvailabilityAdmissionOutcome"]
    598 error_class = "admission_error"
    599 deterministic = true
    600 signing = "nip01"
    601 transport = "none"
    602 
    603 [operations.food_availability_verify_and_admit_event.implementation]
    604 rust_modules = [
    605   "crates/event_codec/src/food_availability/admission.rs",
    606   "crates/event_codec/src/food_availability/inbound.rs",
    607   "crates/event_codec/src/verification.rs",
    608 ]
    609 rust_types = [
    610   "radroots_event::envelope::EventEnvelope",
    611   "radroots_event_codec::food_availability::admission::RadrootsAdmittedFoodAvailabilityEvent",
    612   "radroots_event_codec::food_availability::admission::RadrootsExcludedClassifiedListingCandidate",
    613   "radroots_event_codec::food_availability::admission::RadrootsFoodAvailabilityAdmissionError",
    614   "radroots_event_codec::food_availability::admission::RadrootsFoodAvailabilityAdmissionOutcome",
    615   "radroots_event_codec::food_availability::inbound::RadrootsInboundFoodAvailabilityProjection",
    616   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    617 ]
    618 
    619 [operations.food_availability_verify_and_admit_event.conformance]
    620 vector = "contracts/conformance/vectors/food_availability/profile.v1.json"
    621 case_kinds = [
    622   "food_availability.verify_and_admit_event.valid",
    623   "food_availability.verify_and_admit_event.invalid",
    624 ]
    625 
    626 [operations.food_availability_validate_revision]
    627 domain = "food_availability"
    628 id = "food_availability.validate_revision"
    629 stability = "beta"
    630 inputs = ["RadrootsSignatureVerifiedEvent"]
    631 outputs = ["Unit"]
    632 error_class = "validation_error"
    633 deterministic = true
    634 signing = "none"
    635 transport = "none"
    636 
    637 [operations.food_availability_validate_revision.implementation]
    638 rust_modules = [
    639   "crates/event_codec/src/food_availability/inbound.rs",
    640   "crates/event_codec/src/food_availability/revision.rs",
    641 ]
    642 rust_types = [
    643   "radroots_event_codec::food_availability::inbound::RadrootsFoodAvailabilityProjectionError",
    644   "radroots_event_codec::food_availability::revision::RadrootsFoodAvailabilityRevisionError",
    645   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    646 ]
    647 
    648 [operations.food_availability_validate_revision.conformance]
    649 vector = "contracts/conformance/vectors/food_availability/profile.v1.json"
    650 case_kinds = [
    651   "food_availability.validate_revision.valid",
    652   "food_availability.validate_revision.invalid",
    653 ]
    654 
    655 [operations.profile_build_authored_draft]
    656 domain = "profile"
    657 id = "profile.build_authored_draft"
    658 stability = "beta"
    659 inputs = ["AuthoredProfile"]
    660 outputs = ["Nip01EventWireParts"]
    661 error_class = "encode_error"
    662 deterministic = true
    663 signing = "none"
    664 transport = "none"
    665 
    666 [operations.profile_build_authored_draft.implementation]
    667 rust_modules = [
    668   "crates/event/src/profile.rs",
    669   "crates/event_codec/src/profile/authored.rs",
    670 ]
    671 rust_types = [
    672   "radroots_blossom::ByteVerifiedDescriptor",
    673   "radroots_event::media::AuthoredImage",
    674   "radroots_event::media::AuthoredImageError",
    675   "radroots_event::profile::AuthoredProfile",
    676   "radroots_event::profile::AuthoredProfileError",
    677   "radroots_event::profile::Nip05Identifier",
    678   "radroots_event::profile::Nip05IdentifierError",
    679   "radroots_event_codec::encode::profile::RadrootsAuthoredProfileEncodeError",
    680 ]
    681 
    682 [operations.profile_build_authored_draft.conformance]
    683 vector = "contracts/conformance/vectors/profile/metadata.v1.json"
    684 
    685 [operations.profile_parse_inbound_metadata]
    686 domain = "profile"
    687 id = "profile.parse_inbound_metadata"
    688 stability = "beta"
    689 inputs = ["String"]
    690 outputs = ["RadrootsInboundProfileMetadata"]
    691 error_class = "parse_error"
    692 deterministic = true
    693 signing = "none"
    694 transport = "none"
    695 
    696 [operations.profile_parse_inbound_metadata.implementation]
    697 rust_modules = [
    698   "crates/event/src/profile.rs",
    699   "crates/event_codec/src/profile/inbound.rs",
    700 ]
    701 rust_types = [
    702   "radroots_event::profile::Nip05Identifier",
    703   "radroots_event_codec::decode::profile::RadrootsInboundProfileMetadata",
    704   "radroots_event_codec::decode::profile::RadrootsNip05IdentityVerification",
    705   "radroots_event_codec::decode::profile::RadrootsProfileMetadataParseError",
    706   "radroots_event_codec::decode::profile::RadrootsUnverifiedProfileMediaReference",
    707 ]
    708 
    709 [operations.profile_parse_inbound_metadata.conformance]
    710 vector = "contracts/conformance/vectors/profile/metadata.v1.json"
    711 
    712 [operations.profile_verify_and_admit_event]
    713 domain = "profile"
    714 id = "profile.verify_and_admit_event"
    715 stability = "beta"
    716 inputs = ["EventEnvelope"]
    717 outputs = ["RadrootsAdmittedProfileEvent"]
    718 error_class = "admission_error"
    719 deterministic = true
    720 signing = "nip01"
    721 transport = "none"
    722 
    723 [operations.profile_verify_and_admit_event.implementation]
    724 rust_modules = [
    725   "crates/event_codec/src/profile/admission.rs",
    726   "crates/event_codec/src/profile/inbound.rs",
    727   "crates/event_codec/src/verification.rs",
    728 ]
    729 rust_types = [
    730   "radroots_event::envelope::EventEnvelope",
    731   "radroots_event_codec::admission::profile::RadrootsAdmittedProfileEvent",
    732   "radroots_event_codec::admission::profile::RadrootsProfileAdmissionError",
    733   "radroots_event_codec::decode::profile::RadrootsInboundProfileMetadata",
    734   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    735 ]
    736 
    737 [operations.profile_verify_and_admit_event.conformance]
    738 vector = "contracts/conformance/vectors/profile/verified_event.v1.json"
    739 
    740 [operations.farm_build_draft]
    741 domain = "farm"
    742 id = "farm.build_draft"
    743 stability = "beta"
    744 inputs = ["Farm"]
    745 outputs = ["Nip01EventWireParts"]
    746 error_class = "encode_error"
    747 deterministic = true
    748 signing = "native"
    749 transport = "native"
    750 
    751 [operations.farm_build_draft.implementation]
    752 rust_modules = ["crates/event_codec/src/farm/encode.rs"]
    753 rust_types = ["radroots_event::farm::Farm"]
    754 
    755 [operations.farm_build_draft.conformance]
    756 vector = "contracts/conformance/vectors/farm/build_draft.v1.json"
    757 
    758 [operations.operational_listing_build_tags]
    759 domain = "operational_listing"
    760 id = "operational_listing.build_tags"
    761 stability = "beta"
    762 inputs = ["OperationalListing"]
    763 outputs = ["NostrTags"]
    764 error_class = "encode_error"
    765 deterministic = true
    766 signing = "native"
    767 transport = "native"
    768 
    769 [operations.operational_listing_build_tags.implementation]
    770 rust_modules = [
    771   "crates/event_codec/src/operational_listing/encode.rs",
    772   "crates/event_codec/src/operational_listing/tags.rs",
    773 ]
    774 rust_types = ["radroots_event::listing::operational::OperationalListing"]
    775 
    776 [operations.operational_listing_build_tags.conformance]
    777 vector = "contracts/conformance/vectors/operational_listing/build_tags.v1.json"
    778 
    779 [operations.operational_listing_build_draft]
    780 domain = "operational_listing"
    781 id = "operational_listing.build_draft"
    782 stability = "beta"
    783 inputs = ["OperationalListing"]
    784 outputs = ["Nip01EventWireParts"]
    785 error_class = "encode_error"
    786 deterministic = true
    787 signing = "native"
    788 transport = "native"
    789 
    790 [operations.operational_listing_build_draft.implementation]
    791 rust_modules = [
    792   "crates/event_codec/src/operational_listing/encode.rs",
    793   "crates/event_codec/src/wire.rs",
    794 ]
    795 rust_types = ["radroots_event::listing::operational::OperationalListing"]
    796 
    797 [operations.operational_listing_build_draft.conformance]
    798 vector = "contracts/conformance/vectors/operational_listing/build_draft.v1.json"
    799 
    800 [operations.operational_listing_parse_event]
    801 domain = "operational_listing"
    802 id = "operational_listing.parse_event"
    803 stability = "beta"
    804 inputs = ["EventEnvelope"]
    805 outputs = ["OperationalListing"]
    806 error_class = "parse_error"
    807 deterministic = true
    808 signing = "native"
    809 transport = "native"
    810 
    811 [operations.operational_listing_parse_event.implementation]
    812 rust_modules = ["crates/event_codec/src/operational_listing/decode.rs"]
    813 rust_types = [
    814   "radroots_event::envelope::EventEnvelope",
    815   "radroots_event::listing::operational::OperationalListingParseError",
    816   "radroots_event::listing::operational::OperationalListing",
    817 ]
    818 
    819 [operations.operational_listing_parse_event.conformance]
    820 vector = "contracts/conformance/vectors/operational_listing/parse_event.v1.json"
    821 
    822 [operations.social_update_build_authored_draft]
    823 domain = "social"
    824 id = "social.update.build_authored_draft"
    825 stability = "beta"
    826 inputs = ["AuthoredUpdate"]
    827 outputs = ["Nip01EventWireParts"]
    828 error_class = "encode_error"
    829 deterministic = true
    830 signing = "none"
    831 transport = "none"
    832 
    833 [operations.social_update_build_authored_draft.implementation]
    834 rust_modules = [
    835   "crates/event/src/post.rs",
    836   "crates/event_codec/src/post/authored.rs",
    837 ]
    838 rust_types = [
    839   "radroots_event::post::AuthoredPostError",
    840   "radroots_event::post::AuthoredUpdate",
    841 ]
    842 
    843 [operations.social_update_build_authored_draft.conformance]
    844 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
    845 case_kinds = [
    846   "social.update.build_authored_draft.valid",
    847   "social.update.build_authored_draft.invalid",
    848 ]
    849 
    850 [operations.social_photo_update_build_authored_draft]
    851 domain = "social"
    852 id = "social.photo_update.build_authored_draft"
    853 stability = "beta"
    854 inputs = ["AuthoredPhotoUpdate"]
    855 outputs = ["Nip01EventWireParts"]
    856 error_class = "encode_error"
    857 deterministic = true
    858 signing = "none"
    859 transport = "none"
    860 
    861 [operations.social_photo_update_build_authored_draft.implementation]
    862 rust_modules = [
    863   "crates/event/src/post.rs",
    864   "crates/event_codec/src/post/authored.rs",
    865 ]
    866 rust_types = [
    867   "radroots_blossom::ApprovedBlobUrl",
    868   "radroots_blossom::ByteVerifiedDescriptor",
    869   "radroots_event::media::AuthoredImage",
    870   "radroots_event::post::AuthoredPhotoUpdate",
    871   "radroots_event::post::AuthoredPostError",
    872   "radroots_event::post::AuthoredPostImage",
    873   "radroots_event::post::PostImageDimensions",
    874 ]
    875 
    876 [operations.social_photo_update_build_authored_draft.conformance]
    877 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
    878 case_kinds = [
    879   "social.photo_update.build_authored_draft.valid",
    880   "social.photo_update.build_authored_draft.invalid",
    881 ]
    882 
    883 [operations.social_ask_build_authored_draft]
    884 domain = "social"
    885 id = "social.ask.build_authored_draft"
    886 stability = "beta"
    887 inputs = ["AuthoredAsk"]
    888 outputs = ["Nip01EventWireParts"]
    889 error_class = "encode_error"
    890 deterministic = true
    891 signing = "none"
    892 transport = "none"
    893 
    894 [operations.social_ask_build_authored_draft.implementation]
    895 rust_modules = [
    896   "crates/event/src/post.rs",
    897   "crates/event_codec/src/post/authored.rs",
    898 ]
    899 rust_types = [
    900   "radroots_event::post::AuthoredAsk",
    901   "radroots_event::post::AuthoredPostError",
    902   "radroots_event::post::AuthoredPostImage",
    903 ]
    904 
    905 [operations.social_ask_build_authored_draft.conformance]
    906 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
    907 case_kinds = [
    908   "social.ask.build_authored_draft.valid",
    909   "social.ask.build_authored_draft.invalid",
    910 ]
    911 
    912 [operations.social_reply_build_authored_draft]
    913 domain = "social"
    914 id = "social.reply.build_authored_draft"
    915 stability = "beta"
    916 inputs = ["AuthoredNip10Reply"]
    917 outputs = ["Nip01EventWireParts"]
    918 error_class = "encode_error"
    919 deterministic = true
    920 signing = "none"
    921 transport = "none"
    922 
    923 [operations.social_reply_build_authored_draft.implementation]
    924 rust_modules = [
    925   "crates/event/src/relay_hint.rs",
    926   "crates/event/src/reply.rs",
    927   "crates/event_codec/src/reply/authored.rs",
    928 ]
    929 rust_types = [
    930   "radroots_event::post::reply::AuthoredNip10Reply",
    931   "radroots_event::post::reply::Nip10ReplyError",
    932   "radroots_event::tag::relay_hint::NostrRelayHint",
    933   "radroots_event::post::reply::Nip10ReplyReference",
    934 ]
    935 
    936 [operations.social_reply_build_authored_draft.conformance]
    937 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
    938 case_kinds = [
    939   "social.reply.build_authored_draft.valid",
    940   "social.reply.build_authored_draft.invalid",
    941 ]
    942 
    943 [operations.social_reply_project_verified_event]
    944 domain = "social"
    945 id = "social.reply.project_verified_event"
    946 stability = "beta"
    947 inputs = ["RadrootsSignatureVerifiedEvent"]
    948 outputs = ["RadrootsInboundNip10ReplyProjection"]
    949 error_class = "parse_error"
    950 deterministic = true
    951 signing = "none"
    952 transport = "none"
    953 
    954 [operations.social_reply_project_verified_event.implementation]
    955 rust_modules = [
    956   "crates/event/src/relay_hint.rs",
    957   "crates/event_codec/src/reply/inbound.rs",
    958 ]
    959 rust_types = [
    960   "radroots_event::tag::relay_hint::NostrRelayHint",
    961   "radroots_event_codec::decode::reply::RadrootsInboundNip10EventReference",
    962   "radroots_event_codec::decode::reply::RadrootsInboundNip10Participant",
    963   "radroots_event_codec::decode::reply::RadrootsInboundNip10ReplyProjection",
    964   "radroots_event_codec::decode::reply::RadrootsNip10ReplyDiagnostic",
    965   "radroots_event_codec::decode::reply::RadrootsNip10ReplyProjectionError",
    966   "radroots_event_codec::decode::reply::RadrootsNip10ReplyStyle",
    967   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
    968 ]
    969 
    970 [operations.social_reply_project_verified_event.conformance]
    971 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
    972 case_kinds = [
    973   "social.reply.project_verified_event.valid",
    974   "social.reply.project_verified_event.invalid",
    975 ]
    976 
    977 [operations.social_reply_verify_and_admit_event]
    978 domain = "social"
    979 id = "social.reply.verify_and_admit_event"
    980 stability = "beta"
    981 inputs = ["EventEnvelope"]
    982 outputs = ["RadrootsAdmittedNip10ReplyEvent"]
    983 error_class = "admission_error"
    984 deterministic = true
    985 signing = "nip01"
    986 transport = "none"
    987 
    988 [operations.social_reply_verify_and_admit_event.implementation]
    989 rust_modules = [
    990   "crates/event_codec/src/reply/admission.rs",
    991   "crates/event_codec/src/reply/inbound.rs",
    992   "crates/event_codec/src/verification.rs",
    993 ]
    994 rust_types = [
    995   "radroots_event::envelope::EventEnvelope",
    996   "radroots_event_codec::admission::reply::RadrootsAdmittedNip10ReplyEvent",
    997   "radroots_event_codec::admission::reply::RadrootsNip10ReplyAdmissionError",
    998   "radroots_event_codec::decode::reply::RadrootsInboundNip10ReplyProjection",
    999   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1000 ]
   1001 
   1002 [operations.social_reply_verify_and_admit_event.conformance]
   1003 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
   1004 case_kinds = [
   1005   "social.reply.verify_and_admit_event.valid",
   1006   "social.reply.verify_and_admit_event.invalid",
   1007 ]
   1008 
   1009 [operations.social_post_project_verified_event]
   1010 domain = "social"
   1011 id = "social.post.project_verified_event"
   1012 stability = "beta"
   1013 inputs = ["RadrootsSignatureVerifiedEvent"]
   1014 outputs = ["RadrootsInboundPostProjection"]
   1015 error_class = "parse_error"
   1016 deterministic = true
   1017 signing = "none"
   1018 transport = "none"
   1019 
   1020 [operations.social_post_project_verified_event.implementation]
   1021 rust_modules = ["crates/event_codec/src/post/inbound.rs"]
   1022 rust_types = [
   1023   "radroots_event_codec::decode::post::RadrootsInboundPostImeta",
   1024   "radroots_event_codec::decode::post::RadrootsInboundPostProjection",
   1025   "radroots_event_codec::decode::post::RadrootsPostClassification",
   1026   "radroots_event_codec::decode::post::RadrootsPostDiagnostic",
   1027   "radroots_event_codec::decode::post::RadrootsPostProjectionError",
   1028   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1029 ]
   1030 
   1031 [operations.social_post_project_verified_event.conformance]
   1032 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
   1033 case_kinds = [
   1034   "social.post.project_verified_event.valid",
   1035   "social.post.project_verified_event.invalid",
   1036 ]
   1037 
   1038 [operations.social_post_verify_and_admit_event]
   1039 domain = "social"
   1040 id = "social.post.verify_and_admit_event"
   1041 stability = "beta"
   1042 inputs = ["EventEnvelope"]
   1043 outputs = ["RadrootsPostAdmissionOutcome"]
   1044 error_class = "admission_error"
   1045 deterministic = true
   1046 signing = "nip01"
   1047 transport = "none"
   1048 
   1049 [operations.social_post_verify_and_admit_event.implementation]
   1050 rust_modules = [
   1051   "crates/event_codec/src/post/admission.rs",
   1052   "crates/event_codec/src/post/inbound.rs",
   1053   "crates/event_codec/src/verification.rs",
   1054 ]
   1055 rust_types = [
   1056   "radroots_event::envelope::EventEnvelope",
   1057   "radroots_event_codec::admission::post::RadrootsAdmittedRootPostEvent",
   1058   "radroots_event_codec::admission::post::RadrootsPostAdmissionError",
   1059   "radroots_event_codec::admission::post::RadrootsPostAdmissionOutcome",
   1060   "radroots_event_codec::admission::post::RadrootsThreadExcludedPostCandidate",
   1061   "radroots_event_codec::decode::post::RadrootsInboundPostProjection",
   1062   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1063 ]
   1064 
   1065 [operations.social_post_verify_and_admit_event.conformance]
   1066 vector = "contracts/conformance/vectors/post/verified_profiles.v1.json"
   1067 case_kinds = [
   1068   "social.post.verify_and_admit_event.valid",
   1069   "social.post.verify_and_admit_event.invalid",
   1070 ]
   1071 
   1072 [operations.social_comment_build_authored_draft]
   1073 domain = "social"
   1074 id = "social.comment.build_authored_draft"
   1075 stability = "beta"
   1076 inputs = ["AuthoredNip22Comment"]
   1077 outputs = ["Nip01EventWireParts"]
   1078 error_class = "encode_error"
   1079 deterministic = true
   1080 signing = "none"
   1081 transport = "none"
   1082 
   1083 [operations.social_comment_build_authored_draft.implementation]
   1084 rust_modules = [
   1085   "crates/event/src/comment.rs",
   1086   "crates/event/src/relay_hint.rs",
   1087   "crates/event_codec/src/comment/authored.rs",
   1088 ]
   1089 rust_types = [
   1090   "radroots_event::post::comment::AuthoredNip22Comment",
   1091   "radroots_event::post::comment::Nip22AddressRootReference",
   1092   "radroots_event::post::comment::Nip22CommentError",
   1093   "radroots_event::post::comment::Nip22CommentParentReference",
   1094   "radroots_event::post::comment::Nip22CommentPosition",
   1095   "radroots_event::post::comment::Nip22CommentRoot",
   1096   "radroots_event::post::comment::Nip22CommentRootKind",
   1097   "radroots_event::post::comment::Nip22EventRootReference",
   1098   "radroots_event::tag::relay_hint::NostrRelayHint",
   1099   "radroots_event::wire::Nip01EventWireParts",
   1100 ]
   1101 
   1102 [operations.social_comment_build_authored_draft.conformance]
   1103 vector = "contracts/conformance/vectors/comment/verified_profile.v1.json"
   1104 case_kinds = [
   1105   "social.comment.build_authored_draft.valid",
   1106   "social.comment.build_authored_draft.invalid",
   1107 ]
   1108 
   1109 [operations.social_comment_project_verified_event]
   1110 domain = "social"
   1111 id = "social.comment.project_verified_event"
   1112 stability = "beta"
   1113 inputs = ["RadrootsSignatureVerifiedEvent"]
   1114 outputs = ["RadrootsInboundNip22CommentProjection"]
   1115 error_class = "parse_error"
   1116 deterministic = true
   1117 signing = "none"
   1118 transport = "none"
   1119 
   1120 [operations.social_comment_project_verified_event.implementation]
   1121 rust_modules = [
   1122   "crates/event_codec/src/comment/inbound.rs",
   1123   "crates/event_codec/src/verification.rs",
   1124 ]
   1125 rust_types = [
   1126   "radroots_event_codec::decode::comment::RadrootsInboundNip22AddressRoot",
   1127   "radroots_event_codec::decode::comment::RadrootsInboundNip22CommentParent",
   1128   "radroots_event_codec::decode::comment::RadrootsInboundNip22CommentPosition",
   1129   "radroots_event_codec::decode::comment::RadrootsInboundNip22CommentProjection",
   1130   "radroots_event_codec::decode::comment::RadrootsInboundNip22CommentRoot",
   1131   "radroots_event_codec::decode::comment::RadrootsInboundNip22CurrentRevision",
   1132   "radroots_event_codec::decode::comment::RadrootsInboundNip22EventRoot",
   1133   "radroots_event_codec::decode::comment::RadrootsInboundNip22Participant",
   1134   "radroots_event_codec::decode::comment::RadrootsInboundNip22TopLevelAddressReference",
   1135   "radroots_event_codec::decode::comment::RadrootsInboundNip22TopLevelEventReference",
   1136   "radroots_event_codec::decode::comment::RadrootsNip22CommentDiagnostic",
   1137   "radroots_event_codec::decode::comment::RadrootsNip22CommentProjectionError",
   1138   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1139 ]
   1140 
   1141 [operations.social_comment_project_verified_event.conformance]
   1142 vector = "contracts/conformance/vectors/comment/verified_profile.v1.json"
   1143 case_kinds = [
   1144   "social.comment.project_verified_event.valid",
   1145   "social.comment.project_verified_event.invalid",
   1146 ]
   1147 
   1148 [operations.social_comment_verify_and_admit_event]
   1149 domain = "social"
   1150 id = "social.comment.verify_and_admit_event"
   1151 stability = "beta"
   1152 inputs = ["EventEnvelope"]
   1153 outputs = ["RadrootsAdmittedNip22CommentEvent"]
   1154 error_class = "admission_error"
   1155 deterministic = true
   1156 signing = "nip01"
   1157 transport = "none"
   1158 
   1159 [operations.social_comment_verify_and_admit_event.implementation]
   1160 rust_modules = [
   1161   "crates/event_codec/src/comment/admission.rs",
   1162   "crates/event_codec/src/comment/inbound.rs",
   1163   "crates/event_codec/src/verification.rs",
   1164 ]
   1165 rust_types = [
   1166   "radroots_event::envelope::EventEnvelope",
   1167   "radroots_event_codec::admission::comment::RadrootsAdmittedNip22CommentEvent",
   1168   "radroots_event_codec::admission::comment::RadrootsNip22CommentAdmissionError",
   1169   "radroots_event_codec::decode::comment::RadrootsInboundNip22CommentProjection",
   1170   "radroots_event_codec::decode::comment::RadrootsNip22CommentProjectionError",
   1171   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1172 ]
   1173 
   1174 [operations.social_comment_verify_and_admit_event.conformance]
   1175 vector = "contracts/conformance/vectors/comment/verified_profile.v1.json"
   1176 case_kinds = [
   1177   "social.comment.verify_and_admit_event.valid",
   1178   "social.comment.verify_and_admit_event.invalid",
   1179 ]
   1180 
   1181 [operations.social_deletion_request_build_authored_draft]
   1182 domain = "social"
   1183 id = "social.deletion_request.build_authored_draft"
   1184 stability = "beta"
   1185 inputs = ["AuthoredNip09DeletionRequest"]
   1186 outputs = ["Nip01EventWireParts"]
   1187 error_class = "encode_error"
   1188 deterministic = true
   1189 signing = "none"
   1190 transport = "none"
   1191 
   1192 [operations.social_deletion_request_build_authored_draft.implementation]
   1193 rust_modules = [
   1194   "crates/event/src/deletion.rs",
   1195   "crates/event_codec/src/deletion/authored.rs",
   1196 ]
   1197 rust_types = [
   1198   "radroots_event::post::deletion::AuthoredNip09DeletionRequest",
   1199   "radroots_event::post::deletion::Nip09DeletionAddressTarget",
   1200   "radroots_event::post::deletion::Nip09DeletionError",
   1201   "radroots_event::post::deletion::Nip09DeletionEventTarget",
   1202   "radroots_event::id::Nip01Coordinate",
   1203   "radroots_event::wire::Nip01EventWireParts",
   1204 ]
   1205 
   1206 [operations.social_deletion_request_build_authored_draft.conformance]
   1207 vector = "contracts/conformance/vectors/deletion/verified_profile.v1.json"
   1208 case_kinds = [
   1209   "social.deletion_request.build_authored_draft.valid",
   1210   "social.deletion_request.build_authored_draft.invalid",
   1211 ]
   1212 
   1213 [operations.social_deletion_request_project_verified_event]
   1214 domain = "social"
   1215 id = "social.deletion_request.project_verified_event"
   1216 stability = "beta"
   1217 inputs = ["RadrootsSignatureVerifiedEvent"]
   1218 outputs = ["RadrootsInboundNip09DeletionProjection"]
   1219 error_class = "parse_error"
   1220 deterministic = true
   1221 signing = "none"
   1222 transport = "none"
   1223 
   1224 [operations.social_deletion_request_project_verified_event.implementation]
   1225 rust_modules = [
   1226   "crates/event_codec/src/deletion/inbound.rs",
   1227   "crates/event_codec/src/verification.rs",
   1228 ]
   1229 rust_types = [
   1230   "radroots_event_codec::decode::deletion::RadrootsInboundNip09DeletionAddressTarget",
   1231   "radroots_event_codec::decode::deletion::RadrootsInboundNip09DeletionEventTarget",
   1232   "radroots_event_codec::decode::deletion::RadrootsInboundNip09DeletionKindAdvisory",
   1233   "radroots_event_codec::decode::deletion::RadrootsInboundNip09DeletionProjection",
   1234   "radroots_event_codec::decode::deletion::RadrootsNip09DeletionDiagnostic",
   1235   "radroots_event_codec::decode::deletion::RadrootsNip09DeletionProjectionError",
   1236   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1237 ]
   1238 
   1239 [operations.social_deletion_request_project_verified_event.conformance]
   1240 vector = "contracts/conformance/vectors/deletion/verified_profile.v1.json"
   1241 case_kinds = [
   1242   "social.deletion_request.project_verified_event.valid",
   1243   "social.deletion_request.project_verified_event.invalid",
   1244 ]
   1245 
   1246 [operations.social_deletion_request_verify_and_admit_event]
   1247 domain = "social"
   1248 id = "social.deletion_request.verify_and_admit_event"
   1249 stability = "beta"
   1250 inputs = ["EventEnvelope"]
   1251 outputs = ["RadrootsAdmittedNip09DeletionRequestEvent"]
   1252 error_class = "admission_error"
   1253 deterministic = true
   1254 signing = "nip01"
   1255 transport = "none"
   1256 
   1257 [operations.social_deletion_request_verify_and_admit_event.implementation]
   1258 rust_modules = [
   1259   "crates/event_codec/src/deletion/admission.rs",
   1260   "crates/event_codec/src/deletion/inbound.rs",
   1261   "crates/event_codec/src/verification.rs",
   1262 ]
   1263 rust_types = [
   1264   "radroots_event::envelope::EventEnvelope",
   1265   "radroots_event_codec::admission::deletion::RadrootsAdmittedNip09DeletionRequestEvent",
   1266   "radroots_event_codec::admission::deletion::RadrootsNip09DeletionAdmissionError",
   1267   "radroots_event_codec::decode::deletion::RadrootsInboundNip09DeletionProjection",
   1268   "radroots_event_codec::decode::deletion::RadrootsNip09DeletionProjectionError",
   1269   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1270 ]
   1271 
   1272 [operations.social_deletion_request_verify_and_admit_event.conformance]
   1273 vector = "contracts/conformance/vectors/deletion/verified_profile.v1.json"
   1274 case_kinds = [
   1275   "social.deletion_request.verify_and_admit_event.valid",
   1276   "social.deletion_request.verify_and_admit_event.invalid",
   1277 ]
   1278 
   1279 [operations.social_deletion_request_evaluate_suppression]
   1280 domain = "social"
   1281 id = "social.deletion_request.evaluate_suppression"
   1282 stability = "beta"
   1283 inputs = [
   1284   "RadrootsSignatureVerifiedEvent",
   1285   "RadrootsAdmittedNip09DeletionRequestEvent[]",
   1286 ]
   1287 outputs = ["RadrootsNip09SuppressionDecision"]
   1288 error_class = "validation_error"
   1289 deterministic = true
   1290 signing = "none"
   1291 transport = "none"
   1292 
   1293 [operations.social_deletion_request_evaluate_suppression.implementation]
   1294 rust_modules = ["crates/event_codec/src/deletion/evaluator.rs"]
   1295 rust_types = [
   1296   "radroots_event_codec::admission::deletion::RadrootsAdmittedNip09DeletionRequestEvent",
   1297   "radroots_event_codec::admission::deletion::RadrootsNip09AddressReferenceEvidence",
   1298   "radroots_event_codec::admission::deletion::RadrootsNip09EventReferenceEvidence",
   1299   "radroots_event_codec::admission::deletion::RadrootsNip09SuppressionDecision",
   1300   "radroots_event_codec::admission::deletion::RadrootsNip09SuppressionOutcome",
   1301   "radroots_event_codec::admission::deletion::RadrootsNip09SuppressionReason",
   1302   "radroots_event_codec::verify::RadrootsSignatureVerifiedEvent",
   1303 ]
   1304 
   1305 [operations.social_deletion_request_evaluate_suppression.conformance]
   1306 vector = "contracts/conformance/vectors/deletion/suppression.v1.json"
   1307 case_kinds = ["social.deletion_request.evaluate_suppression.valid"]
   1308 
   1309 [operations.social_reaction_build_tags]
   1310 domain = "social"
   1311 id = "social.reaction.build_tags"
   1312 stability = "beta"
   1313 inputs = ["Reaction"]
   1314 outputs = ["NostrTags"]
   1315 error_class = "encode_error"
   1316 deterministic = true
   1317 signing = "native"
   1318 transport = "native"
   1319 
   1320 [operations.social_reaction_build_tags.implementation]
   1321 rust_modules = ["crates/event_codec/src/reaction/encode.rs"]
   1322 rust_types = ["radroots_event::post::reaction::Reaction"]
   1323 
   1324 [operations.social_reaction_build_tags.conformance]
   1325 vector = "contracts/conformance/vectors/social/mvp.v1.json"
   1326 
   1327 [operations.social_article_build_tags]
   1328 domain = "social"
   1329 id = "social.article.build_tags"
   1330 stability = "beta"
   1331 inputs = ["Article"]
   1332 outputs = ["NostrTags"]
   1333 error_class = "encode_error"
   1334 deterministic = true
   1335 signing = "native"
   1336 transport = "native"
   1337 
   1338 [operations.social_article_build_tags.implementation]
   1339 rust_modules = ["crates/event_codec/src/article/encode.rs"]
   1340 rust_types = ["radroots_event::post::article::Article"]
   1341 
   1342 [operations.social_article_build_tags.conformance]
   1343 vector = "contracts/conformance/vectors/social/mvp.v1.json"
   1344 
   1345 [operations.social_file_metadata_build_tags]
   1346 domain = "social"
   1347 id = "social.file_metadata.build_tags"
   1348 stability = "beta"
   1349 inputs = ["FileMetadata"]
   1350 outputs = ["NostrTags"]
   1351 error_class = "encode_error"
   1352 deterministic = true
   1353 signing = "native"
   1354 transport = "native"
   1355 
   1356 [operations.social_file_metadata_build_tags.implementation]
   1357 rust_modules = ["crates/event_codec/src/file_metadata/encode.rs"]
   1358 rust_types = ["radroots_event::media::file_metadata::FileMetadata"]
   1359 
   1360 [operations.social_file_metadata_build_tags.conformance]
   1361 vector = "contracts/conformance/vectors/social/mvp.v1.json"
   1362 
   1363 [operations.social_calendar_date_event_build_authored_draft]
   1364 domain = "social"
   1365 id = "social.calendar_date_event.build_authored_draft"
   1366 stability = "beta"
   1367 inputs = ["AuthoredCalendarDateEvent"]
   1368 outputs = ["Nip01EventWireParts"]
   1369 error_class = "encode_error"
   1370 deterministic = true
   1371 signing = "none"
   1372 transport = "none"
   1373 
   1374 [operations.social_calendar_date_event_build_authored_draft.implementation]
   1375 rust_modules = [
   1376   "crates/event/src/calendar.rs",
   1377   "crates/event/src/media.rs",
   1378   "crates/event_codec/src/calendar/encode.rs",
   1379 ]
   1380 rust_types = [
   1381   "radroots_event::calendar::AuthoredCalendarDateEvent",
   1382   "radroots_event::calendar::CalendarDate",
   1383   "radroots_event::calendar::CalendarEventError",
   1384   "radroots_event::media::AuthoredImage",
   1385   "radroots_event::wire::Nip01EventWireParts",
   1386   "radroots_event_codec::error::EventEncodeError",
   1387 ]
   1388 
   1389 [operations.social_calendar_date_event_build_authored_draft.conformance]
   1390 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1391 
   1392 [operations.social_calendar_date_event_parse_nip52]
   1393 domain = "social"
   1394 id = "social.calendar_date_event.parse_nip52"
   1395 stability = "beta"
   1396 inputs = ["u32", "NostrTags", "String"]
   1397 outputs = ["ParsedNip52CalendarDateEvent"]
   1398 error_class = "parse_error"
   1399 deterministic = true
   1400 signing = "none"
   1401 transport = "none"
   1402 
   1403 [operations.social_calendar_date_event_parse_nip52.implementation]
   1404 rust_modules = [
   1405   "crates/event/src/calendar.rs",
   1406   "crates/event_codec/src/calendar/decode.rs",
   1407 ]
   1408 rust_types = [
   1409   "radroots_event::calendar::CalendarDate",
   1410   "radroots_event::calendar::CalendarRequest",
   1411   "radroots_event::calendar::CalendarUri",
   1412   "radroots_event::calendar::ParsedNip52CalendarCommon",
   1413   "radroots_event::calendar::ParsedNip52CalendarCommonParts",
   1414   "radroots_event::calendar::ParsedNip52CalendarDateEvent",
   1415   "radroots_event_codec::error::EventParseError",
   1416 ]
   1417 
   1418 [operations.social_calendar_date_event_parse_nip52.conformance]
   1419 vector = "contracts/conformance/vectors/calendar/nip52_baseline.v1.json"
   1420 
   1421 [operations.social_calendar_date_event_admit_radroots_profile]
   1422 domain = "social"
   1423 id = "social.calendar_date_event.admit_radroots_profile"
   1424 stability = "beta"
   1425 inputs = ["ParsedNip52CalendarDateEvent"]
   1426 outputs = ["AdmittedCalendarDateEvent"]
   1427 error_class = "admission_error"
   1428 deterministic = true
   1429 signing = "none"
   1430 transport = "none"
   1431 
   1432 [operations.social_calendar_date_event_admit_radroots_profile.implementation]
   1433 rust_modules = [
   1434   "crates/event/src/calendar.rs",
   1435   "crates/event_codec/src/calendar/decode.rs",
   1436 ]
   1437 rust_types = [
   1438   "radroots_event::calendar::AdmittedCalendarDateEvent",
   1439   "radroots_event::calendar::CalendarAdmissionError",
   1440   "radroots_event::calendar::ParsedNip52CalendarDateEvent",
   1441 ]
   1442 
   1443 [operations.social_calendar_date_event_admit_radroots_profile.conformance]
   1444 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1445 
   1446 [operations.social_calendar_time_event_build_authored_draft]
   1447 domain = "social"
   1448 id = "social.calendar_time_event.build_authored_draft"
   1449 stability = "beta"
   1450 inputs = ["AuthoredCalendarTimeEvent"]
   1451 outputs = ["Nip01EventWireParts"]
   1452 error_class = "encode_error"
   1453 deterministic = true
   1454 signing = "none"
   1455 transport = "none"
   1456 
   1457 [operations.social_calendar_time_event_build_authored_draft.implementation]
   1458 rust_modules = [
   1459   "crates/event/src/calendar.rs",
   1460   "crates/event/src/media.rs",
   1461   "crates/event_codec/src/calendar/encode.rs",
   1462 ]
   1463 rust_types = [
   1464   "radroots_event::calendar::AuthoredCalendarTimeEvent",
   1465   "radroots_event::calendar::CalendarEventError",
   1466   "radroots_event::calendar::IanaTimeZoneId",
   1467   "radroots_event::media::AuthoredImage",
   1468   "radroots_event::wire::Nip01EventWireParts",
   1469   "radroots_event_codec::error::EventEncodeError",
   1470 ]
   1471 
   1472 [operations.social_calendar_time_event_build_authored_draft.conformance]
   1473 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1474 
   1475 [operations.social_calendar_time_event_parse_nip52]
   1476 domain = "social"
   1477 id = "social.calendar_time_event.parse_nip52"
   1478 stability = "beta"
   1479 inputs = ["u32", "NostrTags", "String"]
   1480 outputs = ["ParsedNip52CalendarTimeEvent"]
   1481 error_class = "parse_error"
   1482 deterministic = true
   1483 signing = "none"
   1484 transport = "none"
   1485 
   1486 [operations.social_calendar_time_event_parse_nip52.implementation]
   1487 rust_modules = [
   1488   "crates/event/src/calendar.rs",
   1489   "crates/event_codec/src/calendar/decode.rs",
   1490 ]
   1491 rust_types = [
   1492   "radroots_event::calendar::CalendarRequest",
   1493   "radroots_event::calendar::CalendarUri",
   1494   "radroots_event::calendar::IanaTimeZoneId",
   1495   "radroots_event::calendar::ObservedUtcDay",
   1496   "radroots_event::calendar::ParsedNip52CalendarCommon",
   1497   "radroots_event::calendar::ParsedNip52CalendarCommonParts",
   1498   "radroots_event::calendar::ParsedNip52CalendarTimeEvent",
   1499   "radroots_event_codec::error::EventParseError",
   1500 ]
   1501 
   1502 [operations.social_calendar_time_event_parse_nip52.conformance]
   1503 vector = "contracts/conformance/vectors/calendar/nip52_baseline.v1.json"
   1504 
   1505 [operations.social_calendar_time_event_admit_radroots_profile]
   1506 domain = "social"
   1507 id = "social.calendar_time_event.admit_radroots_profile"
   1508 stability = "beta"
   1509 inputs = ["ParsedNip52CalendarTimeEvent"]
   1510 outputs = ["AdmittedCalendarTimeEvent"]
   1511 error_class = "admission_error"
   1512 deterministic = true
   1513 signing = "none"
   1514 transport = "none"
   1515 
   1516 [operations.social_calendar_time_event_admit_radroots_profile.implementation]
   1517 rust_modules = [
   1518   "crates/event/src/calendar.rs",
   1519   "crates/event_codec/src/calendar/decode.rs",
   1520 ]
   1521 rust_types = [
   1522   "radroots_event::calendar::AdmittedCalendarTimeEvent",
   1523   "radroots_event::calendar::CalendarAdmissionError",
   1524   "radroots_event::calendar::ParsedNip52CalendarTimeEvent",
   1525 ]
   1526 
   1527 [operations.social_calendar_time_event_admit_radroots_profile.conformance]
   1528 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1529 
   1530 [operations.social_calendar_build_authored_draft]
   1531 domain = "social"
   1532 id = "social.calendar.build_authored_draft"
   1533 stability = "beta"
   1534 inputs = ["AuthoredCalendar"]
   1535 outputs = ["Nip01EventWireParts"]
   1536 error_class = "encode_error"
   1537 deterministic = true
   1538 signing = "none"
   1539 transport = "none"
   1540 
   1541 [operations.social_calendar_build_authored_draft.implementation]
   1542 rust_modules = [
   1543   "crates/event/src/calendar.rs",
   1544   "crates/event/src/media.rs",
   1545   "crates/event_codec/src/calendar/encode.rs",
   1546 ]
   1547 rust_types = [
   1548   "radroots_event::calendar::AuthoredCalendar",
   1549   "radroots_event::calendar::CalendarEventError",
   1550   "radroots_event::calendar::CalendarEventReference",
   1551   "radroots_event::calendar::CalendarUid",
   1552   "radroots_event::media::AuthoredImage",
   1553   "radroots_event::wire::Nip01EventWireParts",
   1554   "radroots_event_codec::error::EventEncodeError",
   1555 ]
   1556 
   1557 [operations.social_calendar_build_authored_draft.conformance]
   1558 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1559 
   1560 [operations.social_calendar_parse_nip52]
   1561 domain = "social"
   1562 id = "social.calendar.parse_nip52"
   1563 stability = "beta"
   1564 inputs = ["u32", "NostrTags", "String"]
   1565 outputs = ["ParsedNip52Calendar"]
   1566 error_class = "parse_error"
   1567 deterministic = true
   1568 signing = "none"
   1569 transport = "none"
   1570 
   1571 [operations.social_calendar_parse_nip52.implementation]
   1572 rust_modules = [
   1573   "crates/event/src/calendar.rs",
   1574   "crates/event_codec/src/calendar/decode.rs",
   1575 ]
   1576 rust_types = [
   1577   "radroots_event::calendar::CalendarEventError",
   1578   "radroots_event::calendar::CalendarEventReference",
   1579   "radroots_event::calendar::CalendarUri",
   1580   "radroots_event::calendar::ParsedNip52Calendar",
   1581   "radroots_event::calendar::ParsedNip52CalendarParts",
   1582   "radroots_event_codec::error::EventParseError",
   1583 ]
   1584 
   1585 [operations.social_calendar_parse_nip52.conformance]
   1586 vector = "contracts/conformance/vectors/calendar/nip52_baseline.v1.json"
   1587 
   1588 [operations.social_calendar_admit_radroots_profile]
   1589 domain = "social"
   1590 id = "social.calendar.admit_radroots_profile"
   1591 stability = "beta"
   1592 inputs = ["ParsedNip52Calendar"]
   1593 outputs = ["AdmittedCalendar"]
   1594 error_class = "admission_error"
   1595 deterministic = true
   1596 signing = "none"
   1597 transport = "none"
   1598 
   1599 [operations.social_calendar_admit_radroots_profile.implementation]
   1600 rust_modules = [
   1601   "crates/event/src/calendar.rs",
   1602   "crates/event_codec/src/calendar/decode.rs",
   1603 ]
   1604 rust_types = [
   1605   "radroots_blossom::BlobUrl",
   1606   "radroots_event::calendar::AdmittedCalendar",
   1607   "radroots_event::calendar::CalendarAdmissionError",
   1608   "radroots_event::calendar::CalendarEventReference",
   1609   "radroots_event::calendar::CalendarUid",
   1610   "radroots_event::calendar::ParsedNip52Calendar",
   1611 ]
   1612 
   1613 [operations.social_calendar_admit_radroots_profile.conformance]
   1614 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1615 
   1616 [operations.social_calendar_rsvp_build_authored_draft]
   1617 domain = "social"
   1618 id = "social.calendar_rsvp.build_authored_draft"
   1619 stability = "beta"
   1620 inputs = ["AuthoredCalendarEventRsvp"]
   1621 outputs = ["Nip01EventWireParts"]
   1622 error_class = "encode_error"
   1623 deterministic = true
   1624 signing = "none"
   1625 transport = "none"
   1626 
   1627 [operations.social_calendar_rsvp_build_authored_draft.implementation]
   1628 rust_modules = [
   1629   "crates/event/src/calendar.rs",
   1630   "crates/event_codec/src/calendar/encode.rs",
   1631 ]
   1632 rust_types = [
   1633   "radroots_event::calendar::AuthoredCalendarEventRsvp",
   1634   "radroots_event::calendar::CalendarEventAuthorReference",
   1635   "radroots_event::calendar::CalendarEventError",
   1636   "radroots_event::calendar::CalendarEventReference",
   1637   "radroots_event::calendar::CalendarEventRevisionReference",
   1638   "radroots_event::calendar::CalendarUid",
   1639   "radroots_event::calendar::CalendarEventFreeBusy",
   1640   "radroots_event::calendar::CalendarEventRsvpStatus",
   1641   "radroots_event::wire::Nip01EventWireParts",
   1642   "radroots_event_codec::error::EventEncodeError",
   1643 ]
   1644 
   1645 [operations.social_calendar_rsvp_build_authored_draft.conformance]
   1646 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1647 
   1648 [operations.social_calendar_rsvp_parse_nip52]
   1649 domain = "social"
   1650 id = "social.calendar_rsvp.parse_nip52"
   1651 stability = "beta"
   1652 inputs = ["u32", "NostrTags", "String"]
   1653 outputs = ["ParsedNip52CalendarEventRsvp"]
   1654 error_class = "parse_error"
   1655 deterministic = true
   1656 signing = "none"
   1657 transport = "none"
   1658 
   1659 [operations.social_calendar_rsvp_parse_nip52.implementation]
   1660 rust_modules = [
   1661   "crates/event/src/calendar.rs",
   1662   "crates/event_codec/src/calendar/decode.rs",
   1663 ]
   1664 rust_types = [
   1665   "radroots_event::calendar::CalendarEventAuthorReference",
   1666   "radroots_event::calendar::CalendarEventError",
   1667   "radroots_event::calendar::CalendarEventReference",
   1668   "radroots_event::calendar::CalendarEventRevisionReference",
   1669   "radroots_event::calendar::ParsedNip52CalendarEventRsvp",
   1670   "radroots_event::calendar::ParsedNip52CalendarEventRsvpParts",
   1671   "radroots_event::calendar::CalendarEventFreeBusy",
   1672   "radroots_event::calendar::CalendarEventRsvpStatus",
   1673   "radroots_event_codec::error::EventParseError",
   1674 ]
   1675 
   1676 [operations.social_calendar_rsvp_parse_nip52.conformance]
   1677 vector = "contracts/conformance/vectors/calendar/nip52_baseline.v1.json"
   1678 
   1679 [operations.social_calendar_rsvp_admit_radroots_profile]
   1680 domain = "social"
   1681 id = "social.calendar_rsvp.admit_radroots_profile"
   1682 stability = "beta"
   1683 inputs = ["ParsedNip52CalendarEventRsvp"]
   1684 outputs = ["AdmittedCalendarEventRsvp"]
   1685 error_class = "admission_error"
   1686 deterministic = true
   1687 signing = "none"
   1688 transport = "none"
   1689 
   1690 [operations.social_calendar_rsvp_admit_radroots_profile.implementation]
   1691 rust_modules = [
   1692   "crates/event/src/calendar.rs",
   1693   "crates/event_codec/src/calendar/decode.rs",
   1694 ]
   1695 rust_types = [
   1696   "radroots_event::calendar::AdmittedCalendarEventRsvp",
   1697   "radroots_event::calendar::CalendarAdmissionError",
   1698   "radroots_event::calendar::CalendarEventAuthorReference",
   1699   "radroots_event::calendar::CalendarEventReference",
   1700   "radroots_event::calendar::CalendarEventRevisionReference",
   1701   "radroots_event::calendar::CalendarUid",
   1702   "radroots_event::calendar::ParsedNip52CalendarEventRsvp",
   1703   "radroots_event::calendar::CalendarEventFreeBusy",
   1704   "radroots_event::calendar::CalendarEventRsvpStatus",
   1705 ]
   1706 
   1707 [operations.social_calendar_rsvp_admit_radroots_profile.conformance]
   1708 vector = "contracts/conformance/vectors/calendar/radroots_profile.v1.json"
   1709 
   1710 [operations.trade_canonicalize_mutation]
   1711 domain = "trade"
   1712 id = "trade.canonicalize_mutation"
   1713 stability = "beta"
   1714 inputs = ["TradeMutationEnvelopeV1"]
   1715 outputs = ["TradeCanonicalMutationV1"]
   1716 error_class = "encode_error"
   1717 deterministic = true
   1718 signing = "native"
   1719 transport = "native"
   1720 
   1721 [operations.trade_canonicalize_mutation.implementation]
   1722 rust_modules = ["crates/event/src/trade.rs"]
   1723 rust_types = [
   1724   "radroots_event::trade::TradeCanonicalMutationV1",
   1725   "radroots_event::trade::TradeMutationEnvelopeV1",
   1726 ]
   1727 
   1728 [operations.trade_canonicalize_mutation.conformance]
   1729 vector = "contracts/conformance/vectors/trade/canonicalize_mutation.v1.json"
   1730 
   1731 [operations.trade_build_mutation_event]
   1732 domain = "trade"
   1733 id = "trade.build_mutation_event"
   1734 stability = "beta"
   1735 inputs = ["TradeMutationEnvelopeV1"]
   1736 outputs = ["Nip01EventWireParts"]
   1737 error_class = "encode_error"
   1738 deterministic = true
   1739 signing = "native"
   1740 transport = "native"
   1741 
   1742 [operations.trade_build_mutation_event.implementation]
   1743 rust_modules = ["crates/event_codec/src/trade/mod.rs"]
   1744 rust_types = ["radroots_event::trade::TradeMutationEnvelopeV1"]
   1745 
   1746 [operations.trade_build_mutation_event.conformance]
   1747 vector = "contracts/conformance/vectors/trade/build_mutation_event.v1.json"
   1748 
   1749 [operations.trade_parse_mutation_event]
   1750 domain = "trade"
   1751 id = "trade.parse_mutation_event"
   1752 stability = "beta"
   1753 inputs = ["EventEnvelope"]
   1754 outputs = ["TradeMutationEnvelopeV1"]
   1755 error_class = "parse_error"
   1756 deterministic = true
   1757 signing = "native"
   1758 transport = "native"
   1759 
   1760 [operations.trade_parse_mutation_event.implementation]
   1761 rust_modules = ["crates/event_codec/src/trade/mod.rs"]
   1762 rust_types = [
   1763   "radroots_event::envelope::EventEnvelope",
   1764   "radroots_event::trade::TradeMutationEnvelopeV1",
   1765 ]
   1766 
   1767 [operations.trade_parse_mutation_event.conformance]
   1768 vector = "contracts/conformance/vectors/trade/parse_mutation_event.v1.json"
   1769 
   1770 [operations.trade_reduce_records]
   1771 domain = "trade"
   1772 id = "trade.reduce_records"
   1773 stability = "beta"
   1774 inputs = ["RadrootsTradeReductionInputV1"]
   1775 outputs = ["RadrootsTradeProjectionV1"]
   1776 error_class = "validation_error"
   1777 deterministic = true
   1778 signing = "native"
   1779 transport = "native"
   1780 
   1781 [operations.trade_reduce_records.implementation]
   1782 rust_modules = [
   1783   "crates/trade/src/reducer.rs",
   1784   "crates/trade/src/reducer_impl.rs",
   1785 ]
   1786 rust_types = [
   1787   "radroots_trade::reducer::RadrootsTradeReductionInputV1",
   1788   "radroots_trade::model::RadrootsTradeProjectionV1",
   1789 ]
   1790 
   1791 [operations.trade_reduce_records.conformance]
   1792 vector = "contracts/conformance/vectors/trade/reduce_records.v1.json"
   1793 
   1794 [operations.trade_prepare_workflow]
   1795 domain = "trade"
   1796 id = "trade.prepare_workflow"
   1797 stability = "beta"
   1798 inputs = ["TradeMutationEnvelopeV1"]
   1799 outputs = ["WorkflowPlan"]
   1800 error_class = "validation_error"
   1801 deterministic = true
   1802 signing = "none"
   1803 transport = "none"
   1804 
   1805 [operations.trade_prepare_workflow.implementation]
   1806 rust_modules = ["crates/trade/src/workflow.rs"]
   1807 rust_types = [
   1808   "radroots_trade::workflow::Error",
   1809   "radroots_trade::workflow::WorkflowPlan",
   1810 ]
   1811 
   1812 [operations.trade_prepare_workflow.conformance]
   1813 vector = "contracts/conformance/vectors/trade/prepare_workflow.v1.json"
   1814 case_kinds = ["trade.prepare_workflow.valid", "trade.prepare_workflow.invalid"]
   1815 
   1816 [operations.knowledge_contract_manifest_json]
   1817 domain = "knowledge"
   1818 id = "knowledge.contract_manifest_json"
   1819 stability = "beta"
   1820 inputs = ["RadrootsEventContractRegistry"]
   1821 outputs = ["RadrootsKnowledgeContractManifest", "ManifestSha256"]
   1822 error_class = "encode_error"
   1823 deterministic = true
   1824 signing = "native"
   1825 transport = "native"
   1826 
   1827 [operations.knowledge_contract_manifest_json.implementation]
   1828 rust_modules = ["crates/event_codec/src/manifest.rs"]
   1829 rust_types = [
   1830   "radroots_event_codec::manifest::RadrootsKnowledgeContractManifest",
   1831 ]
   1832 
   1833 [operations.knowledge_contract_manifest_json.conformance]
   1834 vector = "contracts/conformance/vectors/knowledge/manifest_and_decode.v1.json"
   1835 
   1836 [operations.knowledge_verify_and_decode_event]
   1837 domain = "knowledge"
   1838 id = "knowledge.verify_and_decode_event"
   1839 stability = "beta"
   1840 inputs = ["EventEnvelope"]
   1841 outputs = ["RadrootsDecodedEvent"]
   1842 error_class = "decode_error"
   1843 deterministic = true
   1844 signing = "nip01"
   1845 transport = "native"
   1846 
   1847 [operations.knowledge_verify_and_decode_event.implementation]
   1848 rust_modules = [
   1849   "crates/event_codec/src/verification.rs",
   1850   "crates/event_codec/src/knowledge/verification.rs",
   1851   "crates/event_codec/src/knowledge/decode.rs",
   1852 ]
   1853 rust_types = [
   1854   "radroots_event::envelope::EventEnvelope",
   1855   "radroots_event_codec::verify::RadrootsDecodedEvent",
   1856 ]
   1857 
   1858 [operations.knowledge_verify_and_decode_event.conformance]
   1859 vector = "contracts/conformance/vectors/knowledge/manifest_and_decode.v1.json"