mecha10_cli/types/mod.rs
1//! Shared type definitions for the CLI
2//!
3//! This module contains type definitions that are shared across multiple
4//! layers of the CLI (commands, handlers, services).
5//!
6//! # Organization
7//!
8//! - **cli**: CLI command types (Clap Args, Commands enum)
9//! - **credentials**: Authentication credentials types
10//! - **project**: Project configuration types (mecha10.json)
11//! - **simulation**: Simulation configuration types (runtime and project-level)
12//!
13//! # Design Principles
14//!
15//! - **Domain-focused**: Types represent domain concepts, not CLI concerns
16//! - **Shared**: Only types used in multiple places belong here
17//! - **Serializable**: Most types derive Serialize/Deserialize
18//! - **Well-documented**: All public types have rustdoc comments
19
20// Type modules
21pub mod cli;
22pub mod credentials;
23pub mod project;
24pub mod simulation;
25
26// Re-exports for convenience
27pub use cli::{Cli, Commands};
28#[allow(unused_imports)]
29pub use credentials::{AuthError, Credentials, DeviceCodeResponse, DeviceCodeStatus};
30pub use project::{load_project_config, DashboardConfig, NodeEntry, ProjectConfig};
31// Types available for future use (environments config support)
32#[allow(unused_imports)]
33pub use project::{EnvironmentConfig, EnvironmentsConfig};
34pub use simulation::SimulationConfig;