pub mod error;
pub mod ontology;
pub mod types;

#[cfg(feature = "derive")]
pub mod contrib;

#[cfg(feature = "derive")]
pub mod api;

#[cfg(feature = "derive")]
pub use api::{ApiParam, ApiRouteEntry};
#[cfg(feature = "derive")]
pub use contrib::{ConfigFieldsEntry, NodeContribution, TestCoverage};
pub use error::OntologyError;
pub use ontology::{Core, Gate, Ontology, State};
// Re-export the proc-macro crate so consumers only need to depend on
// `ontoref-ontology` with the `derive` feature — no separate ontoref-derive dep.
#[cfg(feature = "derive")]
pub use ontoref_derive::{onto_validates, ConfigFields, OntologyNode};
pub use types::{
    AbstractionLevel, CoreConfig, Coupling, Dimension, DimensionState, Duration, Edge, EdgeType,
    GateConfig, Horizon, Membrane, Node, OpeningCondition, Permeability, Pole, Protocol,
    SignalType, StateConfig, TensionLevel, Transition,
};
