{ self, runCommand, check-jsonschema, pkgs, lib, ... }: let clanModules.clanCore = self.nixosModules.clanCore; baseModule = { imports = (import (pkgs.path + "/nixos/modules/module-list.nix")) ++ [{ nixpkgs.hostPlatform = "x86_64-linux"; clanCore.clanName = "dummy"; }]; }; optionsFromModule = module: let evaled = lib.evalModules { modules = [ module baseModule ]; }; in evaled.options.clan; clanModuleSchemas = lib.mapAttrs (_: module: self.lib.jsonschema.parseOptions (optionsFromModule module)) clanModules; mkTest = name: schema: runCommand "schema-${name}" { } '' ${check-jsonschema}/bin/check-jsonschema \ --check-metaschema ${builtins.toFile "schema-${name}" (builtins.toJSON schema)} touch $out ''; in lib.mapAttrs' (name: schema: { name = "schema-${name}"; value = mkTest name schema; }) clanModuleSchemas