{ lib, ... }: let inherit (lib) types mkOption; in { options = { infrastructure = mkOption { description = "Infrastructure for Fediversity applications to run on"; type = with types; attrsOf (attrTag { single-nixos-machine-via-usb = mkOption { type = with types; submodule { # TODO: maybe steal some data structures from NixOS options = { hasNetwork = mkOption { type = types.bool; }; disks = mkOption { type = with types; attrsOf (submodule { options.size = mkOption { type = types.bytes; }; }); }; }; }; }; }); }; }; }