//! High-level workflow — PDD §5 (steps 1–12).
//!
//! Each function borrows `&mut dyn Transport` and (for channel steps) a backend
//! and an open [`crate::scp::ScpSession`], performs the pre-flight checks of its
//! §5 subsection, drives the §command builders through the §scp session, and
//! returns `Result<XReport, ScllError>` (§7/§8). No success payload is reachable
//! on the error path.
//!
//! Channel steps are generic over `B: KeyBackend + Scp02Backend + Scp03Backend`
//! (Fork F-A): the open session may be either variant, so wrap/unwrap needs both
//! backend traits. Pre-auth steps (`probe`, `discover_card`) take no backend.
//! All per-step inputs are borrowed `*Args` structs (Fork F-C/D); the shared
//! transport/SCP plumbing lives in [`session`] (Fork F-B).
// §5.7 install_applet, §5.8 delete_applet
// §5.11 set_card_status, §5.12 get_card_status, §5.12a get_card_inventory
// §5.2 discover_card
// §5.3/§5.6 put/delete key core + ISD/SSD wrappers
// §5.9 open_scp
// §5.1 transport probe
// shared SELECT + in-session transmit plumbing
// §5.4 create_ssd, §5.4a load_package, §5.5 delete_ssd
// §5.10 applet APDU exchange
// --- Flat re-export of the public workflow surface (PDD §5) ---
pub use ;
pub use ;
pub use discover_card;
pub use ;
pub use ;
pub use probe;
pub use ;
pub use transmit;