let schema = import "./schema.dcdl"; profiles = import "./profiles.dcdl"; mkService = (cfg: schema.Service) => cfg // { summary = match cfg.env { "prod": "production service"; "dev": "development service"; _: "custom service"; }; }; devService = mkService( profiles.base & { name = "api-dev"; port = 8443; } ); prodService = mkService( profiles.prod & { name = "api"; port = 9443; } ); disabledService = mkService( profiles.disabled & { name = "api-disabled"; port = 10443; } ); in { services = [ devService, prodService, disabledService, ]; selected = match "prod" { "prod": prodService; "dev": devService; _: disabledService; }; }