{ config, lib, ... }: let inherit (lib) mkOption types; in { options = { vacu.commands = mkOption { default = {}; type = types.attrsOf (types.submodule ({ name, config, options, ... }: { options = { content = mkOption { type = types.str; default = ""; }; enable = mkOption { type = types.bool; default = config.content != ""; defaultText = ''${name}.content != ""''; }; kind = mkOption { type = types.enum [ "alias" "function" ]; default = "alias"; }; }; })); }; }; config = { #todo }; }