//! Core domain types and invariants. No I/O dependencies.

mod audit;
mod authority;
mod field_definition;
mod id;
mod label;
mod object;
mod user;
mod vocabulary;

pub use audit::{AuditAction, AuditActor, AuditEntry, FieldChange, NewAuditEvent};
pub use authority::{Authority, AuthorityKind, AuthorityRef, NewAuthority};
pub use field_definition::{DataType, FieldDefinition, FieldType, NewFieldDefinition};
pub use id::{AuthorityId, FieldDefinitionId, ObjectId, OrgId, TermId, UserId, VocabularyId};
pub use label::{LocalizedLabel, pick_label};
pub use object::{CatalogueObject, IllegalTransition, ObjectInput, Visibility};
pub use user::{Capability, Email, EmailError, NewUser, Role, User};
pub use vocabulary::{NewTerm, Term, TermRef, Vocabulary};
