# design notes ## core model - OutgoingRegistry (Variant) исходящая конфигурация - [provider] configuration - [container, live] slots набор вариантов (слотов) - [property] primarySlot - AssemblyRegistry (Varaint, Slot) содержимое слота может быть добавлено после появления слота в OutgoingRegistry - assembleTask - inputs - compile unit output (CompileUnit, String) - direct object (task, file collection, etc.) - artifact: directory - customTask - artifact: FileSystemLocation ## extension - adapter - whenFinalized - dsl - variant(name) - slot(name) - from*** - whenFinalized - whenOutgoingConfiguration - whenOutgoingSlot outgoing = outgoings.maybeCreate(variant) slot = outgoings.slots.maybeCreate(slotName) assembly = assemblies.register(variantSlot, task, mapOutput) outgoing.configure(configuration -> { slots.all(slot -> { assemblies.when(variant, slot) { assembly -> configuration.variants.create(slot.name) { artifact(assembly.artifact) } } }); });