// APCore Protocol — Registry module
// Spec reference: Module registry, discovery, and validation

#[allow(clippy::module_inception)]
pub mod registry;

pub mod conflicts;
pub mod dependencies;
pub mod entry_point;
pub mod metadata;
pub mod scanner;
pub mod types;
pub mod validation;
pub mod version;

pub use conflicts::{detect_id_conflicts, ConflictResult, ConflictSeverity, ConflictType};
pub use dependencies::resolve_dependencies;
pub use entry_point::{infer_struct_name, resolve_entry_point_name, snake_to_pascal};
pub use metadata::{load_id_map, load_metadata, merge_module_metadata, parse_dependencies};
pub use registry::{
    module_id_pattern, registry_events, DependencyInfo, DiscoveredModule, Discoverer,
    ModuleDescriptor, ModuleValidator, Registry, RegistryEvents, DEFAULT_MODULE_VERSION,
    MAX_MODULE_ID_LENGTH, MODULE_ID_PATTERN, REGISTRY_EVENTS, RESERVED_WORDS,
};
pub use scanner::{scan_extensions, scan_multi_root};
pub use types::{DepInfo, DiscoveredFile};
pub use validation::validate_descriptor;
pub use version::{matches_version_hint, parse_semver, select_best_version, VersionedStore};
