@file:Suppress("UNUSED") package me.eater.hefbrug.dsl.context import me.eater.hefbrug.dsl.annotation.HefbrugDSL import me.eater.hefbrug.module.Module import me.eater.hefbrug.utils.ArgumentDelegate import java.util.* @HefbrugDSL class ModuleContext( override val runtimeUUID: UUID, override val contextUUID: UUID, private val module: Module, private val arguments: Map ) : TargetedContext() { val id: String get() = module.id fun arg(name: String, default: T? = null) = ArgumentDelegate(arguments, name, default) fun arg(default: T? = null) = ArgumentDelegate(arguments, null, default) }