:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

.Architecture Overview Diagram
[plantuml,file="arc-overview.png"]
----
@startuml
node Desktop <<client>>{
component Chrome <<browser>> {
component V8 <<"<JS Runtime>">> {
    component KotlinJS [[https://github.com/JetBrains/kotlin/tree/master/js]] #4BACC6 {
        component kotlinx.serialization as KS #4F81BD
        component kvision [[https://rjaros.github.io/kvision]] #4F81BD {
            component Bootstrap [[https://getbootstrap.com/]] #8064A2
            component "Font\nAwesome" [[https://fontawesome.com/]] #4BACC6
            component Tabulator [[http://tabulator.info/]] #9BBB59 {
                component jQuery [[https://jquery.com/]] #4F81BD
            }
            component Chart.js [[https://www.chartjs.org/]] #C0504D
        }
        component kroViz <<RO Viewer>> #F79646
        kroViz --> kvision : implemented\nusing
        kroViz --> KS : implemented\nusing
    }
}
}
}

node server{
    interface RestfulObjects as RO
    component ApacheCauseway<<NakedObjects>> [[https://causeway.apache.org/]] #F79646
}

ApacheCauseway -- RO
kroViz --> RO : invoke\ \nuse
@enduml
----
