Skip to main content

made_api/
lib.rs

1//! The published contract of the embedded MADE.
2//!
3//! This crate is what a consuming product is allowed to know. It holds plain
4//! views, a capability report, an error vocabulary and one trait — and no
5//! domain types, no adapters, no storage. A consumer that compiles against this
6//! crate alone can be tested with a stub and swapped onto any implementation
7//! that honours the same contract.
8//!
9//! Versioned deliberately. [`CONTRACT_VERSION`] moves when the meaning of this
10//! surface changes, independently of the library's own release number: two
11//! builds of the same release can differ in features, and a consumer that
12//! guessed capabilities from a version string would find out mid-run. Consumers
13//! check [`ApiCapabilities`] at startup instead.
14//!
15//! Vocabulary note (ADR-001): these types speak the engine's own language —
16//! ceremonies. A consuming product maps them to its own terms at its own
17//! boundary; nothing of that product's vocabulary appears here.
18
19mod api_capabilities;
20mod api_error;
21mod authoring_views;
22mod budget_balance;
23mod budget_limits;
24mod budget_quantities;
25mod budget_report;
26mod budget_reservation;
27mod ceremony_engine_api;
28mod ceremony_participant;
29mod ceremony_summary;
30mod definition_defect_view;
31mod intervention_response_view;
32mod intervention_views;
33mod published_definition_view;
34mod raise_intervention_request;
35mod recalled_entry_view;
36mod recollection_view;
37mod respond_to_intervention_request;
38mod start_ceremony_request;
39
40pub use api_capabilities::ApiCapabilities;
41pub use api_error::ApiError;
42pub use authoring_views::DefinitionAnalysisView;
43pub use budget_balance::BudgetBalance;
44pub use budget_limits::BudgetLimits;
45pub use budget_quantities::BudgetQuantities;
46pub use budget_report::BudgetReport;
47pub use budget_reservation::BudgetReservation;
48pub use ceremony_engine_api::CeremonyEngineApi;
49pub use ceremony_participant::CeremonyParticipant;
50pub use ceremony_summary::CeremonySummary;
51pub use definition_defect_view::DefinitionDefectView;
52pub use intervention_response_view::InterventionResponseView;
53pub use intervention_views::InterventionView;
54pub use published_definition_view::PublishedDefinitionView;
55pub use raise_intervention_request::RaiseInterventionRequest;
56pub use recalled_entry_view::RecalledEntryView;
57pub use recollection_view::RecollectionView;
58pub use respond_to_intervention_request::RespondToInterventionRequest;
59pub use start_ceremony_request::StartCeremonyRequest;
60
61/// The revision of this contract.
62///
63/// Moves on meaning, not on release: adding a capability keeps the version,
64/// changing what an existing field or method means raises it.
65pub const CONTRACT_VERSION: u32 = 3;