specification {
    tag engineering
    element domain
    element engineer  {
        style {
            shape person
        }
    }
}

model {

    engineer framework-engineer 'Framework Engineer' 'Build and maintain one platform orchestrating framework'{
        style {
            color: sky
        }
        -> framework-engineering
        -> platform-engineer
    }

    domain framework-engineering 'Framework Engineering' 'Building and maintaining frameworks'{
        #engineering
        style {
            color: sky
        }
        -> framework
        -> platform-engineering
    }

    domain framework '"Framework" (IPCEI wording!)' 'A platform defining system' {
        style {
            color: sky
        }
        -> platform
    }

    engineer platform-engineer 'Platform Engineer'  {
         style {
            color: indigo
        }
        -> platform-engineering
        -> devops-engineer
    }

    domain platform-engineering 'Platform Engineering' 'Building and maintaining platforms' {
        #engineering
        style {
            color: indigo
        }
        -> platform
        -> devops-engineering
    }

    domain platform 'Platform' 'A Devops defining system' {
        style {
            color: indigo
        }
        -> devops
    }

    engineer devops-engineer 'Devops Engineer'  {
        style {
            color: amber
        }
        -> devops-engineering
    }

    domain devops-engineering 'Devops Engineering' 'Building and maintaining devops means'  {
        #engineering
        style {
            color: amber
        }
        -> devops
    }
    domain devops 'Devops' 'A software lifecycle enabling tool and process setup' {
        style {
            color: amber
        }
    }

}

views {
    view modern {
        title 'Modern Devops'
        description 'Devops is abstarcted by Platforms, Platforms are abstracted by Frameworks (IPCEI wording!)'
        include element.kind==domain, element.kind==engineer

    }

    view layers {
        include devops, platform, framework
    }

    view layers-and-framework-engineer {
        include devops, platform, framework, framework-engineering, framework-engineer
    }

    view layers-and-platform-engineer {
        include devops, platform, platform-engineering, platform-engineer
    }
}