//! Typed ST7305 commands, one module per group of registers.
//!
//! Opcodes and parameter layouts follow the ST7305 datasheet v0.2. Where the
//! datasheet is wrong or silent, the values come from
//! [`presets::WAVESHARE_RLCD_42`](crate::presets::WAVESHARE_RLCD_42) and are
//! verified on hardware. Section numbers (§) refer to datasheet v0.2.
//!
//! A command with register defaults has a `DEFAULT` constant (also its
//! `Default`) and `with_*` builders, so a configured command can be a
//! `const`. Commands with value fields are created with `new` (or `from_mv`
//! for voltages), which panics on an out-of-range value.
/// System commands (§8.1): sleep, display on/off, inversion, GRAM window,
/// scan direction, tearing effect, power modes.
/// NVM (MTP) load and read commands (§8.2.22–8.2.29); programming needs the
/// `nvm-program` feature.
/// Panel timing and layout commands (§8.2.1–8.2.9).
/// Voltage, booster and oscillator commands (§8.2.10–8.2.23).