// ВНИМАНИЕ Сгенерировано автоматом из файла %MODULE%.yml // ВНИМАНИЕ Не менять руками! %IMPORTS% // MARK: - Context public protocol %MODULE%Context { %CONTEXT_FIELDS% } // MARK: - Controller extension %MODULE% { final class Controller: MPAK.Controller<%MODULE%.Model> { init() { super.init( %MODULE%.Model(), debugClassName: "%MODULE_SHORT%Ctrl", debugLog: { aelog($0) } ) } } %CORE% // MARK: - Model public struct Model: %MODULE%Context { %MODEL_FIELDS% } // MARK: - Service public final class Service { let ctrl = Controller() let world: World %SERVICE_CORE% var subscriptions = [AnyCancellable]() static private(set) weak var singleton: Service? public init(_ world: World) { self.world = world Self.singleton = self %SERVICE_SECTIONS% } } // MARK: - World public struct World { %WORLD_FIELDS% public init( %WORLD_PARAMETERS% ) { %WORLD_CONSTRUCTOR% } } enum SectionGenerated { %CORE_SECTION_GENERATED% %SERVICE_SECTION_GENERATED% } }