{ 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 = { }; }; }