///|
fn windows_model(
  name~ : String,
  about~ : String,
  host~ : String,
  os~ : String,
  device~ : String,
  kernel~ : String,
  resolution~ : Resolution?,
  de~ : String,
  wm~ : String,
  wm_theme~ : String,
  terminal~ : String,
  term_font~ : String,
  cpu~ : Cpu,
  gpu~ : Gpu,
  memory~ : Memory,
) -> DeviceModel {
  {
    name,
    about,
    host,
    os,
    device,
    kernel,
    uptime: { hours: 6, mins: 41 },
    shell: "powershell 5.1",
    resolution,
    de,
    wm,
    wm_theme,
    terminal,
    term_font,
    cpu,
    gpu,
    memory,
    logo: "windows",
  }
}

///|
/// ASUS ROG Air 16 (2025), Intel Core Ultra 9 285H, RTX 5070, Windows 11.
fn rog_model() -> DeviceModel {
  windows_model(
    name="rog-air-16",
    about="Windows ASUS ROG Air 16 (2025) 32 GB / 1 TB",
    host="rog16",
    os="Windows 11 Pro 23H2 (22631.3880)",
    device="ASUS ROG Air 16 (GA612)",
    kernel="Win32 10.0.22631 Build 22631",
    resolution=Some({ width: 2560, height: 1600 }),
    de="Windows Desktop Manager",
    wm="DWM",
    wm_theme="Dark",
    terminal="Windows Terminal",
    term_font="Cascadia Mono 12",
    cpu={ name: "Intel Core Ultra 9 285H", cores: 16, clock: 5.40 },
    gpu=gpu_rtx_5070_laptop,
    memory={ used: 12.60, total: 32.00 },
  )
}

///|
/// Custom desktop: AMD Ryzen 9 7950X3D, RTX 4080 Super, 64 GB RAM, Windows 11.
fn windows_desktop_model() -> DeviceModel {
  windows_model(
    name="windows-desktop",
    about="Windows desktop Ryzen 9 7950X3D / RTX 4080 Super 64 GB",
    host="hal",
    os="Windows 11 Pro 24H2 (26100.1742)",
    device="Custom AMD AM5",
    kernel="Win32 10.0.26100 Build 26100",
    resolution=Some({ width: 3440, height: 1440 }),
    de="Windows Desktop Manager",
    wm="DWM",
    wm_theme="Dark",
    terminal="Windows Terminal",
    term_font="Cascadia Mono 12",
    cpu={ name: "AMD Ryzen 9 7950X3D", cores: 16, clock: 5.70 },
    gpu=gpu_rtx_4080_super,
    memory={ used: 31.50, total: 64.00 },
  )
}