Skip to main content

stack_ids/
ids.rs

1//! Opaque ID newtypes for cross-crate identity.
2//!
3//! Each newtype wraps a `String` and is intentionally opaque — callers
4//! should not parse the inner value. IDs are assigned by their respective
5//! authority crates; `stack-ids` only provides the type contract.
6
7use schemars::JsonSchema;
8use serde::{Deserialize, Serialize};
9use std::str::FromStr;
10
11/// Macro to generate an opaque string-wrapper ID type with standard impls.
12macro_rules! define_id {
13    (
14        $(#[$meta:meta])*
15        $name:ident
16    ) => {
17        $(#[$meta])*
18        #[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize, JsonSchema)]
19        #[serde(transparent)]
20        pub struct $name(pub String);
21
22        impl $name {
23            /// Create from any string-like value.
24            pub fn new(value: impl Into<String>) -> Self {
25                Self(value.into())
26            }
27
28            /// Generate a new random UUID v4 ID.
29            pub fn generate() -> Self {
30                Self(uuid::Uuid::new_v4().to_string())
31            }
32
33            /// Borrow as a string slice.
34            pub fn as_str(&self) -> &str {
35                &self.0
36            }
37
38            /// Returns true if the inner string is empty.
39            pub fn is_empty(&self) -> bool {
40                self.0.is_empty()
41            }
42        }
43
44        impl std::fmt::Display for $name {
45            fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
46                f.write_str(&self.0)
47            }
48        }
49
50        impl From<String> for $name {
51            fn from(value: String) -> Self {
52                Self(value)
53            }
54        }
55
56        impl From<&str> for $name {
57            fn from(value: &str) -> Self {
58                Self(value.to_string())
59            }
60        }
61
62        impl AsRef<str> for $name {
63            fn as_ref(&self) -> &str {
64                &self.0
65            }
66        }
67
68        impl FromStr for $name {
69            type Err = std::convert::Infallible;
70
71            fn from_str(value: &str) -> Result<Self, Self::Err> {
72                Ok(Self::new(value))
73            }
74        }
75    };
76}
77
78define_id!(
79    /// Opaque identifier for an import/export envelope.
80    ///
81    /// Assigned by the exporting authority (e.g. Forge). Stable across
82    /// re-exports of the same logical unit.
83    EnvelopeId
84);
85
86define_id!(
87    /// Opaque identifier for a claim (knowledge assertion).
88    ///
89    /// Assigned by the projection importer. Stable within a claim lineage.
90    ClaimId
91);
92
93define_id!(
94    /// Opaque identifier for a specific version of a claim.
95    ///
96    /// Each mutation to a claim's validity, status, or content produces
97    /// a new version with a new `ClaimVersionId`. The `ClaimId` remains
98    /// stable across versions.
99    ClaimVersionId
100);
101
102define_id!(
103    /// Opaque identifier for an entity (person, concept, code unit, etc.).
104    ///
105    /// The inner string is intentionally unstructured. Use domain-specific
106    /// constructors to create these (e.g. code_entity_id).
107    EntityId
108);
109
110define_id!(
111    /// Opaque identifier for an episode (causal record).
112    ///
113    /// Assigned by the episode creator. Stable within the episode's lifecycle.
114    EpisodeId
115);
116
117define_id!(
118    /// Opaque identifier for a logical retry family within one retry-owner boundary.
119    ///
120    /// One `AttemptId` exists per logical retry family. Retries inside that
121    /// boundary produce new `TrialId`s, NOT new `AttemptId`s. A new `AttemptId`
122    /// is created only when the retry owner changes (e.g. node-level retry
123    /// after transport retries are exhausted) or on explicit replay/re-enqueue.
124    AttemptId
125);
126
127define_id!(
128    /// Opaque identifier for a concrete execution within a logical retry family.
129    ///
130    /// Every retry within one owner boundary creates a new `TrialId` under
131    /// the same `AttemptId`. Each `TrialId` is globally unique (UUID v4).
132    TrialId
133);
134
135define_id!(
136    /// Opaque identifier for a stored artifact (patch, snapshot, file).
137    ///
138    /// Assigned by the artifact store. Stable across reads.
139    ArtifactId
140);
141
142define_id!(
143    /// Opaque identifier for a projection instance.
144    ///
145    /// Identifies a specific derived view (entity registry entry, temporal
146    /// claim set, etc.) within a scope.
147    ProjectionId
148);
149
150define_id!(
151    /// Opaque identifier for a relation (edge between entities).
152    ///
153    /// Assigned by the projection importer. Stable within a relation lineage.
154    /// Each mutation produces a new `RelationVersionId` under the same `RelationId`.
155    RelationId
156);
157
158define_id!(
159    /// Opaque identifier for a relation version.
160    ///
161    /// Each mutation to a relation produces a new version with a new
162    /// `RelationVersionId`. The `RelationId` remains stable across versions.
163    RelationVersionId
164);
165
166define_id!(
167    /// Opaque identifier for an import batch produced by the bridge.
168    ///
169    /// Assigned by the bridge transformation pipeline. Unique per batch.
170    ImportBatchId
171);
172
173define_id!(
174    /// Opaque identifier for a claim family spanning multiple claim versions.
175    ///
176    /// Assigned by the authoritative exporter when version lineage is known.
177    ClaimFamilyId
178);
179
180define_id!(
181    /// Opaque identifier for a higher-order assertion group.
182    ///
183    /// Used to preserve joint assertion meaning across export, bridge, and
184    /// deterministic compilation. The bridge preserves it; it does not invent it.
185    AssertionGroupId
186);
187
188define_id!(
189    /// Opaque identifier for a relation group exported by the authority.
190    ///
191    /// Relation groups allow the compiler to recover hyperedge structure without
192    /// flattening upstream semantics into pairwise folklore.
193    RelationGroupId
194);
195
196define_id!(
197    /// Opaque identifier for a joint evidence group.
198    ///
199    /// Used to tie multiple observations or assertions to a shared evidence basis.
200    JointEvidenceGroupId
201);
202
203define_id!(
204    /// Opaque identifier for a contradiction candidate group.
205    ///
206    /// Assigned upstream when the exporting authority exposes contradiction seed
207    /// structure. Kernel/runtime layers must not synthesize it from absence.
208    ContradictionGroupId
209);
210
211define_id!(
212    /// Opaque identifier for a mutual exclusion or constraint seed group.
213    ConstraintGroupId
214);
215
216define_id!(
217    /// Opaque identifier for a recursive kernel run.
218    ///
219    /// Assigned by the kernel execution layer for one bounded, rebuildable run.
220    KernelRunId
221);
222
223define_id!(
224    /// Opaque identifier for a compiled constraint unit.
225    ConstraintId
226);
227
228define_id!(
229    /// Opaque identifier for a compiled hyperedge recovered from upstream grouping semantics.
230    HyperedgeId
231);
232
233define_id!(
234    /// Opaque identifier for a residual artifact emitted by bounded execution.
235    ResidualId
236);
237
238define_id!(
239    /// Opaque identifier for a stable syndrome signature emitted by the kernel.
240    SyndromeId
241);
242
243define_id!(
244    /// Opaque identifier for a witness artifact produced by execution or oracles.
245    WitnessId
246);
247
248define_id!(
249    /// Opaque identifier for a certificate artifact produced by execution or oracles.
250    CertificateId
251);
252
253define_id!(
254    /// Opaque identifier for a bounded oracle slice definition.
255    OracleSliceId
256);
257
258define_id!(
259    /// Opaque identifier for a bounded execution region.
260    RegionId
261);
262
263define_id!(
264    /// Opaque identifier for a stable digest of one bounded execution region.
265    RegionDigestId
266);
267
268define_id!(
269    /// Opaque identifier for a typed artifact transport crossing region boundaries.
270    ArtifactTransportId
271);
272
273define_id!(
274    /// Opaque identifier for syndrome-first repair routing.
275    RepairRouteId
276);
277
278define_id!(
279    /// Opaque identifier for one ranked local repair candidate.
280    RepairCandidateId
281);
282
283define_id!(
284    /// Opaque identifier for a nuisance-state artifact.
285    NuisanceStateId
286);
287
288define_id!(
289    /// Opaque identifier for a convergence-governance artifact.
290    ConvergenceReportId
291);
292
293define_id!(
294    /// Opaque identifier for a registered recursive operator contract.
295    OperatorId
296);
297
298define_id!(
299    /// Opaque identifier for a specific version of a registered operator contract.
300    ///
301    /// `OperatorId` stays stable across versions; `OperatorVersionId` changes when
302    /// the executable contract or policy-relevant operator surface changes.
303    OperatorVersionId
304);
305
306define_id!(
307    /// Opaque identifier for a structured refutation result artifact.
308    RefutationResultId
309);
310
311define_id!(
312    /// Opaque identifier for a structured calibration report artifact.
313    CalibrationReportId
314);
315
316define_id!(
317    /// Opaque identifier for a verification-control case.
318    VerificationCaseId
319);
320
321define_id!(
322    /// Opaque identifier for a canonical verification check plan.
323    CheckPlanId
324);
325
326define_id!(
327    /// Opaque identifier for a canonical control-plane receipt.
328    ControlReceiptId
329);
330
331define_id!(
332    /// Opaque identifier for an append-only verification ledger entry.
333    LedgerEntryId
334);
335
336define_id!(
337    /// Opaque identifier for a policy decision artifact.
338    PolicyDecisionId
339);
340
341define_id!(
342    /// Opaque identifier for a runtime execution permit.
343    ///
344    /// Minted only after policy, approval, and plan checks succeed for one
345    /// concrete execution surface.
346    ExecutionPermitId
347);
348
349define_id!(
350    /// Opaque identifier for an approval record artifact.
351    ApprovalRecordId
352);
353
354define_id!(
355    /// Opaque identifier for a typed constitutional approval grant.
356    ///
357    /// Grants carry scoped approval lineage for effectful tool dispatch.
358    ApprovalGrantId
359);
360
361define_id!(
362    /// Opaque identifier for a promotion decision artifact.
363    PromotionDecisionId
364);
365
366define_id!(
367    /// Opaque identifier for a refutation decision artifact.
368    RefutationDecisionId
369);
370
371define_id!(
372    /// Opaque identifier for a rollback plan artifact.
373    RollbackPlanId
374);
375
376define_id!(
377    /// Opaque identifier for a calibration snapshot artifact.
378    CalibrationSnapshotId
379);
380
381define_id!(
382    /// Opaque identifier for a versioned learning update artifact.
383    LearningUpdateId
384);
385
386define_id!(
387    /// Opaque identifier for a deterministic boundary repair record artifact.
388    BoundaryRepairRecordId
389);
390
391define_id!(
392    /// Opaque identifier for a semantics profile artifact.
393    SemanticsProfileId
394);
395
396define_id!(
397    /// Opaque identifier for a claim-state artifact.
398    ClaimStateId
399);
400
401define_id!(
402    /// Opaque identifier for a semantic diff artifact.
403    SemanticDiffId
404);
405
406define_id!(
407    /// Opaque identifier for a causal-attribution bundle artifact.
408    CausalAttributionBundleId
409);
410
411define_id!(
412    /// Opaque identifier for an explicit degradation record artifact.
413    DegradationRecordId
414);
415
416define_id!(
417    /// Opaque identifier for an exactness-budget artifact.
418    ExactnessBudgetId
419);
420
421define_id!(
422    /// Opaque identifier for one exported or imported support-set artifact.
423    ///
424    /// Stable for one snapshot of the support expression attached to a claim.
425    SupportSetId
426);
427
428define_id!(
429    /// Opaque identifier for one contradiction-witness artifact.
430    ///
431    /// Used to point at a stored explanation of why a claim is simultaneously
432    /// supported and refuted within one semantics profile.
433    ContradictionWitnessId
434);
435
436define_id!(
437    /// Opaque identifier for one retraction / supersession artifact.
438    ///
439    /// This identifies the transaction-time event that closes currentness for
440    /// a claim version without erasing historical visibility.
441    RetractionRecordId
442);
443
444define_id!(
445    /// Opaque identifier for an intervention bundle artifact.
446    InterventionId
447);
448
449define_id!(
450    /// Opaque identifier for an outcome-schema artifact.
451    OutcomeSchemaId
452);
453
454define_id!(
455    /// Opaque identifier for an experiment case artifact.
456    ExperimentCaseId
457);
458
459define_id!(
460    /// Opaque identifier for a cohort-contract artifact.
461    CohortContractId
462);
463
464define_id!(
465    /// Opaque identifier for a comparability-matrix artifact.
466    ComparabilityMatrixId
467);
468
469define_id!(
470    /// Opaque identifier for a counterfactual-slice artifact.
471    CounterfactualSliceId
472);
473
474define_id!(
475    /// Opaque identifier for a decision-trace artifact.
476    DecisionTraceId
477);
478
479define_id!(
480    /// Opaque identifier for a refuter-suite artifact.
481    RefuterSuiteId
482);
483
484define_id!(
485    /// Opaque identifier for a refuter-result artifact.
486    RefuterResultId
487);
488
489define_id!(
490    /// Opaque identifier for a rollout-decision artifact.
491    RolloutDecisionId
492);
493
494define_id!(
495    /// Opaque identifier for a rollback-decision artifact.
496    RollbackDecisionId
497);
498
499define_id!(
500    /// Opaque identifier for an experiment-budget artifact.
501    ExperimentBudgetId
502);
503
504define_id!(
505    /// Opaque identifier for an attestation-envelope artifact.
506    AttestationEnvelopeId
507);
508
509define_id!(
510    /// Opaque identifier for a trust-root-set artifact.
511    TrustRootSetId
512);
513
514define_id!(
515    /// Opaque identifier for an artifact-admission-policy artifact.
516    ArtifactAdmissionPolicyId
517);
518
519define_id!(
520    /// Opaque identifier for a transparency-receipt artifact.
521    TransparencyReceiptId
522);
523
524define_id!(
525    /// Opaque identifier for an attestation-revocation artifact.
526    AttestationRevocationId
527);
528
529define_id!(
530    /// Opaque identifier for an attestation-supersession artifact.
531    AttestationSupersessionId
532);
533
534define_id!(
535    /// Opaque identifier for a remote-oracle lease artifact.
536    RemoteOracleLeaseId
537);
538
539define_id!(
540    /// Opaque identifier for a remote-slice request artifact.
541    RemoteSliceRequestId
542);
543
544define_id!(
545    /// Opaque identifier for a remote-slice result artifact.
546    RemoteSliceResultId
547);
548
549define_id!(
550    /// Opaque identifier for a cross-runtime replay-ticket artifact.
551    CrossRuntimeReplayTicketId
552);
553
554define_id!(
555    /// Opaque identifier for a dispute-bundle artifact.
556    DisputeBundleId
557);
558
559define_id!(
560    /// Opaque identifier for a disclosure-policy artifact.
561    DisclosurePolicyId
562);
563
564define_id!(
565    /// Opaque identifier for a disclosure-budget artifact.
566    DisclosureBudgetId
567);
568
569define_id!(
570    /// Opaque identifier for a treaty bundle artifact.
571    TreatyBundleId
572);
573
574define_id!(
575    /// Opaque identifier for a runtime identity set artifact.
576    RuntimeIdentitySetId
577);
578
579define_id!(
580    /// Opaque identifier for a cross-runtime equivalence bundle artifact.
581    CrossRuntimeEquivalenceBundleId
582);
583
584define_id!(
585    /// Opaque identifier for a settlement case artifact.
586    SettlementCaseId
587);
588
589define_id!(
590    /// Opaque identifier for a shared disposition artifact.
591    SharedDispositionId
592);
593
594define_id!(
595    /// Opaque identifier for a local dissent record artifact.
596    LocalDissentId
597);
598
599define_id!(
600    /// Opaque identifier for a shared-view downgrade artifact.
601    SharedViewDowngradeId
602);
603
604define_id!(
605    /// Opaque identifier for a settlement receipt artifact.
606    SettlementReceiptId
607);
608
609define_id!(
610    /// Opaque identifier for a shared replay slice artifact.
611    SharedReplaySliceId
612);
613
614define_id!(
615    /// Opaque identifier for a shared divergence report artifact.
616    SharedDivergenceReportId
617);
618
619define_id!(
620    /// Opaque identifier for a treaty suspension artifact.
621    TreatySuspensionId
622);
623
624define_id!(
625    /// Opaque identifier for a mechanism bundle artifact.
626    MechanismBundleId
627);
628
629define_id!(
630    /// Opaque identifier for a theory version artifact.
631    TheoryVersionId
632);
633
634define_id!(
635    /// Opaque identifier for a theory library artifact.
636    TheoryLibraryId
637);
638
639define_id!(
640    /// Opaque identifier for a hypothesis library artifact.
641    HypothesisLibraryId
642);
643
644define_id!(
645    /// Opaque identifier for a simulation contract artifact.
646    SimulationContractId
647);
648
649define_id!(
650    /// Opaque identifier for a fit-run artifact.
651    FitRunId
652);
653
654define_id!(
655    /// Opaque identifier for a theory refuter suite artifact.
656    TheoryRefuterSuiteId
657);
658
659define_id!(
660    /// Opaque identifier for a rollout stability report artifact.
661    RolloutStabilityReportId
662);
663
664define_id!(
665    /// Opaque identifier for a discovery program artifact.
666    DiscoveryProgramId
667);
668
669define_id!(
670    /// Opaque identifier for a portfolio plan artifact.
671    PortfolioPlanId
672);
673
674define_id!(
675    /// Opaque identifier for an experiment campaign artifact.
676    ExperimentCampaignId
677);
678
679define_id!(
680    /// Opaque identifier for a campaign decision trace artifact.
681    CampaignDecisionTraceId
682);
683
684define_id!(
685    /// Opaque identifier for an information-value estimate artifact.
686    InformationValueEstimateId
687);
688
689define_id!(
690    /// Opaque identifier for a verification-load budget artifact.
691    VerificationLoadBudgetId
692);
693
694define_id!(
695    /// Opaque identifier for a charter bundle artifact.
696    CharterBundleId
697);
698
699define_id!(
700    /// Opaque identifier for a doctrine snapshot artifact.
701    DoctrineSnapshotId
702);
703
704define_id!(
705    /// Opaque identifier for an amendment proposal artifact.
706    AmendmentProposalId
707);
708
709define_id!(
710    /// Opaque identifier for an amendment decision artifact.
711    AmendmentDecisionId
712);
713
714define_id!(
715    /// Opaque identifier for an archive manifest artifact.
716    ArchiveManifestId
717);
718
719define_id!(
720    /// Opaque identifier for a compaction receipt artifact.
721    CompactionReceiptId
722);
723
724define_id!(
725    /// Opaque identifier for a historical query guarantee artifact.
726    HistoricalQueryGuaranteeId
727);
728
729define_id!(
730    /// Opaque identifier for a deprecation bundle artifact.
731    DeprecationBundleId
732);
733
734define_id!(
735    /// Opaque identifier for a retirement bundle artifact.
736    RetirementBundleId
737);
738
739define_id!(
740    /// Opaque identifier for a spec bundle artifact.
741    SpecBundleId
742);
743
744define_id!(
745    /// Opaque identifier for a normative AST artifact.
746    NormativeAstId
747);
748
749define_id!(
750    /// Opaque identifier for a generated schema bundle artifact.
751    GeneratedSchemaBundleId
752);
753
754define_id!(
755    /// Opaque identifier for a generated interpreter bundle artifact.
756    GeneratedInterpreterBundleId
757);
758
759define_id!(
760    /// Opaque identifier for a generated conformance corpus artifact.
761    GeneratedConformanceCorpusId
762);
763
764define_id!(
765    /// Opaque identifier for a generated migration plan artifact.
766    GeneratedMigrationPlanId
767);
768
769define_id!(
770    /// Opaque identifier for a proof-obligation set artifact.
771    ProofObligationSetId
772);
773
774define_id!(
775    /// Opaque identifier for a proof evaluation receipt artifact.
776    ProofEvaluationReceiptId
777);
778
779define_id!(
780    /// Opaque identifier for a human-veto bundle artifact.
781    HumanVetoBundleId
782);
783
784define_id!(
785    /// Opaque identifier for a meta-challenge bundle artifact.
786    MetaChallengeBundleId
787);
788
789define_id!(
790    /// Opaque identifier for a self-hosting build receipt artifact.
791    SelfHostingBuildReceiptId
792);
793
794define_id!(
795    /// Opaque identifier for an effect intent artifact.
796    EffectIntentId
797);
798
799define_id!(
800    /// Opaque identifier for an effect preflight report artifact.
801    EffectPreflightReportId
802);
803
804define_id!(
805    /// Opaque identifier for an effect execution window artifact.
806    EffectWindowId
807);
808
809define_id!(
810    /// Opaque identifier for an effect commit decision artifact.
811    EffectCommitDecisionId
812);
813
814define_id!(
815    /// Opaque identifier for an effect execution receipt artifact.
816    EffectExecutionReceiptId
817);
818
819define_id!(
820    /// Opaque identifier for an effect observation bundle artifact.
821    EffectObservationBundleId
822);
823
824define_id!(
825    /// Opaque identifier for a compensation plan artifact.
826    CompensationPlanId
827);
828
829define_id!(
830    /// Opaque identifier for a compensation execution receipt artifact.
831    CompensationExecutionReceiptId
832);
833
834define_id!(
835    /// Opaque identifier for an external effect ledger entry artifact.
836    ExternalEffectLedgerEntryId
837);
838
839define_id!(
840    /// Opaque identifier for a capability class artifact.
841    CapabilityClassId
842);
843
844define_id!(
845    /// Opaque identifier for an authority lease artifact.
846    AuthorityLeaseId
847);
848
849define_id!(
850    /// Opaque identifier for a delegation bundle artifact.
851    DelegationBundleId
852);
853
854define_id!(
855    /// Opaque identifier for an authority chain artifact.
856    AuthorityChainId
857);
858
859define_id!(
860    /// Opaque identifier for a separation-of-duties policy artifact.
861    SeparationOfDutiesPolicyId
862);
863
864define_id!(
865    /// Opaque identifier for a dual-control approval artifact.
866    DualControlApprovalId
867);
868
869define_id!(
870    /// Opaque identifier for a break-glass grant artifact.
871    BreakGlassGrantId
872);
873
874define_id!(
875    /// Opaque identifier for a delegation revocation artifact.
876    DelegationRevocationId
877);
878
879define_id!(
880    /// Opaque identifier for an acting-on-behalf receipt artifact.
881    ActingOnBehalfReceiptId
882);
883
884define_id!(
885    /// Opaque identifier for a conflict disclosure artifact.
886    ConflictDisclosureId
887);
888
889define_id!(
890    /// Opaque identifier for a deployment profile artifact.
891    DeploymentProfileId
892);
893
894define_id!(
895    /// Opaque identifier for an operating envelope artifact.
896    OperatingEnvelopeId
897);
898
899define_id!(
900    /// Opaque identifier for an assurance case artifact.
901    AssuranceCaseId
902);
903
904define_id!(
905    /// Opaque identifier for a hazard register artifact.
906    HazardRegisterId
907);
908
909define_id!(
910    /// Opaque identifier for a control mapping artifact.
911    ControlMappingId
912);
913
914define_id!(
915    /// Opaque identifier for a residual-risk acceptance artifact.
916    ResidualRiskAcceptanceId
917);
918
919define_id!(
920    /// Opaque identifier for a release-readiness decision artifact.
921    ReleaseReadinessDecisionId
922);
923
924define_id!(
925    /// Opaque identifier for a field monitoring plan artifact.
926    FieldMonitoringPlanId
927);
928
929define_id!(
930    /// Opaque identifier for a certification bundle artifact.
931    CertificationBundleId
932);
933
934define_id!(
935    /// Opaque identifier for a recertification trigger artifact.
936    RecertificationTriggerId
937);
938
939define_id!(
940    /// Opaque identifier for a service-level profile artifact.
941    ServiceLevelProfileId
942);
943
944define_id!(
945    /// Opaque identifier for an error-budget ledger artifact.
946    ErrorBudgetLedgerId
947);
948
949define_id!(
950    /// Opaque identifier for an incident case artifact.
951    IncidentCaseId
952);
953
954define_id!(
955    /// Opaque identifier for a containment decision artifact.
956    ContainmentDecisionId
957);
958
959define_id!(
960    /// Opaque identifier for a forensic freeze artifact.
961    ForensicFreezeId
962);
963
964define_id!(
965    /// Opaque identifier for a recovery plan artifact.
966    RecoveryPlanId
967);
968
969define_id!(
970    /// Opaque identifier for a recovery replay slice artifact.
971    RecoveryReplaySliceId
972);
973
974define_id!(
975    /// Opaque identifier for a bounded continuity exception artifact.
976    ContinuityExceptionId
977);
978
979define_id!(
980    /// Opaque identifier for a postmortem bundle artifact.
981    PostmortemBundleId
982);
983
984define_id!(
985    /// Opaque identifier for a resilience exercise artifact.
986    ResilienceExerciseId
987);
988
989define_id!(
990    /// Opaque identifier for an effect review case artifact.
991    EffectReviewCaseId
992);
993
994define_id!(
995    /// Opaque identifier for an effect block receipt artifact.
996    EffectBlockReceiptId
997);
998
999define_id!(
1000    /// Opaque identifier for a delegation review case artifact.
1001    DelegationReviewCaseId
1002);
1003
1004define_id!(
1005    /// Opaque identifier for a release gate case artifact.
1006    ReleaseGateCaseId
1007);
1008
1009define_id!(
1010    /// Opaque identifier for a continuity review case artifact.
1011    ContinuityReviewCaseId
1012);
1013
1014define_id!(
1015    /// Opaque identifier for an effect policy profile artifact.
1016    EffectPolicyProfileId
1017);
1018
1019define_id!(
1020    /// Opaque identifier for a delegation policy profile artifact.
1021    DelegationPolicyProfileId
1022);
1023
1024define_id!(
1025    /// Opaque identifier for a release policy profile artifact.
1026    ReleasePolicyProfileId
1027);
1028
1029define_id!(
1030    /// Opaque identifier for a continuity policy profile artifact.
1031    ContinuityPolicyProfileId
1032);
1033
1034define_id!(
1035    /// Opaque identifier for an effect adjudication receipt artifact.
1036    EffectAdjudicationReceiptId
1037);
1038
1039define_id!(
1040    /// Opaque identifier for a release rollback decision artifact.
1041    ReleaseRollbackDecisionId
1042);
1043
1044define_id!(
1045    /// Opaque identifier for a tool effect dispatch receipt artifact.
1046    ToolEffectDispatchReceiptId
1047);
1048
1049define_id!(
1050    /// Opaque identifier for a privacy/retention profile artifact.
1051    PrivacyRetentionProfileId
1052);
1053
1054define_id!(
1055    /// Opaque identifier for a redaction rule-set artifact.
1056    RedactionRuleSetId
1057);
1058
1059define_id!(
1060    /// Opaque identifier for an access-purpose matrix artifact.
1061    AccessPurposeMatrixId
1062);
1063
1064define_id!(
1065    /// Opaque identifier for an audit extraction policy artifact.
1066    AuditExtractionPolicyId
1067);
1068
1069define_id!(
1070    /// Opaque identifier for a residency policy profile artifact.
1071    ResidencyPolicyProfileId
1072);
1073
1074define_id!(
1075    /// Opaque identifier for a tenant-boundary profile artifact.
1076    TenantBoundaryProfileId
1077);
1078
1079define_id!(
1080    /// Opaque identifier for a cross-boundary transfer class artifact.
1081    CrossBoundaryTransferClassId
1082);
1083
1084define_id!(
1085    /// Opaque identifier for a locality exception artifact.
1086    LocalityExceptionId
1087);
1088
1089define_id!(
1090    /// Opaque identifier for a role catalog artifact.
1091    RoleCatalogId
1092);
1093
1094define_id!(
1095    /// Opaque identifier for a delegation matrix artifact.
1096    DelegationMatrixId
1097);
1098
1099define_id!(
1100    /// Opaque identifier for an approval matrix artifact.
1101    ApprovalMatrixId
1102);
1103
1104define_id!(
1105    /// Opaque identifier for a conflict-class catalog artifact.
1106    ConflictClassCatalogId
1107);
1108
1109define_id!(
1110    /// Opaque identifier for a regulatory-regime profile artifact.
1111    RegulatoryRegimeProfileId
1112);
1113
1114define_id!(
1115    /// Opaque identifier for a requirement-to-control map artifact.
1116    RequirementControlMapId
1117);
1118
1119define_id!(
1120    /// Opaque identifier for an evidence collection plan artifact.
1121    EvidenceCollectionPlanId
1122);
1123
1124define_id!(
1125    /// Opaque identifier for a recertification schedule artifact.
1126    RecertificationScheduleId
1127);
1128
1129define_id!(
1130    /// Opaque identifier for a hazard library artifact.
1131    HazardLibraryId
1132);
1133
1134define_id!(
1135    /// Opaque identifier for a hazard scenario artifact.
1136    HazardScenarioId
1137);
1138
1139define_id!(
1140    /// Opaque identifier for a monitor catalog artifact.
1141    MonitorCatalogId
1142);
1143
1144define_id!(
1145    /// Opaque identifier for a mitigation playbook artifact.
1146    MitigationPlaybookId
1147);
1148
1149define_id!(
1150    /// Opaque identifier for a vendor certification adapter artifact.
1151    VendorCertificationAdapterId
1152);
1153
1154define_id!(
1155    /// Opaque identifier for a vendor evidence translation artifact.
1156    VendorEvidenceTranslationId
1157);
1158
1159define_id!(
1160    /// Opaque identifier for a vendor trust-root binding artifact.
1161    VendorTrustRootBindingId
1162);
1163
1164define_id!(
1165    /// Opaque identifier for a vendor revocation handling artifact.
1166    VendorRevocationHandlingId
1167);
1168
1169define_id!(
1170    /// Opaque identifier for an incident taxonomy artifact.
1171    IncidentTaxonomyId
1172);
1173
1174define_id!(
1175    /// Opaque identifier for a severity matrix artifact.
1176    SeverityMatrixId
1177);
1178
1179define_id!(
1180    /// Opaque identifier for a pager-route profile artifact.
1181    PagerRouteProfileId
1182);
1183
1184define_id!(
1185    /// Opaque identifier for an escalation-clock policy artifact.
1186    EscalationClockPolicyId
1187);
1188
1189define_id!(
1190    /// Opaque identifier for an applicability-context artifact.
1191    ApplicabilityContextId
1192);
1193
1194define_id!(
1195    /// Opaque identifier for a normalized profile-set artifact.
1196    ProfileSetId
1197);
1198
1199define_id!(
1200    /// Opaque identifier for a composition rule-set artifact.
1201    CompositionRuleSetId
1202);
1203
1204define_id!(
1205    /// Opaque identifier for a composition receipt artifact.
1206    CompositionReceiptId
1207);
1208
1209define_id!(
1210    /// Opaque identifier for an effective constitution artifact.
1211    EffectiveConstitutionId
1212);
1213
1214define_id!(
1215    /// Opaque identifier for a compiled obligation-set artifact.
1216    CompiledObligationSetId
1217);
1218
1219define_id!(
1220    /// Opaque identifier for a composition conflict-set artifact.
1221    CompositionConflictSetId
1222);
1223
1224define_id!(
1225    /// Opaque identifier for a profile exception bundle artifact.
1226    ProfileExceptionBundleId
1227);
1228
1229define_id!(
1230    /// Opaque identifier for a policy impact diff artifact.
1231    PolicyImpactDiffId
1232);
1233
1234#[cfg(test)]
1235#[path = "ids_tests.rs"]
1236mod tests;