Machine contract · @ipproto/schemas

Schemas

The complete message surface as 61 JSON Schemas — draft 2020-12, version-pinned URN identities, a reference validator, and generated TypeScript types. The contract is machine-enforceable end to end.


Conventions

How the package is shaped

Validate an emission in one call

A resolver or converter validates its whole output against urn:ipproto:schema:0.5:resolvedAsset, which composes the Asset Reference and its Resolution Provenance. Conformant output is checkable, not asserted.


Foundational structures · 16

The shared vocabulary

urn:ipproto:schema:0.5:commonEnvelopeCommon Envelope
urn:ipproto:schema:0.5:actorReferenceActor Reference
urn:ipproto:schema:0.5:actorRoleDeclarationActor Role Declaration
urn:ipproto:schema:0.5:agreedPriceAgreed Price
urn:ipproto:schema:0.5:assetReferenceAsset Reference
urn:ipproto:schema:0.5:authorityClaimAuthority Claim
urn:ipproto:schema:0.5:dataAssertionData Assertion
urn:ipproto:schema:0.5:documentReferenceDocument Reference
urn:ipproto:schema:0.5:entityReferenceEntity Reference
urn:ipproto:schema:0.5:evidenceCollectionEvidence Collection
urn:ipproto:schema:0.5:milestoneMilestone
urn:ipproto:schema:0.5:outcomeDetailsOutcome Details
urn:ipproto:schema:0.5:resolutionProvenanceResolution Provenance
urn:ipproto:schema:0.5:resolvedAssetResolved Asset
urn:ipproto:schema:0.5:serviceLevelService Level
urn:ipproto:schema:0.5:userContextUser Context
urn:ipproto:schema:0.5:workstreamWorkstream

Plus defs — shared definitions (URIs, money, ST.3 / ST.16 code types, JSON Pointer, the prospective right).


Messages · 43

The full message surface

urn:ipproto:schema:0.5:assetBootstrapAsset Bootstrap
urn:ipproto:schema:0.5:assetMatchInquiryAsset Match Inquiry
urn:ipproto:schema:0.5:assetMatchResponseAsset Match Response
urn:ipproto:schema:0.5:workRequestedWork Requested
urn:ipproto:schema:0.5:requestDeclinedRequest Declined
urn:ipproto:schema:0.5:goalDecompositionGoal Decomposition
urn:ipproto:schema:0.5:orchestrationCommittedOrchestration Committed
urn:ipproto:schema:0.5:workstreamCompletedWorkstream Completed
urn:ipproto:schema:0.5:workstreamAbandonedWorkstream Abandoned
urn:ipproto:schema:0.5:milestoneStartedMilestone Started
urn:ipproto:schema:0.5:milestoneCompletedMilestone Completed
urn:ipproto:schema:0.5:milestoneFailedMilestone Failed
urn:ipproto:schema:0.5:milestoneAbandonedMilestone Abandoned
urn:ipproto:schema:0.5:workInstructionWork Instruction
urn:ipproto:schema:0.5:instructionAcceptedInstruction Accepted
urn:ipproto:schema:0.5:instructionDeclinedInstruction Declined
urn:ipproto:schema:0.5:bidInvitationBid Invitation
urn:ipproto:schema:0.5:conflictCheckAttestedConflict Check Attested
urn:ipproto:schema:0.5:requesterDisclosedRequester Disclosed
urn:ipproto:schema:0.5:bidSubmittedBid Submitted
urn:ipproto:schema:0.5:bidWithdrawnBid Withdrawn
urn:ipproto:schema:0.5:bidDeclinedBid Declined
urn:ipproto:schema:0.5:awardProposedAward Proposed
urn:ipproto:schema:0.5:awardConfirmedAward Confirmed
urn:ipproto:schema:0.5:awardDeclinedAward Declined
urn:ipproto:schema:0.5:serviceDeliverableService Deliverable
urn:ipproto:schema:0.5:deliverableAcknowledgedDeliverable Acknowledged
urn:ipproto:schema:0.5:artifactReadyArtifact Ready
urn:ipproto:schema:0.5:clientActionCompletedClient Action Completed
urn:ipproto:schema:0.5:paymentAuthorizedPayment Authorized
urn:ipproto:schema:0.5:paymentExecutedPayment Executed
urn:ipproto:schema:0.5:invoiceIssuedInvoice Issued
urn:ipproto:schema:0.5:invoiceDisputedInvoice Disputed
urn:ipproto:schema:0.5:invoiceCancelledInvoice Cancelled
urn:ipproto:schema:0.5:serviceSubscriptionStartedService Subscription Started
urn:ipproto:schema:0.5:serviceSubscriptionTerminatedService Subscription Terminated
urn:ipproto:schema:0.5:registerEventRegister Event
urn:ipproto:schema:0.5:serviceFindingService Finding
urn:ipproto:schema:0.5:assetAuthorityDisputeAsset Authority Dispute
urn:ipproto:schema:0.5:actionConfirmationDisputeAction Confirmation Dispute
urn:ipproto:schema:0.5:identityResolutionDisputeIdentity Resolution Dispute
urn:ipproto:schema:0.5:disputeResolutionDecisionDispute Resolution Decision
urn:ipproto:schema:0.5:recordUpdateRecord Update

Using the package

Depend, don't fork

Implementations depend on @ipproto/schemas and adopt the standard's shapes as their domain model, validating in CI. Extensions go through namespaced custom values, never forks of the schemas — so every implementation stays interoperable and the contract cannot drift.

import Ajv2020 from "ajv/dist/2020.js";
// load every schema in index.json, then:
const validate = ajv.getSchema("urn:ipproto:schema:0.5:resolvedAsset");
if (!validate(emission)) throw new Error("non-conformant output");