Да там всё просто.
Вот есть у меня Software System. внутри неё есть Container.
На уровне языка я решил, что можно вложить объявления. это выглядит естественно, как граф.
Но тогда я не смогу нормально давать имена контейнерам, компонентам и иже с ними — языковые скоупы просто так не работают
Ну собственно, пример почти псевдокодом:
val billing = SoftwareSystem(…) {
val pg = Container(…) {
tags(“database”)
}
}
// ← вот на этом лексическом уровне уже нет доступа к pg. а хочется для диаграммок и прочего
я в этот момент понял, что я делаю что-то не так и отказался от идеи строить такой дсл на котлине