//! Data structures for CI pipelines, jobs, and stages.
//!
//! - **Raw types** ([`RawPipeline`], [`RawJobConfig`]) -- straight from the
//!   YAML, before `extends` resolution or variable expansion.
//! - **Resolved types** ([`Job`], [`Pipeline`], [`Stage`]) -- fully merged
//!   and expanded, ready for display, script generation, or container launch.
//! - [`CiSystem`] -- GitLab vs GitHub Actions, used to pick the right parser,
//!   resolver, and shell flags.

mod job;
mod pipeline;
mod raw;

pub use job::*;
pub use pipeline::*;
pub use raw::*;

/// Which CI system a pipeline file belongs to.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CiSystem {
    GitLab,
    GitHub,
}
