{ lib, ... }: let inherit (lib) mkOption types; syncType = types.submodule ( { ... }: { options = { dirName = mkOption { type = types.str; description = "The name of the directory to sync the remote files to."; }; cacheDuration = mkOption { type = types.nullOr types.str; description = "The amount of time to keep cached files."; default = null; }; }; }); in { options = { valhalla.linux.users = mkOption { type = types.attrsOf (types.submodule ( { ... }: { options = { programs.rclone = { configurations = mkOption { type = types.attrsOf syncType; description = "The configurations of the rclone mounts."; default = { }; }; }; }; })); }; }; }