{ lib, ... }: let inherit (lib) types mkOption; in with types; { options = { runtime-environments = mkOption { type = attrsOf (attrTag { nixos = mkOption { type = submodule { options = { module = mkOption { description = "The NixOS module of the run-time environment"; type = deferredModule; }; }; }; }; }); }; applications = mkOption { description = "Collection of NixOS modules, each implementing a Fediversity application"; type = attrsOf (submoduleWith { description = "A Fediversity application"; modules = [ { options = { module = mkOption { description = "The NixOS module to compose into an operator's configuration"; type = deferredModule; }; }; } ]; }); }; }; }