{ lib, ... }: let applications = [ "mastodon" ]; in { options = lib.genAttrs applications ( k: # TODO: how to type entries here to conform to some common structure? lib.mkOption { description = "configuration options for ${k}"; type = lib.types.submodule ./${k}; } ); }