{lib, ...}: { options.dendritic.users = lib.mkOption { type = lib.types.attrsOf ( lib.types.submodule ({name, ...}: { options = { name = lib.mkOption { type = lib.types.str; default = name; }; username = lib.mkOption { type = lib.types.str; default = name; }; nixosModules = lib.mkOption { type = lib.types.listOf lib.types.deferredModule; default = []; }; homeModules = lib.mkOption { type = lib.types.listOf lib.types.deferredModule; default = []; }; homes = lib.mkOption { type = lib.types.attrsOf ( lib.types.submodule ({name, ...}: { options = { host = lib.mkOption { type = lib.types.str; default = name; }; system = lib.mkOption { type = lib.types.str; }; stateVersion = lib.mkOption { type = lib.types.str; default = "25.05"; }; roles = lib.mkOption { type = lib.types.listOf lib.types.str; default = []; }; extraModules = lib.mkOption { type = lib.types.listOf lib.types.deferredModule; default = []; }; }; }) ); default = {}; }; }; }) ); default = {}; }; }