{ lib, ... }: { options.submodule = lib.mkOption { default = {}; type = lib.types.submoduleWith { modules = [ ({ options, ... }: { options.value = lib.mkOption {}; options.internalFiles = lib.mkOption { default = options.value.files; }; })]; }; }; imports = [ { _file = "the-file.nix"; submodule.value = 10; } ]; }