Update module dependency graphs and add script to create them

Change-Id: I7b2ae264ec84491c847a44869934e2f238564c31
dt/add-module-graphs
Don Turner 4 months ago
parent ab90334210
commit 80a82de945

@ -1,3 +1,3 @@
# :app-nia-catalog module
![Dependency graph](../docs/images/graphs/dep_graph_app_nia_catalog.png)
![Dependency graph](../docs/images/graphs/dep_graph_app_nia_catalog.svg)

@ -1,3 +1,3 @@
# :app module
![Dependency graph](../docs/images/graphs/dep_graph_app.png)
![Dependency graph](../docs/images/graphs/dep_graph_app.svg)

@ -27,9 +27,10 @@ buildscript {
exclude(group = "com.google.protobuf")
}
}
}
// Lists all plugins used throughout the project without applying them.
// Lists all plugins used throughout the project
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
@ -46,4 +47,15 @@ plugins {
alias(libs.plugins.roborazzi) apply false
alias(libs.plugins.secrets) apply false
alias(libs.plugins.room) apply false
alias(libs.plugins.module.graph) apply true // Plugin applied to allow module graph generation
}
// Task to print all the module paths in the project e.g. :core:data
// Used by module graph generator script
tasks.register("printModulePaths") {
subprojects {
if (subprojects.size == 0) {
println(this.path)
}
}
}

@ -0,0 +1,3 @@
# :core:analytics module
![Dependency graph](../../docs/images/graphs/dep_graph_core_analytics.svg)

@ -1,3 +1,3 @@
# :core:common module
![Dependency graph](../../docs/images/graphs/dep_graph_core_common.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_common.svg)

@ -1,3 +1,3 @@
# :core:data-test module
![Dependency graph](../../docs/images/graphs/dep_graph_core_data_test.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_data_test.svg)

@ -1,3 +1,3 @@
# :core:data module
![Dependency graph](../../docs/images/graphs/dep_graph_core_data.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_data.svg)

@ -1,3 +1,3 @@
# :core:database module
![Dependency graph](../../docs/images/graphs/dep_graph_core_database.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_database.svg)

@ -0,0 +1,3 @@
# :core:datastore-proto module
![Dependency graph](../../docs/images/graphs/dep_graph_core_datastore_proto.svg)

@ -1,3 +1,3 @@
# :core:datastore-test module
![Dependency graph](../../docs/images/graphs/dep_graph_core_datastore_test.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_datastore_test.svg)

@ -1,3 +1,3 @@
# :core:datastore module
![Dependency graph](../../docs/images/graphs/dep_graph_core_datastore.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_datastore.svg)

@ -1,3 +1,3 @@
# :core:designsystem module
![Dependency graph](../../docs/images/graphs/dep_graph_core_designsystem.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_designsystem.svg)

@ -0,0 +1,3 @@
# :core:domain module
![Dependency graph](../../docs/images/graphs/dep_graph_core_domain.svg)

@ -1,3 +1,3 @@
# :core:model module
![Dependency graph](../../docs/images/graphs/dep_graph_core_model.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_model.svg)

@ -1,3 +1,3 @@
# :core:network module
![Dependency graph](../../docs/images/graphs/dep_graph_core_network.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_network.svg)

@ -0,0 +1,3 @@
# :core:notifications module
![Dependency graph](../../docs/images/graphs/dep_graph_core_notifications.svg)

@ -1,3 +1,3 @@
# :core:testing module
![Dependency graph](../../docs/images/graphs/dep_graph_core_testing.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_testing.svg)

@ -1,3 +1,3 @@
# :core:ui module
![Dependency graph](../../docs/images/graphs/dep_graph_core_ui.png)
![Dependency graph](../../docs/images/graphs/dep_graph_core_ui.svg)

@ -0,0 +1,481 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1219pt" height="476pt"
viewBox="0.00 0.00 1219.00 476.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 472)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-472 1215,-472 1215,4 -4,4"/>
<!-- :app -->
<g id="node1" class="node">
<title>:app</title>
<ellipse fill="none" stroke="black" cx="678" cy="-450" rx="27" ry="18"/>
<text text-anchor="middle" x="678" y="-444.95" font-family="Times,serif" font-size="14.00">:app</text>
</g>
<!-- :feature:interests -->
<g id="node2" class="node">
<title>:feature:interests</title>
<ellipse fill="none" stroke="black" cx="921" cy="-306" rx="72.34" ry="18"/>
<text text-anchor="middle" x="921" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:interests</text>
</g>
<!-- :app&#45;&gt;:feature:interests -->
<g id="edge1" class="edge">
<title>:app&#45;&gt;:feature:interests</title>
<path fill="none" stroke="black" d="M697.89,-437.38C738.48,-413.66 831.44,-359.33 883.66,-328.82"/>
<polygon fill="black" stroke="black" points="885.35,-331.88 892.22,-323.82 881.82,-325.84 885.35,-331.88"/>
</g>
<!-- :feature:foryou -->
<g id="node3" class="node">
<title>:feature:foryou</title>
<ellipse fill="none" stroke="black" cx="764" cy="-306" rx="66.19" ry="18"/>
<text text-anchor="middle" x="764" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:foryou</text>
</g>
<!-- :app&#45;&gt;:feature:foryou -->
<g id="edge2" class="edge">
<title>:app&#45;&gt;:feature:foryou</title>
<path fill="none" stroke="black" d="M687.7,-432.99C702.32,-408.85 730.16,-362.87 747.87,-333.63"/>
<polygon fill="black" stroke="black" points="750.7,-335.72 752.89,-325.35 744.71,-332.09 750.7,-335.72"/>
</g>
<!-- :feature:bookmarks -->
<g id="node4" class="node">
<title>:feature:bookmarks</title>
<ellipse fill="none" stroke="black" cx="483" cy="-306" rx="83.08" ry="18"/>
<text text-anchor="middle" x="483" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:bookmarks</text>
</g>
<!-- :app&#45;&gt;:feature:bookmarks -->
<g id="edge3" class="edge">
<title>:app&#45;&gt;:feature:bookmarks</title>
<path fill="none" stroke="black" d="M650.97,-447.86C614.3,-444.86 549.02,-434.12 511,-396 495.08,-380.05 488.2,-355.15 485.23,-335.74"/>
<polygon fill="black" stroke="black" points="488.72,-335.49 484.02,-325.99 481.78,-336.35 488.72,-335.49"/>
</g>
<!-- :feature:topic -->
<g id="node5" class="node">
<title>:feature:topic</title>
<ellipse fill="none" stroke="black" cx="164" cy="-306" rx="60.05" ry="18"/>
<text text-anchor="middle" x="164" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:topic</text>
</g>
<!-- :app&#45;&gt;:feature:topic -->
<g id="edge4" class="edge">
<title>:app&#45;&gt;:feature:topic</title>
<path fill="none" stroke="black" d="M651.8,-445.32C602.92,-438.15 494.73,-420.79 406,-396 335.4,-376.28 256.11,-345.37 208.13,-325.66"/>
<polygon fill="black" stroke="black" points="209.48,-322.43 198.9,-321.85 206.81,-328.9 209.48,-322.43"/>
</g>
<!-- :feature:search -->
<g id="node6" class="node">
<title>:feature:search</title>
<ellipse fill="none" stroke="black" cx="585" cy="-378" rx="65.17" ry="18"/>
<text text-anchor="middle" x="585" y="-372.95" font-family="Times,serif" font-size="14.00">:feature:search</text>
</g>
<!-- :app&#45;&gt;:feature:search -->
<g id="edge5" class="edge">
<title>:app&#45;&gt;:feature:search</title>
<path fill="none" stroke="red" stroke-width="2" d="M660.51,-435.83C647.87,-426.32 630.48,-413.23 615.57,-402.01"/>
<polygon fill="red" stroke="red" stroke-width="2" points="619.18,-400.35 609.09,-397.13 614.97,-405.94 619.18,-400.35"/>
</g>
<!-- :feature:settings -->
<g id="node7" class="node">
<title>:feature:settings</title>
<ellipse fill="none" stroke="black" cx="312" cy="-306" rx="69.78" ry="18"/>
<text text-anchor="middle" x="312" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:settings</text>
</g>
<!-- :app&#45;&gt;:feature:settings -->
<g id="edge6" class="edge">
<title>:app&#45;&gt;:feature:settings</title>
<path fill="none" stroke="black" d="M652.28,-443.52C615.27,-435.25 545.15,-418.17 488,-396 438.32,-376.72 383.99,-347.99 349.03,-328.42"/>
<polygon fill="black" stroke="black" points="351.02,-325.52 340.59,-323.66 347.58,-331.62 351.02,-325.52"/>
</g>
<!-- :core:common -->
<g id="node8" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="395" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="395" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :app&#45;&gt;:core:common -->
<g id="edge7" class="edge">
<title>:app&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M650.58,-449.21C523.74,-449.46 0,-442.3 0,-307 0,-307 0,-307 0,-161 0,-125.6 227.6,-62.12 337.27,-33.59"/>
<polygon fill="black" stroke="black" points="337.87,-37.05 346.67,-31.16 336.11,-30.27 337.87,-37.05"/>
</g>
<!-- :core:ui -->
<g id="node9" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="561" cy="-234" rx="39.07" ry="18"/>
<text text-anchor="middle" x="561" y="-228.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :app&#45;&gt;:core:ui -->
<g id="edge8" class="edge">
<title>:app&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M676.62,-431.53C674.63,-413.03 669.91,-383.33 659,-360 640.58,-320.63 607.68,-282.34 585.13,-258.74"/>
<polygon fill="black" stroke="black" points="587.87,-256.54 578.38,-251.82 582.85,-261.42 587.87,-256.54"/>
</g>
<!-- :core:designsystem -->
<g id="node10" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="343" cy="-162" rx="82.06" ry="18"/>
<text text-anchor="middle" x="343" y="-156.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :app&#45;&gt;:core:designsystem -->
<g id="edge9" class="edge">
<title>:app&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M650.87,-447.97C542.86,-443.2 145.91,-419.33 77,-324 56.94,-296.24 98.11,-219.46 102,-216 125.29,-195.3 199.91,-181.02 260.01,-172.54"/>
<polygon fill="black" stroke="black" points="260.12,-176.05 269.55,-171.23 259.17,-169.12 260.12,-176.05"/>
</g>
<!-- :core:data -->
<g id="node11" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="663" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="663" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :app&#45;&gt;:core:data -->
<g id="edge10" class="edge">
<title>:app&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M705.27,-448.51C790.66,-445.54 1045.6,-425.22 1019,-288 1012.44,-254.13 1016.95,-237.54 990,-216 949.55,-183.67 804.19,-170.6 721.54,-165.69"/>
<polygon fill="black" stroke="black" points="721.76,-162.2 711.58,-165.12 721.36,-169.18 721.76,-162.2"/>
</g>
<!-- :core:model -->
<g id="node12" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="663" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="663" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :app&#45;&gt;:core:model -->
<g id="edge11" class="edge">
<title>:app&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M705.36,-448.53C792.7,-446.64 1063.54,-437.47 1139,-396 1183.59,-371.49 1211,-357.88 1211,-307 1211,-307 1211,-307 1211,-161 1211,-62.5 875.03,-31.19 729.22,-22.24"/>
<polygon fill="black" stroke="black" points="729.5,-18.75 719.31,-21.65 729.09,-25.74 729.5,-18.75"/>
</g>
<!-- :core:analytics -->
<g id="node13" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="969" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="969" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :app&#45;&gt;:core:analytics -->
<g id="edge12" class="edge">
<title>:app&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M705.11,-448.1C786.71,-445.01 1028.68,-432.87 1097,-396 1142.77,-371.29 1173,-359.02 1173,-307 1173,-307 1173,-307 1173,-233 1173,-162.11 1089,-123.73 1028.8,-105.32"/>
<polygon fill="black" stroke="black" points="1029.9,-102 1019.32,-102.54 1027.93,-108.72 1029.9,-102"/>
</g>
<!-- :sync:work -->
<g id="node14" class="node">
<title>:sync:work</title>
<ellipse fill="none" stroke="black" cx="1093" cy="-234" rx="51.86" ry="18"/>
<text text-anchor="middle" x="1093" y="-228.95" font-family="Times,serif" font-size="14.00">:sync:work</text>
</g>
<!-- :app&#45;&gt;:sync:work -->
<g id="edge13" class="edge">
<title>:app&#45;&gt;:sync:work</title>
<path fill="none" stroke="black" d="M705.28,-449.47C786.05,-450.25 1021.58,-447.93 1073,-396 1107.37,-361.3 1104.35,-299.74 1098.83,-263.63"/>
<polygon fill="black" stroke="black" points="1102.31,-263.19 1097.17,-253.93 1095.41,-264.37 1102.31,-263.19"/>
</g>
<!-- :feature:interests&#45;&gt;:core:ui -->
<g id="edge14" class="edge">
<title>:feature:interests&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M867.21,-293.72C857.81,-291.79 848.13,-289.82 839,-288 757.8,-271.84 663.04,-253.99 607.76,-243.68"/>
<polygon fill="black" stroke="black" points="608.54,-240.26 598.07,-241.87 607.26,-247.14 608.54,-240.26"/>
</g>
<!-- :feature:interests&#45;&gt;:core:designsystem -->
<g id="edge15" class="edge">
<title>:feature:interests&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M876.99,-291.3C843.88,-280.86 797.45,-265.96 757,-252 713.14,-236.86 703.85,-227.89 659,-216 581.14,-195.36 490.25,-181.11 425.99,-172.63"/>
<polygon fill="black" stroke="black" points="426.58,-169.18 416.22,-171.36 425.68,-176.12 426.58,-169.18"/>
</g>
<!-- :feature:interests&#45;&gt;:core:data -->
<g id="edge16" class="edge">
<title>:feature:interests&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M892.4,-289.26C845.15,-263.25 750.85,-211.35 699.08,-182.86"/>
<polygon fill="black" stroke="black" points="700.79,-179.81 690.34,-178.05 697.42,-185.94 700.79,-179.81"/>
</g>
<!-- :core:domain -->
<g id="node15" class="node">
<title>:core:domain</title>
<ellipse fill="none" stroke="black" cx="921" cy="-234" rx="60.05" ry="18"/>
<text text-anchor="middle" x="921" y="-228.95" font-family="Times,serif" font-size="14.00">:core:domain</text>
</g>
<!-- :feature:interests&#45;&gt;:core:domain -->
<g id="edge17" class="edge">
<title>:feature:interests&#45;&gt;:core:domain</title>
<path fill="none" stroke="black" d="M921,-287.7C921,-280.41 921,-271.73 921,-263.54"/>
<polygon fill="black" stroke="black" points="924.5,-263.62 921,-253.62 917.5,-263.62 924.5,-263.62"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:ui -->
<g id="edge37" class="edge">
<title>:feature:foryou&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M724.38,-291.34C689.14,-279.19 637.81,-261.49 602.12,-249.18"/>
<polygon fill="black" stroke="black" points="603.61,-245.99 593.02,-246.04 601.33,-252.61 603.61,-245.99"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:designsystem -->
<g id="edge38" class="edge">
<title>:feature:foryou&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M741.28,-288.77C712.07,-268.68 659.12,-234.8 609,-216 549.83,-193.8 479.6,-180.31 426.16,-172.5"/>
<polygon fill="black" stroke="black" points="426.91,-169.07 416.52,-171.13 425.93,-176 426.91,-169.07"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:data -->
<g id="edge39" class="edge">
<title>:feature:foryou&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M751.82,-287.87C734.28,-263.22 701.79,-217.54 681.35,-188.79"/>
<polygon fill="black" stroke="black" points="684.44,-187.1 675.79,-180.98 678.73,-191.16 684.44,-187.1"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:domain -->
<g id="edge40" class="edge">
<title>:feature:foryou&#45;&gt;:core:domain</title>
<path fill="none" stroke="red" stroke-width="2" d="M797.3,-290.15C820.84,-279.66 852.63,-265.48 878.08,-254.14"/>
<polygon fill="red" stroke="red" stroke-width="2" points="878.09,-257.97 885.79,-250.7 875.24,-251.57 878.09,-257.97"/>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:ui -->
<g id="edge41" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M501.88,-288.05C511.91,-279.05 524.39,-267.85 535.3,-258.07"/>
<polygon fill="black" stroke="black" points="537.39,-260.89 542.5,-251.6 532.72,-255.68 537.39,-260.89"/>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:designsystem -->
<g id="edge42" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M466.39,-288.15C441.87,-263.28 395.82,-216.57 367.44,-187.79"/>
<polygon fill="black" stroke="black" points="370.16,-185.57 360.65,-180.9 365.18,-190.48 370.16,-185.57"/>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:data -->
<g id="edge43" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M484.38,-287.6C486.86,-267.74 493.77,-235.51 513,-216 537.95,-190.68 575.72,-177.43 607.12,-170.5"/>
<polygon fill="black" stroke="black" points="607.77,-173.94 616.88,-168.53 606.39,-167.08 607.77,-173.94"/>
</g>
<!-- :feature:topic&#45;&gt;:core:ui -->
<g id="edge44" class="edge">
<title>:feature:topic&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M208.42,-293.49C216.57,-291.54 225.02,-289.62 233,-288 331.71,-267.9 448.38,-250.56 512.57,-241.57"/>
<polygon fill="black" stroke="black" points="513.01,-245.04 522.43,-240.2 512.04,-238.11 513.01,-245.04"/>
</g>
<!-- :feature:topic&#45;&gt;:core:designsystem -->
<g id="edge45" class="edge">
<title>:feature:topic&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M177.25,-288.11C192.79,-269.03 220,-237.8 248,-216 263.55,-203.89 282.2,-192.85 298.85,-184.02"/>
<polygon fill="black" stroke="black" points="300.29,-187.21 307.57,-179.51 297.08,-180.99 300.29,-187.21"/>
</g>
<!-- :feature:topic&#45;&gt;:core:data -->
<g id="edge46" class="edge">
<title>:feature:topic&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M198.28,-290.94C245.52,-271.95 333.61,-237.97 411,-216 478.37,-196.88 557.65,-181.31 609.04,-172.11"/>
<polygon fill="black" stroke="black" points="609.48,-175.59 618.71,-170.4 608.26,-168.7 609.48,-175.59"/>
</g>
<!-- :feature:search&#45;&gt;:feature:interests -->
<g id="edge53" class="edge">
<title>:feature:search&#45;&gt;:feature:interests</title>
<path fill="none" stroke="black" d="M636.03,-366.37C694.74,-354.14 791.29,-334.02 855.5,-320.65"/>
<polygon fill="black" stroke="black" points="856.14,-324.09 865.22,-318.62 854.71,-317.23 856.14,-324.09"/>
</g>
<!-- :feature:search&#45;&gt;:feature:foryou -->
<g id="edge52" class="edge">
<title>:feature:search&#45;&gt;:feature:foryou</title>
<path fill="none" stroke="red" stroke-width="2" d="M621.66,-362.67C649.17,-351.91 687.06,-337.09 716.83,-325.45"/>
<polygon fill="red" stroke="red" stroke-width="2" points="716.54,-329.32 724.57,-322.42 713.99,-322.8 716.54,-329.32"/>
</g>
<!-- :feature:search&#45;&gt;:feature:bookmarks -->
<g id="edge51" class="edge">
<title>:feature:search&#45;&gt;:feature:bookmarks</title>
<path fill="none" stroke="black" d="M561.34,-360.76C548.02,-351.62 531.16,-340.05 516.5,-329.99"/>
<polygon fill="black" stroke="black" points="518.71,-327.26 508.49,-324.49 514.75,-333.03 518.71,-327.26"/>
</g>
<!-- :feature:search&#45;&gt;:core:ui -->
<g id="edge47" class="edge">
<title>:feature:search&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M583.82,-359.83C582.41,-341.82 579.64,-312.76 575,-288 573.47,-279.83 571.35,-271.06 569.23,-263.06"/>
<polygon fill="black" stroke="black" points="572.63,-262.2 566.59,-253.5 565.88,-264.07 572.63,-262.2"/>
</g>
<!-- :feature:search&#45;&gt;:core:designsystem -->
<g id="edge48" class="edge">
<title>:feature:search&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M520.52,-374.73C393.97,-369.62 122.94,-355.12 95,-324 32.8,-254.71 183.23,-202.79 276.21,-178.4"/>
<polygon fill="black" stroke="black" points="276.97,-181.82 285.78,-175.94 275.23,-175.04 276.97,-181.82"/>
</g>
<!-- :feature:search&#45;&gt;:core:data -->
<g id="edge49" class="edge">
<title>:feature:search&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M591.25,-359.85C604.69,-322.99 636.42,-235.92 652.81,-190.96"/>
<polygon fill="black" stroke="black" points="656.06,-192.25 656.2,-181.65 649.49,-189.85 656.06,-192.25"/>
</g>
<!-- :feature:search&#45;&gt;:core:domain -->
<g id="edge50" class="edge">
<title>:feature:search&#45;&gt;:core:domain</title>
<path fill="none" stroke="black" d="M648.41,-373.49C759.33,-366.69 979.03,-350.08 1002,-324 1012.58,-311.99 1009.61,-302.07 1002,-288 994.22,-273.61 980.64,-262.5 966.8,-254.25"/>
<polygon fill="black" stroke="black" points="968.53,-251.21 958.08,-249.48 965.17,-257.35 968.53,-251.21"/>
</g>
<!-- :feature:settings&#45;&gt;:core:ui -->
<g id="edge54" class="edge">
<title>:feature:settings&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M357.96,-292.08C403.46,-279.29 472.62,-259.84 517.32,-247.28"/>
<polygon fill="black" stroke="black" points="518.26,-250.65 526.94,-244.57 516.37,-243.91 518.26,-250.65"/>
</g>
<!-- :feature:settings&#45;&gt;:core:designsystem -->
<g id="edge55" class="edge">
<title>:feature:settings&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M315.8,-287.59C321.06,-263.5 330.61,-219.75 336.88,-191.03"/>
<polygon fill="black" stroke="black" points="340.23,-192.11 338.94,-181.59 333.39,-190.61 340.23,-192.11"/>
</g>
<!-- :feature:settings&#45;&gt;:core:data -->
<g id="edge56" class="edge">
<title>:feature:settings&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M339.82,-289.14C374.12,-270.04 434.56,-237.8 489,-216 530,-199.59 578.14,-185.29 613.38,-175.69"/>
<polygon fill="black" stroke="black" points="614.13,-179.11 622.88,-173.14 612.31,-172.35 614.13,-179.11"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge19" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M529.77,-222.97C495.61,-212 440.21,-194.21 398.6,-180.85"/>
<polygon fill="black" stroke="black" points="399.83,-177.57 389.24,-177.85 397.69,-184.24 399.83,-177.57"/>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge20" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M557.92,-215.93C553.23,-184.72 547.6,-117.48 576,-72 585.53,-56.74 601.22,-45.24 616.67,-36.92"/>
<polygon fill="black" stroke="black" points="617.99,-40.18 625.37,-32.58 614.86,-33.91 617.99,-40.18"/>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge18" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M592.24,-222.71C624.15,-212.15 675.11,-195.17 719,-180 789.18,-155.74 870.09,-126.75 920.39,-108.6"/>
<polygon fill="black" stroke="black" points="921.32,-111.99 929.53,-105.3 918.94,-105.41 921.32,-111.99"/>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge21" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M617.4,-156.79C512.12,-146.87 260.13,-121.78 248,-108 216.8,-72.57 280.34,-46.93 333.42,-32.52"/>
<polygon fill="black" stroke="black" points="334.29,-35.91 343.08,-30 332.52,-29.14 334.29,-35.91"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge25" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M703.01,-151.97C749.43,-141.47 828.28,-123.59 896,-108 900.49,-106.97 905.14,-105.89 909.82,-104.81"/>
<polygon fill="black" stroke="black" points="910.28,-108.29 919.24,-102.62 908.7,-101.48 910.28,-108.29"/>
</g>
<!-- :core:database -->
<g id="node16" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="823" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="823" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge22" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M693.09,-147.83C717.31,-137.24 751.68,-122.2 778.99,-110.26"/>
<polygon fill="red" stroke="red" stroke-width="2" points="778.91,-114.11 786.67,-106.89 776.11,-107.7 778.91,-114.11"/>
</g>
<!-- :core:datastore -->
<g id="node17" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="322" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="322" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge23" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M621.3,-153.12C568.69,-143.09 475.48,-125.01 396,-108 391.36,-107.01 386.56,-105.96 381.74,-104.89"/>
<polygon fill="black" stroke="black" points="382.52,-101.47 371.99,-102.7 380.98,-108.3 382.52,-101.47"/>
</g>
<!-- :core:network -->
<g id="node18" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="467" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="467" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge24" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M629.31,-148.97C597.96,-137.77 550.9,-120.97 515.52,-108.33"/>
<polygon fill="black" stroke="black" points="516.96,-105.13 506.36,-105.06 514.61,-111.72 516.96,-105.13"/>
</g>
<!-- :core:notifications -->
<g id="node19" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="663" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="663" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge26" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M663,-143.7C663,-136.41 663,-127.73 663,-119.54"/>
<polygon fill="black" stroke="black" points="666.5,-119.62 663,-109.62 659.5,-119.62 666.5,-119.62"/>
</g>
<!-- :sync:work&#45;&gt;:core:data -->
<g id="edge58" class="edge">
<title>:sync:work&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M1053.37,-222.06C1044.72,-219.87 1035.58,-217.73 1027,-216 918.84,-194.26 790.89,-177.73 719.12,-169.27"/>
<polygon fill="black" stroke="black" points="719.94,-165.84 709.6,-168.16 719.13,-172.8 719.94,-165.84"/>
</g>
<!-- :sync:work&#45;&gt;:core:analytics -->
<g id="edge57" class="edge">
<title>:sync:work&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M1078.53,-216.43C1057,-191.77 1016.33,-145.2 991.07,-116.27"/>
<polygon fill="black" stroke="black" points="993.97,-114.27 984.75,-109.04 988.7,-118.88 993.97,-114.27"/>
</g>
<!-- :core:domain&#45;&gt;:core:data -->
<g id="edge35" class="edge">
<title>:core:domain&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M877.53,-221.2C831.66,-208.76 759.53,-189.19 711.76,-176.23"/>
<polygon fill="red" stroke="red" stroke-width="2" points="714.26,-173.28 703.69,-174.04 712.42,-180.04 714.26,-173.28"/>
</g>
<!-- :core:domain&#45;&gt;:core:model -->
<g id="edge36" class="edge">
<title>:core:domain&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M947.98,-217.6C996,-188.3 1087.32,-122.93 1043,-72 1003.2,-26.26 827.85,-18.77 729.86,-18.26"/>
<polygon fill="black" stroke="black" points="730.12,-14.76 720.11,-18.24 730.1,-21.76 730.12,-14.76"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge27" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M789.46,-74.33C765.06,-63.65 731.83,-49.11 705.55,-37.62"/>
<polygon fill="red" stroke="red" stroke-width="2" points="708.47,-35.07 697.91,-34.27 705.66,-41.49 708.47,-35.07"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge30" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M339.3,-72.41C348.33,-63.76 359.54,-53 369.54,-43.42"/>
<polygon fill="black" stroke="black" points="371.68,-46.21 376.48,-36.76 366.84,-41.16 371.68,-46.21"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge29" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M370.52,-77.64C379,-75.71 387.75,-73.77 396,-72 467.83,-56.62 550.87,-40.38 605.03,-29.99"/>
<polygon fill="black" stroke="black" points="605.48,-33.47 614.64,-28.15 604.16,-26.59 605.48,-33.47"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node20" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="224" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="224" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge28" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M299.27,-72.76C286.59,-63.71 270.58,-52.27 256.59,-42.28"/>
<polygon fill="black" stroke="black" points="258.69,-39.48 248.52,-36.51 254.62,-45.17 258.69,-39.48"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge31" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M449.94,-72.41C440.97,-63.69 429.81,-52.85 419.9,-43.21"/>
<polygon fill="black" stroke="black" points="422.64,-40.99 413.03,-36.53 417.76,-46.01 422.64,-40.99"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge32" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M504.79,-75.5C536.51,-64.17 581.97,-47.94 616.03,-35.78"/>
<polygon fill="black" stroke="black" points="616.98,-39.15 625.23,-32.49 614.63,-32.56 616.98,-39.15"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge34" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M612.59,-75.83C566.97,-63.92 499.83,-46.38 452.21,-33.94"/>
<polygon fill="black" stroke="black" points="453.18,-30.58 442.62,-31.44 451.41,-37.35 453.18,-30.58"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge33" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M663,-71.7C663,-64.41 663,-55.73 663,-47.54"/>
<polygon fill="black" stroke="black" points="666.5,-47.62 663,-37.62 659.5,-47.62 666.5,-47.62"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="449pt" height="188pt"
viewBox="0.00 0.00 448.51 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-184 444.51,-184 444.51,4 -4,4"/>
<!-- :app&#45;nia&#45;catalog -->
<g id="node1" class="node">
<title>:app&#45;nia&#45;catalog</title>
<ellipse fill="none" stroke="black" cx="164.06" cy="-162" rx="70.8" ry="18"/>
<text text-anchor="middle" x="164.06" y="-156.95" font-family="Times,serif" font-size="14.00">:app&#45;nia&#45;catalog</text>
</g>
<!-- :core:designsystem -->
<g id="node2" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-18" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :app&#45;nia&#45;catalog&#45;&gt;:core:designsystem -->
<g id="edge1" class="edge">
<title>:app&#45;nia&#45;catalog&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M154.17,-143.87C140.13,-119.56 114.29,-74.82 97.66,-46.01"/>
<polygon fill="black" stroke="black" points="100.77,-44.41 92.74,-37.5 94.71,-47.91 100.77,-44.41"/>
</g>
<!-- :core:ui -->
<g id="node3" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="222.06" cy="-90" rx="39.07" ry="18"/>
<text text-anchor="middle" x="222.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :app&#45;nia&#45;catalog&#45;&gt;:core:ui -->
<g id="edge2" class="edge">
<title>:app&#45;nia&#45;catalog&#45;&gt;:core:ui</title>
<path fill="none" stroke="red" stroke-width="2" d="M178.1,-144.05C185.04,-135.68 193.55,-125.4 201.23,-116.13"/>
<polygon fill="red" stroke="red" stroke-width="2" points="202.93,-119.57 206.62,-109.64 197.54,-115.11 202.93,-119.57"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge4" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M196.38,-76.16C176.17,-66.05 147.57,-51.76 124.04,-39.99"/>
<polygon fill="black" stroke="black" points="125.83,-36.97 115.32,-35.63 122.7,-43.23 125.83,-36.97"/>
</g>
<!-- :core:analytics -->
<g id="node4" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="247.06" cy="-18" rx="64.66" ry="18"/>
<text text-anchor="middle" x="247.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge3" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="red" stroke-width="2" d="M228.11,-72.05C230.8,-64.52 234.05,-55.44 237.08,-46.94"/>
<polygon fill="red" stroke="red" stroke-width="2" points="239.8,-49.72 239.87,-39.13 233.21,-47.37 239.8,-49.72"/>
</g>
<!-- :core:model -->
<g id="node5" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="385.06" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="385.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge5" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M250.08,-76.97C275.45,-66.07 313.21,-49.86 342.35,-37.34"/>
<polygon fill="black" stroke="black" points="343.45,-40.68 351.26,-33.52 340.69,-34.25 343.45,-40.68"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="137pt" height="44pt"
viewBox="0.00 0.00 137.32 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 133.32,-40 133.32,4 -4,4"/>
<!-- :core:analytics -->
<g id="node1" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="64.66" cy="-18" rx="64.66" ry="18"/>
<text text-anchor="middle" x="64.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 863 B

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="138pt" height="44pt"
viewBox="0.00 0.00 138.34 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 134.34,-40 134.34,4 -4,4"/>
<!-- :core:common -->
<g id="node1" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="65.17" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="65.17" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 854 B

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="763pt" height="188pt"
viewBox="0.00 0.00 762.55 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-184 758.55,-184 758.55,4 -4,4"/>
<!-- :core:data -->
<g id="node1" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="315.89" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="315.89" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :core:common -->
<g id="node2" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="87.89" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="87.89" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge1" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M268.42,-160.03C190.25,-157.31 39.78,-147.01 6.89,-108 -3.42,-95.77 -0.72,-86.07 6.89,-72 14.54,-57.84 27.81,-46.86 41.41,-38.66"/>
<polygon fill="black" stroke="black" points="42.93,-41.82 49.97,-33.91 39.53,-35.7 42.93,-41.82"/>
</g>
<!-- :core:database -->
<g id="node3" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="543.89" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="543.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge2" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M352.02,-149.91C389.56,-138.38 448.68,-120.23 491.38,-107.12"/>
<polygon fill="red" stroke="red" stroke-width="2" points="490.71,-110.99 499.24,-104.71 488.65,-104.3 490.71,-110.99"/>
</g>
<!-- :core:datastore -->
<g id="node4" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="396.89" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="396.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge3" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M334.27,-145.12C344.61,-136.18 357.73,-124.85 369.28,-114.86"/>
<polygon fill="black" stroke="black" points="371.31,-117.73 376.59,-108.54 366.74,-112.43 371.31,-117.73"/>
</g>
<!-- :core:network -->
<g id="node5" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="77.89" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="77.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge4" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M279.22,-150.22C239.68,-138.58 176.33,-119.95 131.26,-106.7"/>
<polygon fill="black" stroke="black" points="132.26,-103.34 121.68,-103.88 130.28,-110.06 132.26,-103.34"/>
</g>
<!-- :core:analytics -->
<g id="node6" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="689.89" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="689.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge5" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M358.9,-154.18C417.44,-144.73 525.39,-126.69 616.89,-108 621.48,-107.06 626.22,-106.05 630.98,-105.01"/>
<polygon fill="black" stroke="black" points="631.59,-108.46 640.59,-102.86 630.07,-101.63 631.59,-108.46"/>
</g>
<!-- :core:notifications -->
<g id="node7" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="235.89" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="235.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge6" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M297.74,-145.12C287.7,-136.33 275.01,-125.23 263.74,-115.37"/>
<polygon fill="black" stroke="black" points="266.06,-112.75 256.23,-108.79 261.45,-118.01 266.06,-112.75"/>
</g>
<!-- :core:model -->
<g id="node8" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="235.89" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="235.89" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge7" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M496.02,-77.7C487.65,-75.77 479.02,-73.8 470.89,-72 395.06,-55.19 375.45,-53.98 299.89,-36 296.08,-35.09 292.16,-34.13 288.21,-33.14"/>
<polygon fill="red" stroke="red" stroke-width="2" points="290.61,-30.14 280.06,-31.04 288.87,-36.92 290.61,-30.14"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge10" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M347.94,-77.72C339.58,-75.81 330.99,-73.84 322.89,-72 263.62,-58.51 195.9,-43.25 148.43,-32.58"/>
<polygon fill="black" stroke="black" points="149.42,-29.22 138.89,-30.44 147.88,-36.05 149.42,-29.22"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge9" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M363.14,-74.33C338.58,-63.65 305.15,-49.11 278.71,-37.62"/>
<polygon fill="black" stroke="black" points="280.18,-34.44 269.61,-33.66 277.39,-40.86 280.18,-34.44"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node9" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="396.89" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="396.89" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge8" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M396.89,-71.7C396.89,-64.41 396.89,-55.73 396.89,-47.54"/>
<polygon fill="black" stroke="black" points="400.39,-47.62 396.89,-37.62 393.39,-47.62 400.39,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge11" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M80.36,-71.7C81.42,-64.32 82.67,-55.52 83.85,-47.25"/>
<polygon fill="black" stroke="black" points="87.28,-48 85.23,-37.6 80.35,-47.01 87.28,-48"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge12" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M111.01,-74.33C135.11,-63.65 167.92,-49.11 193.87,-37.62"/>
<polygon fill="black" stroke="black" points="195.05,-40.92 202.78,-33.67 192.21,-34.52 195.05,-40.92"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge14" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M202.68,-73.29C181.17,-63.12 152.98,-49.79 129.92,-38.88"/>
<polygon fill="black" stroke="black" points="131.63,-35.82 121.09,-34.7 128.64,-42.14 131.63,-35.82"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge13" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M235.89,-71.7C235.89,-64.41 235.89,-55.73 235.89,-47.54"/>
<polygon fill="black" stroke="black" points="239.39,-47.62 235.89,-37.62 232.39,-47.62 239.39,-47.62"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="763pt" height="260pt"
viewBox="0.00 0.00 762.55 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 758.55,-256 758.55,4 -4,4"/>
<!-- :core:data&#45;test -->
<g id="node1" class="node">
<title>:core:data&#45;test</title>
<ellipse fill="none" stroke="black" cx="315.89" cy="-234" rx="63.12" ry="18"/>
<text text-anchor="middle" x="315.89" y="-228.95" font-family="Times,serif" font-size="14.00">:core:data&#45;test</text>
</g>
<!-- :core:data -->
<g id="node2" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="315.89" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="315.89" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :core:data&#45;test&#45;&gt;:core:data -->
<g id="edge1" class="edge">
<title>:core:data&#45;test&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M315.89,-215.7C315.89,-208.41 315.89,-199.73 315.89,-191.54"/>
<polygon fill="red" stroke="red" stroke-width="2" points="319.39,-193.13 315.89,-183.13 312.39,-193.13 319.39,-193.13"/>
</g>
<!-- :core:common -->
<g id="node3" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="87.89" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="87.89" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge2" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M268.42,-160.03C190.25,-157.31 39.78,-147.01 6.89,-108 -3.42,-95.77 -0.72,-86.07 6.89,-72 14.54,-57.84 27.81,-46.86 41.41,-38.66"/>
<polygon fill="black" stroke="black" points="42.93,-41.82 49.97,-33.91 39.53,-35.7 42.93,-41.82"/>
</g>
<!-- :core:database -->
<g id="node4" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="543.89" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="543.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge3" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M352.02,-149.91C389.56,-138.38 448.68,-120.23 491.38,-107.12"/>
<polygon fill="red" stroke="red" stroke-width="2" points="490.71,-110.99 499.24,-104.71 488.65,-104.3 490.71,-110.99"/>
</g>
<!-- :core:datastore -->
<g id="node5" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="396.89" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="396.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge4" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M334.27,-145.12C344.61,-136.18 357.73,-124.85 369.28,-114.86"/>
<polygon fill="black" stroke="black" points="371.31,-117.73 376.59,-108.54 366.74,-112.43 371.31,-117.73"/>
</g>
<!-- :core:network -->
<g id="node6" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="77.89" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="77.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge5" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M279.22,-150.22C239.68,-138.58 176.33,-119.95 131.26,-106.7"/>
<polygon fill="black" stroke="black" points="132.26,-103.34 121.68,-103.88 130.28,-110.06 132.26,-103.34"/>
</g>
<!-- :core:analytics -->
<g id="node7" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="689.89" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="689.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge6" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M358.9,-154.18C417.44,-144.73 525.39,-126.69 616.89,-108 621.48,-107.06 626.22,-106.05 630.98,-105.01"/>
<polygon fill="black" stroke="black" points="631.59,-108.46 640.59,-102.86 630.07,-101.63 631.59,-108.46"/>
</g>
<!-- :core:notifications -->
<g id="node8" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="235.89" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="235.89" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M297.74,-145.12C287.7,-136.33 275.01,-125.23 263.74,-115.37"/>
<polygon fill="black" stroke="black" points="266.06,-112.75 256.23,-108.79 261.45,-118.01 266.06,-112.75"/>
</g>
<!-- :core:model -->
<g id="node9" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="235.89" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="235.89" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge8" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M496.02,-77.7C487.65,-75.77 479.02,-73.8 470.89,-72 395.06,-55.19 375.45,-53.98 299.89,-36 296.08,-35.09 292.16,-34.13 288.21,-33.14"/>
<polygon fill="red" stroke="red" stroke-width="2" points="290.61,-30.14 280.06,-31.04 288.87,-36.92 290.61,-30.14"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge11" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M347.94,-77.72C339.58,-75.81 330.99,-73.84 322.89,-72 263.62,-58.51 195.9,-43.25 148.43,-32.58"/>
<polygon fill="black" stroke="black" points="149.42,-29.22 138.89,-30.44 147.88,-36.05 149.42,-29.22"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge10" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M363.14,-74.33C338.58,-63.65 305.15,-49.11 278.71,-37.62"/>
<polygon fill="black" stroke="black" points="280.18,-34.44 269.61,-33.66 277.39,-40.86 280.18,-34.44"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node10" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="396.89" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="396.89" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge9" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M396.89,-71.7C396.89,-64.41 396.89,-55.73 396.89,-47.54"/>
<polygon fill="black" stroke="black" points="400.39,-47.62 396.89,-37.62 393.39,-47.62 400.39,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge12" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M80.36,-71.7C81.42,-64.32 82.67,-55.52 83.85,-47.25"/>
<polygon fill="black" stroke="black" points="87.28,-48 85.23,-37.6 80.35,-47.01 87.28,-48"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge13" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M111.01,-74.33C135.11,-63.65 167.92,-49.11 193.87,-37.62"/>
<polygon fill="black" stroke="black" points="195.05,-40.92 202.78,-33.67 192.21,-34.52 195.05,-40.92"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge15" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M202.68,-73.29C181.17,-63.12 152.98,-49.79 129.92,-38.88"/>
<polygon fill="black" stroke="black" points="131.63,-35.82 121.09,-34.7 128.64,-42.14 131.63,-35.82"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge14" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M235.89,-71.7C235.89,-64.41 235.89,-55.73 235.89,-47.54"/>
<polygon fill="black" stroke="black" points="239.39,-47.62 235.89,-37.62 232.39,-47.62 239.39,-47.62"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="135pt" height="116pt"
viewBox="0.00 0.00 135.27 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-112 131.27,-112 131.27,4 -4,4"/>
<!-- :core:database -->
<g id="node1" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="63.63" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="63.63" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:model -->
<g id="node2" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="63.63" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="63.63" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge1" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M63.63,-71.7C63.63,-64.41 63.63,-55.73 63.63,-47.54"/>
<polygon fill="red" stroke="red" stroke-width="2" points="67.13,-49.13 63.63,-39.13 60.13,-49.13 67.13,-49.13"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="461pt" height="116pt"
viewBox="0.00 0.00 460.86 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-112 456.86,-112 456.86,4 -4,4"/>
<!-- :core:datastore -->
<g id="node1" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="248.69" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="248.69" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node2" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="87.69" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="87.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge1" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="red" stroke-width="2" d="M214.94,-74.33C191.52,-64.14 160.02,-50.45 134.22,-39.23"/>
<polygon fill="red" stroke="red" stroke-width="2" points="137.26,-36.73 126.69,-35.96 134.47,-43.15 137.26,-36.73"/>
</g>
<!-- :core:model -->
<g id="node3" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="248.69" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="248.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge2" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M248.69,-71.7C248.69,-64.41 248.69,-55.73 248.69,-47.54"/>
<polygon fill="black" stroke="black" points="252.19,-47.62 248.69,-37.62 245.19,-47.62 252.19,-47.62"/>
</g>
<!-- :core:common -->
<g id="node4" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="387.69" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="387.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge3" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M279.19,-73.64C299.11,-63.61 325.34,-50.4 347.03,-39.48"/>
<polygon fill="black" stroke="black" points="348.55,-42.63 355.91,-35.01 345.4,-36.38 348.55,-42.63"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="183pt" height="44pt"
viewBox="0.00 0.00 183.38 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 179.38,-40 179.38,4 -4,4"/>
<!-- :core:datastore&#45;proto -->
<g id="node1" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="87.69" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="87.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 893 B

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="461pt" height="188pt"
viewBox="0.00 0.00 460.62 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-184 456.62,-184 456.62,4 -4,4"/>
<!-- :core:datastore&#45;test -->
<g id="node1" class="node">
<title>:core:datastore&#45;test</title>
<ellipse fill="none" stroke="black" cx="150.17" cy="-162" rx="81.04" ry="18"/>
<text text-anchor="middle" x="150.17" y="-156.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;test</text>
</g>
<!-- :core:common -->
<g id="node2" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="65.17" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="65.17" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:datastore&#45;test&#45;&gt;:core:common -->
<g id="edge1" class="edge">
<title>:core:datastore&#45;test&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M139.92,-143.87C125.37,-119.56 98.58,-74.82 81.34,-46.01"/>
<polygon fill="black" stroke="black" points="84.38,-44.27 76.24,-37.49 78.37,-47.87 84.38,-44.27"/>
</g>
<!-- :core:datastore -->
<g id="node3" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="216.17" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="216.17" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:datastore&#45;test&#45;&gt;:core:datastore -->
<g id="edge2" class="edge">
<title>:core:datastore&#45;test&#45;&gt;:core:datastore</title>
<path fill="none" stroke="red" stroke-width="2" d="M166.15,-144.05C174.09,-135.63 183.85,-125.28 192.63,-115.97"/>
<polygon fill="red" stroke="red" stroke-width="2" points="193.95,-119.67 198.26,-109.99 188.86,-114.87 193.95,-119.67"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge5" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M183.78,-73.98C161.58,-63.7 131.92,-49.94 107.81,-38.77"/>
<polygon fill="black" stroke="black" points="109.43,-35.66 98.88,-34.63 106.48,-42.01 109.43,-35.66"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node4" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="236.17" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="236.17" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge3" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="red" stroke-width="2" d="M221.11,-71.7C223.25,-64.24 225.79,-55.32 228.18,-46.97"/>
<polygon fill="red" stroke="red" stroke-width="2" points="231.07,-49.59 230.45,-39.01 224.34,-47.67 231.07,-49.59"/>
</g>
<!-- :core:model -->
<g id="node5" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="397.17" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="397.17" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge4" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M252.8,-74.83C281.44,-63.76 321.41,-48.3 352.03,-36.46"/>
<polygon fill="black" stroke="black" points="352.96,-39.85 361.03,-32.98 350.44,-33.32 352.96,-39.85"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="172pt" height="44pt"
viewBox="0.00 0.00 172.12 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 168.12,-40 168.12,4 -4,4"/>
<!-- :core:designsystem -->
<g id="node1" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-18" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 872 B

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="829pt" height="260pt"
viewBox="0.00 0.00 829.46 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 825.46,-256 825.46,4 -4,4"/>
<!-- :core:domain -->
<g id="node1" class="node">
<title>:core:domain</title>
<ellipse fill="none" stroke="black" cx="623.69" cy="-234" rx="60.05" ry="18"/>
<text text-anchor="middle" x="623.69" y="-228.95" font-family="Times,serif" font-size="14.00">:core:domain</text>
</g>
<!-- :core:data -->
<g id="node2" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="418.69" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="418.69" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :core:domain&#45;&gt;:core:data -->
<g id="edge1" class="edge">
<title>:core:domain&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M585.13,-219.83C550.65,-208.06 500.11,-190.8 463.77,-178.39"/>
<polygon fill="red" stroke="red" stroke-width="2" points="466.45,-175.61 455.85,-175.69 464.18,-182.23 466.45,-175.61"/>
</g>
<!-- :core:model -->
<g id="node3" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="576.69" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="576.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:domain&#45;&gt;:core:model -->
<g id="edge2" class="edge">
<title>:core:domain&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M662.34,-219.86C730.64,-194.61 860.84,-136.09 809.69,-72 788.92,-45.98 702.6,-31.75 641.09,-24.76"/>
<polygon fill="black" stroke="black" points="641.74,-21.31 631.42,-23.7 640.98,-28.27 641.74,-21.31"/>
</g>
<!-- :core:common -->
<g id="node4" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="338.69" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="338.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge3" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M373.15,-156.52C315.42,-149.79 220.86,-134.9 199.69,-108 189.8,-95.43 190.61,-85.18 199.69,-72 215.46,-49.11 242.54,-36.1 268.63,-28.71"/>
<polygon fill="black" stroke="black" points="269.43,-32.11 278.25,-26.24 267.69,-25.33 269.43,-32.11"/>
</g>
<!-- :core:database -->
<g id="node5" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="736.69" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="736.69" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge4" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M459.48,-152.38C508.14,-142.05 591.93,-124.12 663.69,-108 668.26,-106.97 672.99,-105.9 677.74,-104.81"/>
<polygon fill="red" stroke="red" stroke-width="2" points="676.9,-108.6 685.86,-102.94 675.33,-101.78 676.9,-108.6"/>
</g>
<!-- :core:datastore -->
<g id="node6" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="87.69" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="87.69" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge5" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M378.09,-152.52C328.27,-142.11 241.25,-123.86 166.69,-108 160.86,-106.76 154.79,-105.46 148.71,-104.16"/>
<polygon fill="black" stroke="black" points="149.82,-100.82 139.31,-102.14 148.36,-107.66 149.82,-100.82"/>
</g>
<!-- :core:network -->
<g id="node7" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="418.69" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="418.69" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge6" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M418.69,-143.7C418.69,-136.41 418.69,-127.73 418.69,-119.54"/>
<polygon fill="black" stroke="black" points="422.19,-119.62 418.69,-109.62 415.19,-119.62 422.19,-119.62"/>
</g>
<!-- :core:analytics -->
<g id="node8" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="273.69" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="273.69" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M390.39,-147.34C368.99,-137.01 339.3,-122.67 315.21,-111.05"/>
<polygon fill="black" stroke="black" points="316.83,-107.94 306.3,-106.74 313.78,-114.24 316.83,-107.94"/>
</g>
<!-- :core:notifications -->
<g id="node9" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="576.69" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="576.69" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M448.78,-147.67C472.18,-137.3 505.01,-122.76 531.55,-111"/>
<polygon fill="black" stroke="black" points="532.64,-114.34 540.37,-107.09 529.81,-107.94 532.64,-114.34"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge9" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M703.15,-74.33C678.75,-63.65 645.52,-49.11 619.24,-37.62"/>
<polygon fill="red" stroke="red" stroke-width="2" points="622.16,-35.07 611.6,-34.27 619.35,-41.49 622.16,-35.07"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge11" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M143.5,-80.41C161.44,-77.68 181.4,-74.67 199.69,-72 310.88,-55.75 440.67,-37.7 515.31,-27.42"/>
<polygon fill="black" stroke="black" points="515.43,-30.94 524.86,-26.1 514.47,-24 515.43,-30.94"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge12" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M132.27,-76.57C174.44,-64.81 237.85,-47.12 283.26,-34.46"/>
<polygon fill="black" stroke="black" points="283.95,-37.9 292.64,-31.84 282.07,-31.16 283.95,-37.9"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node10" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="87.69" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="87.69" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge10" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M87.69,-71.7C87.69,-64.41 87.69,-55.73 87.69,-47.54"/>
<polygon fill="black" stroke="black" points="91.19,-47.62 87.69,-37.62 84.19,-47.62 91.19,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge14" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M451.81,-74.33C475.91,-63.65 508.72,-49.11 534.67,-37.62"/>
<polygon fill="black" stroke="black" points="535.85,-40.92 543.58,-33.67 533.01,-34.52 535.85,-40.92"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge13" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M399.73,-72.41C389.67,-63.61 377.12,-52.63 366.03,-42.92"/>
<polygon fill="black" stroke="black" points="368.48,-40.42 358.65,-36.47 363.87,-45.69 368.48,-40.42"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M576.69,-71.7C576.69,-64.41 576.69,-55.73 576.69,-47.54"/>
<polygon fill="black" stroke="black" points="580.19,-47.62 576.69,-37.62 573.19,-47.62 580.19,-47.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M529.95,-75.25C490.64,-63.69 434.4,-47.15 393.08,-35"/>
<polygon fill="black" stroke="black" points="394.15,-31.66 383.56,-32.2 392.17,-38.38 394.15,-31.66"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="119pt" height="44pt"
viewBox="0.00 0.00 118.89 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 114.89,-40 114.89,4 -4,4"/>
<!-- :core:model -->
<g id="node1" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="55.45" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="55.45" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 851 B

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="268pt" height="116pt"
viewBox="0.00 0.00 267.62 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-112 263.62,-112 263.62,4 -4,4"/>
<!-- :core:network -->
<g id="node1" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="134.17" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="134.17" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:common -->
<g id="node2" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="65.17" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="65.17" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge1" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="red" stroke-width="2" d="M117.82,-72.41C109.31,-63.78 98.75,-53.06 89.32,-43.5"/>
<polygon fill="red" stroke="red" stroke-width="2" points="93.04,-42.29 83.53,-37.63 88.06,-47.2 93.04,-42.29"/>
</g>
<!-- :core:model -->
<g id="node3" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="204.17" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="204.17" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge2" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M150.76,-72.41C159.39,-63.78 170.11,-53.06 179.67,-43.5"/>
<polygon fill="black" stroke="black" points="182.03,-46.09 186.63,-36.54 177.08,-41.14 182.03,-46.09"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="268pt" height="116pt"
viewBox="0.00 0.00 267.62 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-112 263.62,-112 263.62,4 -4,4"/>
<!-- :core:notifications -->
<g id="node1" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="124.45" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="124.45" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:model -->
<g id="node2" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="55.45" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="55.45" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge1" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M107.74,-72.05C99.23,-63.42 88.72,-52.76 79.37,-43.27"/>
<polygon fill="red" stroke="red" stroke-width="2" points="83.16,-42.13 73.64,-37.46 78.17,-47.04 83.16,-42.13"/>
</g>
<!-- :core:common -->
<g id="node3" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="194.45" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="194.45" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge2" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M141.39,-72.05C149.9,-63.54 160.38,-53.07 169.76,-43.68"/>
<polygon fill="black" stroke="black" points="171.99,-46.41 176.59,-36.86 167.04,-41.46 171.99,-46.41"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,199 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1055pt" height="260pt"
viewBox="0.00 0.00 1054.70 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 1050.7,-256 1050.7,4 -4,4"/>
<!-- :core:testing -->
<g id="node1" class="node">
<title>:core:testing</title>
<ellipse fill="none" stroke="black" cx="650.64" cy="-234" rx="56.47" ry="18"/>
<text text-anchor="middle" x="650.64" y="-228.95" font-family="Times,serif" font-size="14.00">:core:testing</text>
</g>
<!-- :core:analytics -->
<g id="node2" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="114.64" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="114.64" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:testing&#45;&gt;:core:analytics -->
<g id="edge1" class="edge">
<title>:core:testing&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M608.13,-221.74C512.24,-196.33 279.05,-134.56 171.14,-105.97"/>
<polygon fill="black" stroke="black" points="172.19,-102.63 161.63,-103.45 170.4,-109.39 172.19,-102.63"/>
</g>
<!-- :core:data -->
<g id="node3" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="552.64" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="552.64" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :core:testing&#45;&gt;:core:data -->
<g id="edge2" class="edge">
<title>:core:testing&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M628.4,-217.12C615.06,-207.59 597.9,-195.33 583.29,-184.89"/>
<polygon fill="red" stroke="red" stroke-width="2" points="586.75,-183.06 576.58,-180.1 582.68,-188.76 586.75,-183.06"/>
</g>
<!-- :core:model -->
<g id="node4" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="455.64" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="455.64" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:testing&#45;&gt;:core:model -->
<g id="edge3" class="edge">
<title>:core:testing&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M594.71,-230.48C457.07,-222.97 108.18,-195.5 40.64,-108 -29.97,-16.52 -58.46,-118.33 391.64,-36 395.73,-35.25 399.93,-34.38 404.15,-33.43"/>
<polygon fill="black" stroke="black" points="404.85,-36.86 413.76,-31.12 403.22,-30.05 404.85,-36.86"/>
</g>
<!-- :core:notifications -->
<g id="node5" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="748.64" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="748.64" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:testing&#45;&gt;:core:notifications -->
<g id="edge4" class="edge">
<title>:core:testing&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M662.27,-216.15C679.12,-191.73 710.5,-146.26 730.44,-117.38"/>
<polygon fill="black" stroke="black" points="733.06,-119.73 735.86,-109.51 727.3,-115.76 733.06,-119.73"/>
</g>
<!-- :core:common -->
<g id="node6" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="642.64" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="642.64" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:testing&#45;&gt;:core:common -->
<g id="edge5" class="edge">
<title>:core:testing&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M688.31,-220.23C755.69,-195.37 885.33,-137.18 835.64,-72 820.35,-51.94 760.32,-37.59 711.22,-28.92"/>
<polygon fill="black" stroke="black" points="711.91,-25.49 701.47,-27.25 710.73,-32.39 711.91,-25.49"/>
</g>
<!-- :core:designsystem -->
<g id="node7" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="964.64" cy="-162" rx="82.06" ry="18"/>
<text text-anchor="middle" x="964.64" y="-156.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :core:testing&#45;&gt;:core:designsystem -->
<g id="edge6" class="edge">
<title>:core:testing&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M695.96,-222.9C748.81,-211.12 836.64,-191.53 897.43,-177.98"/>
<polygon fill="black" stroke="black" points="897.97,-181.45 906.97,-175.86 896.45,-174.62 897.97,-181.45"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M507.77,-155.73C438.7,-147.33 302.32,-129.64 187.64,-108 182.84,-107.09 177.87,-106.09 172.89,-105.03"/>
<polygon fill="black" stroke="black" points="174.03,-101.69 163.51,-102.97 172.53,-108.53 174.03,-101.69"/>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M586.33,-148.97C616.79,-138.09 662.07,-121.92 697.07,-109.42"/>
<polygon fill="black" stroke="black" points="697.91,-112.83 706.15,-106.17 695.56,-106.24 697.91,-112.83"/>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M580.17,-146.93C595.27,-137.83 613.02,-124.58 623.64,-108 635.18,-90 639.83,-66.15 641.65,-47.67"/>
<polygon fill="black" stroke="black" points="645.12,-48.16 642.37,-37.93 638.14,-47.65 645.12,-48.16"/>
</g>
<!-- :core:database -->
<g id="node8" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="260.64" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="260.64" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M513.26,-151.56C463.35,-139.59 376.88,-118.87 319.22,-105.04"/>
<polygon fill="red" stroke="red" stroke-width="2" points="321.57,-102.01 311.03,-103.08 319.94,-108.81 321.57,-102.01"/>
</g>
<!-- :core:datastore -->
<g id="node9" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="407.64" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="407.64" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge9" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M524.34,-147.34C503.02,-137.04 473.45,-122.77 449.41,-111.16"/>
<polygon fill="black" stroke="black" points="451.03,-108.06 440.51,-106.87 447.99,-114.37 451.03,-108.06"/>
</g>
<!-- :core:network -->
<g id="node10" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="552.64" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="552.64" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge10" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M552.64,-143.7C552.64,-136.41 552.64,-127.73 552.64,-119.54"/>
<polygon fill="black" stroke="black" points="556.14,-119.62 552.64,-109.62 549.14,-119.62 556.14,-119.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M695.92,-76.4C643.47,-63.87 563.35,-44.73 510.25,-32.05"/>
<polygon fill="black" stroke="black" points="511.36,-28.71 500.82,-29.79 509.73,-35.52 511.36,-28.71"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge20" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M723.79,-72.59C709.6,-63.22 691.62,-51.34 676.19,-41.16"/>
<polygon fill="black" stroke="black" points="678.51,-38.49 668.24,-35.9 674.65,-44.33 678.51,-38.49"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge13" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M298.7,-75.34C330.21,-64.03 375.1,-47.91 408.81,-35.81"/>
<polygon fill="red" stroke="red" stroke-width="2" points="408.25,-39.73 416.48,-33.06 405.88,-33.14 408.25,-39.73"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M419.26,-72.05C424.8,-63.97 431.56,-54.12 437.74,-45.11"/>
<polygon fill="black" stroke="black" points="440.5,-47.26 443.27,-37.04 434.73,-43.31 440.5,-47.26"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M450.74,-76.16C489.55,-64.6 546.73,-47.57 588.59,-35.1"/>
<polygon fill="black" stroke="black" points="589.38,-38.52 597.96,-32.31 587.38,-31.81 589.38,-38.52"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node11" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="294.64" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="294.64" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge14" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M382,-73.12C366.87,-63.74 347.47,-51.73 330.81,-41.4"/>
<polygon fill="black" stroke="black" points="332.99,-38.64 322.65,-36.35 329.3,-44.59 332.99,-38.64"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge18" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M530.14,-72.76C517.32,-63.51 501.05,-51.77 486.99,-41.63"/>
<polygon fill="black" stroke="black" points="489.07,-38.81 478.91,-35.79 484.97,-44.48 489.07,-38.81"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge17" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M573.52,-72.76C585.13,-63.73 599.79,-52.33 612.62,-42.35"/>
<polygon fill="black" stroke="black" points="614.63,-45.22 620.37,-36.32 610.33,-39.7 614.63,-45.22"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="449pt" height="116pt"
viewBox="0.00 0.00 449.10 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-112 445.1,-112 445.1,4 -4,4"/>
<!-- :core:ui -->
<g id="node1" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="229.66" cy="-90" rx="39.07" ry="18"/>
<text text-anchor="middle" x="229.66" y="-84.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :core:analytics -->
<g id="node2" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="64.66" cy="-18" rx="64.66" ry="18"/>
<text text-anchor="middle" x="64.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge1" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="red" stroke-width="2" d="M201.67,-77.13C176.45,-66.43 138.92,-50.51 109.52,-38.03"/>
<polygon fill="red" stroke="red" stroke-width="2" points="112.45,-35.47 101.88,-34.79 109.72,-41.92 112.45,-35.47"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="229.66" cy="-18" rx="82.06" ry="18"/>
<text text-anchor="middle" x="229.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M229.66,-71.7C229.66,-64.41 229.66,-55.73 229.66,-47.54"/>
<polygon fill="black" stroke="black" points="233.16,-47.62 229.66,-37.62 226.16,-47.62 233.16,-47.62"/>
</g>
<!-- :core:model -->
<g id="node4" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="385.66" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="385.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge3" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M256.83,-76.81C280.83,-66.04 316.19,-50.17 343.8,-37.78"/>
<polygon fill="black" stroke="black" points="344.89,-41.13 352.58,-33.84 342.02,-34.74 344.89,-41.13"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1028pt" height="260pt"
viewBox="0.00 0.00 1027.75 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 1023.75,-256 1023.75,4 -4,4"/>
<!-- :feature:bookmarks -->
<g id="node1" class="node">
<title>:feature:bookmarks</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-234" rx="83.08" ry="18"/>
<text text-anchor="middle" x="192.06" y="-228.95" font-family="Times,serif" font-size="14.00">:feature:bookmarks</text>
</g>
<!-- :core:ui -->
<g id="node2" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-162" rx="39.07" ry="18"/>
<text text-anchor="middle" x="192.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:ui -->
<g id="edge1" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M192.06,-215.7C192.06,-208.41 192.06,-199.73 192.06,-191.54"/>
<polygon fill="black" stroke="black" points="195.56,-191.62 192.06,-181.62 188.56,-191.62 195.56,-191.62"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-90" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M175.93,-216.3C166.33,-206.1 154.11,-192.63 144.06,-180 128.01,-159.83 111.39,-135.78 99.41,-117.77"/>
<polygon fill="black" stroke="black" points="102.35,-115.88 93.93,-109.46 96.51,-119.73 102.35,-115.88"/>
</g>
<!-- :core:data -->
<g id="node4" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="591.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:data -->
<g id="edge3" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M255.28,-221.91C333.19,-208.24 464.2,-185.26 537.42,-172.41"/>
<polygon fill="red" stroke="red" stroke-width="2" points="536.43,-176.14 545.68,-170.96 535.22,-169.24 536.43,-176.14"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge5" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M169.8,-146.83C154.65,-137.19 134.29,-124.24 117,-113.23"/>
<polygon fill="black" stroke="black" points="119.35,-110.58 109.04,-108.17 115.59,-116.49 119.35,-110.58"/>
</g>
<!-- :core:analytics -->
<g id="node5" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="285.06" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="285.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge4" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M211.78,-146.15C224.2,-136.81 240.49,-124.54 254.56,-113.96"/>
<polygon fill="black" stroke="black" points="256.32,-117.01 262.21,-108.2 252.11,-111.42 256.32,-117.01"/>
</g>
<!-- :core:model -->
<g id="node6" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="591.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge6" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M190.4,-143.81C189.47,-123.54 191.4,-90.3 211.06,-72 255.22,-30.9 427.13,-21.43 523.91,-19.4"/>
<polygon fill="black" stroke="black" points="523.87,-22.9 533.81,-19.22 523.74,-15.9 523.87,-22.9"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M551.05,-151.97C504.63,-141.47 425.78,-123.59 358.06,-108 353.57,-106.97 348.92,-105.89 344.24,-104.81"/>
<polygon fill="black" stroke="black" points="345.36,-101.48 334.82,-102.62 343.78,-108.29 345.36,-101.48"/>
</g>
<!-- :core:common -->
<g id="node7" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="755.06" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="755.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M636.86,-157.02C697,-150.74 797.62,-136.23 820.06,-108 830.02,-95.48 826.92,-86.45 820.06,-72 814.21,-59.69 803.96,-49.3 793.29,-41.07"/>
<polygon fill="black" stroke="black" points="795.33,-38.22 785.15,-35.27 791.27,-43.92 795.33,-38.22"/>
</g>
<!-- :core:database -->
<g id="node8" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="431.06" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="431.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M560.97,-147.83C536.75,-137.24 502.38,-122.2 475.07,-110.26"/>
<polygon fill="red" stroke="red" stroke-width="2" points="477.95,-107.7 467.39,-106.89 475.15,-114.11 477.95,-107.7"/>
</g>
<!-- :core:datastore -->
<g id="node9" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="932.06" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="932.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge9" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M632.39,-152.8C684.04,-142.52 775.15,-124.26 853.06,-108 858.9,-106.78 864.97,-105.5 871.05,-104.21"/>
<polygon fill="black" stroke="black" points="871.4,-107.71 880.45,-102.2 869.94,-100.87 871.4,-107.71"/>
</g>
<!-- :core:network -->
<g id="node10" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="749.06" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="749.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge10" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M621.15,-147.67C645.1,-137.06 678.94,-122.07 705.79,-110.17"/>
<polygon fill="black" stroke="black" points="706.97,-113.47 714.7,-106.22 704.14,-107.07 706.97,-113.47"/>
</g>
<!-- :core:notifications -->
<g id="node11" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="591.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M591.06,-143.7C591.06,-136.41 591.06,-127.73 591.06,-119.54"/>
<polygon fill="black" stroke="black" points="594.56,-119.62 591.06,-109.62 587.56,-119.62 594.56,-119.62"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge13" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M464.6,-74.33C489,-63.65 522.23,-49.11 548.51,-37.62"/>
<polygon fill="red" stroke="red" stroke-width="2" points="548.4,-41.49 556.15,-34.27 545.59,-35.07 548.4,-41.49"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M881.01,-78.52C818.61,-65.71 713.32,-44.1 648.25,-30.74"/>
<polygon fill="black" stroke="black" points="648.97,-27.31 638.47,-28.73 647.56,-34.17 648.97,-27.31"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M895.81,-74.67C868.61,-63.91 831.14,-49.09 801.71,-37.45"/>
<polygon fill="black" stroke="black" points="803.25,-34.29 792.66,-33.87 800.68,-40.8 803.25,-34.29"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node12" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="932.06" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="932.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge14" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M932.06,-71.7C932.06,-64.41 932.06,-55.73 932.06,-47.54"/>
<polygon fill="black" stroke="black" points="935.56,-47.62 932.06,-37.62 928.56,-47.62 935.56,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge18" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M715.94,-74.33C691.84,-63.65 659.03,-49.11 633.08,-37.62"/>
<polygon fill="black" stroke="black" points="634.74,-34.52 624.17,-33.67 631.9,-40.92 634.74,-34.52"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge17" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M750.54,-71.7C751.17,-64.41 751.91,-55.73 752.61,-47.54"/>
<polygon fill="black" stroke="black" points="756.1,-47.87 753.46,-37.61 749.12,-47.28 756.1,-47.87"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M591.06,-71.7C591.06,-64.41 591.06,-55.73 591.06,-47.54"/>
<polygon fill="black" stroke="black" points="594.56,-47.62 591.06,-37.62 587.56,-47.62 594.56,-47.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge20" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M627.05,-73.64C651.5,-63.2 684.01,-49.33 710.15,-38.17"/>
<polygon fill="black" stroke="black" points="711.34,-41.47 719.17,-34.32 708.59,-35.03 711.34,-41.47"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1073pt" height="332pt"
viewBox="0.00 0.00 1072.75 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-328 1068.75,-328 1068.75,4 -4,4"/>
<!-- :feature:foryou -->
<g id="node1" class="node">
<title>:feature:foryou</title>
<ellipse fill="none" stroke="black" cx="250.06" cy="-306" rx="66.19" ry="18"/>
<text text-anchor="middle" x="250.06" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:foryou</text>
</g>
<!-- :core:ui -->
<g id="node2" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-234" rx="39.07" ry="18"/>
<text text-anchor="middle" x="192.06" y="-228.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :feature:foryou&#45;&gt;:core:ui -->
<g id="edge1" class="edge">
<title>:feature:foryou&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M236.02,-288.05C229.08,-279.68 220.57,-269.4 212.89,-260.13"/>
<polygon fill="black" stroke="black" points="215.61,-257.94 206.54,-252.47 210.22,-262.41 215.61,-257.94"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-162" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :feature:foryou&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:feature:foryou&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M211.24,-291.1C189.86,-282.17 163.75,-269.02 144.06,-252 123.99,-234.64 107.23,-209.43 96.22,-190.27"/>
<polygon fill="black" stroke="black" points="99.35,-188.7 91.44,-181.66 93.23,-192.1 99.35,-188.7"/>
</g>
<!-- :core:data -->
<g id="node4" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="568.06" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="568.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :feature:foryou&#45;&gt;:core:data -->
<g id="edge3" class="edge">
<title>:feature:foryou&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M286.11,-290.58C311.86,-280.16 347.25,-265.59 378.06,-252 430.92,-228.69 491.2,-200.11 529.43,-181.73"/>
<polygon fill="black" stroke="black" points="530.74,-184.98 538.23,-177.48 527.71,-178.67 530.74,-184.98"/>
</g>
<!-- :core:domain -->
<g id="node5" class="node">
<title>:core:domain</title>
<ellipse fill="none" stroke="black" cx="309.06" cy="-234" rx="60.05" ry="18"/>
<text text-anchor="middle" x="309.06" y="-228.95" font-family="Times,serif" font-size="14.00">:core:domain</text>
</g>
<!-- :feature:foryou&#45;&gt;:core:domain -->
<g id="edge4" class="edge">
<title>:feature:foryou&#45;&gt;:core:domain</title>
<path fill="none" stroke="red" stroke-width="2" d="M264.34,-288.05C271.3,-279.8 279.81,-269.7 287.54,-260.54"/>
<polygon fill="red" stroke="red" stroke-width="2" points="289.19,-264.01 292.96,-254.1 283.84,-259.49 289.19,-264.01"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge6" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M169.8,-218.83C154.65,-209.19 134.29,-196.24 117,-185.23"/>
<polygon fill="black" stroke="black" points="119.35,-182.58 109.04,-180.17 115.59,-188.49 119.35,-182.58"/>
</g>
<!-- :core:analytics -->
<g id="node6" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="342.06" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="342.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge5" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M208.69,-217.26C234.76,-192.58 285.48,-144.57 316.3,-115.38"/>
<polygon fill="black" stroke="black" points="318.48,-118.14 323.33,-108.73 313.67,-113.06 318.48,-118.14"/>
</g>
<!-- :core:model -->
<g id="node7" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="568.06" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="568.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge7" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M192.94,-215.73C195.65,-182.32 206.61,-108.88 251.06,-72 288.33,-41.08 420.81,-27.72 502.24,-22.33"/>
<polygon fill="black" stroke="black" points="502.11,-25.84 511.87,-21.71 501.66,-18.86 502.11,-25.84"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M532.25,-149.91C495.35,-138.48 437.4,-120.53 395.16,-107.45"/>
<polygon fill="black" stroke="black" points="396.27,-104.13 385.69,-104.51 394.2,-110.81 396.27,-104.13"/>
</g>
<!-- :core:common -->
<g id="node8" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="806.06" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="806.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M614.84,-159.04C725.87,-153.9 998.07,-138.31 1025.06,-108 1035.7,-96.05 1034.95,-84.57 1025.06,-72 1023.79,-70.39 929.84,-48.06 865.42,-32.9"/>
<polygon fill="black" stroke="black" points="866.57,-29.58 856.03,-30.7 864.97,-36.39 866.57,-29.58"/>
</g>
<!-- :core:database -->
<g id="node9" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="488.06" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="488.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge9" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M549.91,-145.12C539.69,-136.18 526.74,-124.85 515.33,-114.86"/>
<polygon fill="red" stroke="red" stroke-width="2" points="519.08,-113.5 509.25,-109.54 514.48,-118.76 519.08,-113.5"/>
</g>
<!-- :core:datastore -->
<g id="node10" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="951.06" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="951.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge10" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M611.44,-154.34C671.36,-144.97 782.73,-126.91 877.06,-108 881.92,-107.03 886.94,-105.97 891.98,-104.88"/>
<polygon fill="black" stroke="black" points="892.49,-108.35 901.5,-102.78 890.98,-101.52 892.49,-108.35"/>
</g>
<!-- :core:network -->
<g id="node11" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="806.06" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="806.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M604.73,-150.22C644.27,-138.58 707.62,-119.95 752.69,-106.7"/>
<polygon fill="black" stroke="black" points="753.67,-110.06 762.27,-103.88 751.69,-103.34 753.67,-110.06"/>
</g>
<!-- :core:notifications -->
<g id="node12" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="648.06" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="648.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge13" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M586.21,-145.12C596.25,-136.33 608.94,-125.23 620.21,-115.37"/>
<polygon fill="black" stroke="black" points="622.5,-118.01 627.72,-108.79 617.89,-112.75 622.5,-118.01"/>
</g>
<!-- :core:domain&#45;&gt;:core:data -->
<g id="edge22" class="edge">
<title>:core:domain&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M352.7,-221.2C398.75,-208.76 471.15,-189.19 519.11,-176.23"/>
<polygon fill="red" stroke="red" stroke-width="2" points="518.48,-180.02 527.22,-174.04 516.66,-173.27 518.48,-180.02"/>
</g>
<!-- :core:domain&#45;&gt;:core:model -->
<g id="edge23" class="edge">
<title>:core:domain&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M296.33,-216.3C273.75,-184.5 232.28,-114.65 268.06,-72 297.26,-37.19 422.38,-25.23 501.52,-21.13"/>
<polygon fill="black" stroke="black" points="501.52,-24.64 511.34,-20.66 501.18,-17.64 501.52,-24.64"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge14" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M507.02,-72.41C517.15,-63.54 529.81,-52.47 540.96,-42.71"/>
<polygon fill="red" stroke="red" stroke-width="2" points="542.01,-46.44 547.23,-37.22 537.4,-41.17 542.01,-46.44"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge16" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M902.98,-77.54C894.37,-75.61 885.46,-73.68 877.06,-72 791.15,-54.78 691.1,-38.26 628.66,-28.37"/>
<polygon fill="black" stroke="black" points="629.37,-24.94 618.95,-26.83 628.28,-31.85 629.37,-24.94"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge17" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M919.6,-73.81C898.51,-63.63 870.51,-50.11 847.59,-39.05"/>
<polygon fill="black" stroke="black" points="849.35,-36.01 838.82,-34.82 846.31,-42.32 849.35,-36.01"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node13" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="977.06" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="977.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge15" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M957.49,-71.7C960.29,-64.15 963.64,-55.12 966.78,-46.68"/>
<polygon fill="black" stroke="black" points="969.98,-48.12 970.18,-37.52 963.42,-45.68 969.98,-48.12"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M763.51,-76.49C723.04,-64.58 662.12,-46.67 619.07,-34"/>
<polygon fill="black" stroke="black" points="620.29,-30.71 609.71,-31.25 618.32,-37.43 620.29,-30.71"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge18" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M806.06,-71.7C806.06,-64.41 806.06,-55.73 806.06,-47.54"/>
<polygon fill="black" stroke="black" points="809.56,-47.62 806.06,-37.62 802.56,-47.62 809.56,-47.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge20" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M629.1,-72.41C618.97,-63.54 606.31,-52.47 595.15,-42.71"/>
<polygon fill="black" stroke="black" points="597.58,-40.18 587.75,-36.23 592.97,-45.44 597.58,-40.18"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge21" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M683.13,-73.46C706.43,-63.14 737.22,-49.5 762.16,-38.45"/>
<polygon fill="black" stroke="black" points="763.34,-41.76 771.06,-34.51 760.5,-35.36 763.34,-41.76"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1073pt" height="332pt"
viewBox="0.00 0.00 1072.75 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-328 1068.75,-328 1068.75,4 -4,4"/>
<!-- :feature:interests -->
<g id="node1" class="node">
<title>:feature:interests</title>
<ellipse fill="none" stroke="black" cx="250.06" cy="-306" rx="72.34" ry="18"/>
<text text-anchor="middle" x="250.06" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:interests</text>
</g>
<!-- :core:ui -->
<g id="node2" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-234" rx="39.07" ry="18"/>
<text text-anchor="middle" x="192.06" y="-228.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :feature:interests&#45;&gt;:core:ui -->
<g id="edge1" class="edge">
<title>:feature:interests&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M236.02,-288.05C229.08,-279.68 220.57,-269.4 212.89,-260.13"/>
<polygon fill="black" stroke="black" points="215.61,-257.94 206.54,-252.47 210.22,-262.41 215.61,-257.94"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-162" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :feature:interests&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:feature:interests&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M209.97,-290.57C188.83,-281.64 163.36,-268.69 144.06,-252 123.99,-234.64 107.23,-209.43 96.22,-190.27"/>
<polygon fill="black" stroke="black" points="99.35,-188.7 91.44,-181.66 93.23,-192.1 99.35,-188.7"/>
</g>
<!-- :core:data -->
<g id="node4" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="568.06" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="568.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :feature:interests&#45;&gt;:core:data -->
<g id="edge3" class="edge">
<title>:feature:interests&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M287.22,-290.14C312.87,-279.75 347.69,-265.39 378.06,-252 430.92,-228.69 491.2,-200.11 529.43,-181.73"/>
<polygon fill="black" stroke="black" points="530.74,-184.98 538.23,-177.48 527.71,-178.67 530.74,-184.98"/>
</g>
<!-- :core:domain -->
<g id="node5" class="node">
<title>:core:domain</title>
<ellipse fill="none" stroke="black" cx="309.06" cy="-234" rx="60.05" ry="18"/>
<text text-anchor="middle" x="309.06" y="-228.95" font-family="Times,serif" font-size="14.00">:core:domain</text>
</g>
<!-- :feature:interests&#45;&gt;:core:domain -->
<g id="edge4" class="edge">
<title>:feature:interests&#45;&gt;:core:domain</title>
<path fill="none" stroke="red" stroke-width="2" d="M264.34,-288.05C271.3,-279.8 279.81,-269.7 287.54,-260.54"/>
<polygon fill="red" stroke="red" stroke-width="2" points="289.19,-264.01 292.96,-254.1 283.84,-259.49 289.19,-264.01"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge6" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M169.8,-218.83C154.65,-209.19 134.29,-196.24 117,-185.23"/>
<polygon fill="black" stroke="black" points="119.35,-182.58 109.04,-180.17 115.59,-188.49 119.35,-182.58"/>
</g>
<!-- :core:analytics -->
<g id="node6" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="342.06" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="342.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge5" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M208.69,-217.26C234.76,-192.58 285.48,-144.57 316.3,-115.38"/>
<polygon fill="black" stroke="black" points="318.48,-118.14 323.33,-108.73 313.67,-113.06 318.48,-118.14"/>
</g>
<!-- :core:model -->
<g id="node7" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="568.06" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="568.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge7" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M192.94,-215.73C195.65,-182.32 206.61,-108.88 251.06,-72 288.33,-41.08 420.81,-27.72 502.24,-22.33"/>
<polygon fill="black" stroke="black" points="502.11,-25.84 511.87,-21.71 501.66,-18.86 502.11,-25.84"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M532.25,-149.91C495.35,-138.48 437.4,-120.53 395.16,-107.45"/>
<polygon fill="black" stroke="black" points="396.27,-104.13 385.69,-104.51 394.2,-110.81 396.27,-104.13"/>
</g>
<!-- :core:common -->
<g id="node8" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="806.06" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="806.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M614.84,-159.04C725.87,-153.9 998.07,-138.31 1025.06,-108 1035.7,-96.05 1034.95,-84.57 1025.06,-72 1023.79,-70.39 929.84,-48.06 865.42,-32.9"/>
<polygon fill="black" stroke="black" points="866.57,-29.58 856.03,-30.7 864.97,-36.39 866.57,-29.58"/>
</g>
<!-- :core:database -->
<g id="node9" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="488.06" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="488.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge9" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M549.91,-145.12C539.69,-136.18 526.74,-124.85 515.33,-114.86"/>
<polygon fill="red" stroke="red" stroke-width="2" points="519.08,-113.5 509.25,-109.54 514.48,-118.76 519.08,-113.5"/>
</g>
<!-- :core:datastore -->
<g id="node10" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="951.06" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="951.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge10" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M611.44,-154.34C671.36,-144.97 782.73,-126.91 877.06,-108 881.92,-107.03 886.94,-105.97 891.98,-104.88"/>
<polygon fill="black" stroke="black" points="892.49,-108.35 901.5,-102.78 890.98,-101.52 892.49,-108.35"/>
</g>
<!-- :core:network -->
<g id="node11" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="806.06" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="806.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M604.73,-150.22C644.27,-138.58 707.62,-119.95 752.69,-106.7"/>
<polygon fill="black" stroke="black" points="753.67,-110.06 762.27,-103.88 751.69,-103.34 753.67,-110.06"/>
</g>
<!-- :core:notifications -->
<g id="node12" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="648.06" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="648.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge13" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M586.21,-145.12C596.25,-136.33 608.94,-125.23 620.21,-115.37"/>
<polygon fill="black" stroke="black" points="622.5,-118.01 627.72,-108.79 617.89,-112.75 622.5,-118.01"/>
</g>
<!-- :core:domain&#45;&gt;:core:data -->
<g id="edge22" class="edge">
<title>:core:domain&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M352.7,-221.2C398.75,-208.76 471.15,-189.19 519.11,-176.23"/>
<polygon fill="red" stroke="red" stroke-width="2" points="518.48,-180.02 527.22,-174.04 516.66,-173.27 518.48,-180.02"/>
</g>
<!-- :core:domain&#45;&gt;:core:model -->
<g id="edge23" class="edge">
<title>:core:domain&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M296.33,-216.3C273.75,-184.5 232.28,-114.65 268.06,-72 297.26,-37.19 422.38,-25.23 501.52,-21.13"/>
<polygon fill="black" stroke="black" points="501.52,-24.64 511.34,-20.66 501.18,-17.64 501.52,-24.64"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge14" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M507.02,-72.41C517.15,-63.54 529.81,-52.47 540.96,-42.71"/>
<polygon fill="red" stroke="red" stroke-width="2" points="542.01,-46.44 547.23,-37.22 537.4,-41.17 542.01,-46.44"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge16" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M902.98,-77.54C894.37,-75.61 885.46,-73.68 877.06,-72 791.15,-54.78 691.1,-38.26 628.66,-28.37"/>
<polygon fill="black" stroke="black" points="629.37,-24.94 618.95,-26.83 628.28,-31.85 629.37,-24.94"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge17" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M919.6,-73.81C898.51,-63.63 870.51,-50.11 847.59,-39.05"/>
<polygon fill="black" stroke="black" points="849.35,-36.01 838.82,-34.82 846.31,-42.32 849.35,-36.01"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node13" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="977.06" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="977.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge15" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M957.49,-71.7C960.29,-64.15 963.64,-55.12 966.78,-46.68"/>
<polygon fill="black" stroke="black" points="969.98,-48.12 970.18,-37.52 963.42,-45.68 969.98,-48.12"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M763.51,-76.49C723.04,-64.58 662.12,-46.67 619.07,-34"/>
<polygon fill="black" stroke="black" points="620.29,-30.71 609.71,-31.25 618.32,-37.43 620.29,-30.71"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge18" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M806.06,-71.7C806.06,-64.41 806.06,-55.73 806.06,-47.54"/>
<polygon fill="black" stroke="black" points="809.56,-47.62 806.06,-37.62 802.56,-47.62 809.56,-47.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge20" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M629.1,-72.41C618.97,-63.54 606.31,-52.47 595.15,-42.71"/>
<polygon fill="black" stroke="black" points="597.58,-40.18 587.75,-36.23 592.97,-45.44 597.58,-40.18"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge21" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M683.13,-73.46C706.43,-63.14 737.22,-49.5 762.16,-38.45"/>
<polygon fill="black" stroke="black" points="763.34,-41.76 771.06,-34.51 760.5,-35.36 763.34,-41.76"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,331 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1034pt" height="404pt"
viewBox="0.00 0.00 1033.76 404.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-400 1029.76,-400 1029.76,4 -4,4"/>
<!-- :feature:search -->
<g id="node1" class="node">
<title>:feature:search</title>
<ellipse fill="none" stroke="black" cx="278.07" cy="-378" rx="65.17" ry="18"/>
<text text-anchor="middle" x="278.07" y="-372.95" font-family="Times,serif" font-size="14.00">:feature:search</text>
</g>
<!-- :core:ui -->
<g id="node2" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="111.07" cy="-234" rx="39.07" ry="18"/>
<text text-anchor="middle" x="111.07" y="-228.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :feature:search&#45;&gt;:core:ui -->
<g id="edge1" class="edge">
<title>:feature:search&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M215.02,-373.03C146.44,-367.24 43.34,-353.74 19.07,-324 8.95,-311.6 11.06,-301.85 19.07,-288 29.76,-269.5 49.63,-256.89 68.17,-248.63"/>
<polygon fill="black" stroke="black" points="69.24,-251.97 77.16,-244.94 66.58,-245.5 69.24,-251.97"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="200.07" cy="-162" rx="82.06" ry="18"/>
<text text-anchor="middle" x="200.07" y="-156.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :feature:search&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:feature:search&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M214.52,-373.54C143.34,-368.18 34.58,-355.02 9.07,-324 -25.99,-281.35 57.01,-220.59 63.07,-216 84.59,-199.7 111.73,-187.82 136.17,-179.49"/>
<polygon fill="black" stroke="black" points="136.95,-182.92 145.37,-176.49 134.78,-176.26 136.95,-182.92"/>
</g>
<!-- :core:data -->
<g id="node4" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="517.07" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="517.07" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :feature:search&#45;&gt;:core:data -->
<g id="edge3" class="edge">
<title>:feature:search&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M341.07,-372.8C408.59,-366.84 509.31,-353.2 533.07,-324 563.94,-286.05 545.4,-225.23 530.4,-190.21"/>
<polygon fill="black" stroke="black" points="533.63,-188.87 526.34,-181.19 527.25,-191.75 533.63,-188.87"/>
</g>
<!-- :core:domain -->
<g id="node5" class="node">
<title>:core:domain</title>
<ellipse fill="none" stroke="black" cx="429.07" cy="-234" rx="60.05" ry="18"/>
<text text-anchor="middle" x="429.07" y="-228.95" font-family="Times,serif" font-size="14.00">:core:domain</text>
</g>
<!-- :feature:search&#45;&gt;:core:domain -->
<g id="edge4" class="edge">
<title>:feature:search&#45;&gt;:core:domain</title>
<path fill="none" stroke="black" d="M339.78,-371.88C402.79,-365.22 494.35,-351.08 516.07,-324 526.08,-311.52 523.91,-301.95 516.07,-288 507.47,-272.69 492.46,-261.29 477.31,-253.06"/>
<polygon fill="black" stroke="black" points="479.25,-250.12 468.74,-248.78 476.12,-256.38 479.25,-250.12"/>
</g>
<!-- :feature:bookmarks -->
<g id="node6" class="node">
<title>:feature:bookmarks</title>
<ellipse fill="none" stroke="black" cx="111.07" cy="-306" rx="83.08" ry="18"/>
<text text-anchor="middle" x="111.07" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:bookmarks</text>
</g>
<!-- :feature:search&#45;&gt;:feature:bookmarks -->
<g id="edge5" class="edge">
<title>:feature:search&#45;&gt;:feature:bookmarks</title>
<path fill="none" stroke="black" d="M243.47,-362.5C218.84,-352.17 185.45,-338.18 158.36,-326.82"/>
<polygon fill="black" stroke="black" points="159.92,-323.68 149.34,-323.04 157.21,-330.14 159.92,-323.68"/>
</g>
<!-- :feature:foryou -->
<g id="node7" class="node">
<title>:feature:foryou</title>
<ellipse fill="none" stroke="black" cx="278.07" cy="-306" rx="66.19" ry="18"/>
<text text-anchor="middle" x="278.07" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:foryou</text>
</g>
<!-- :feature:search&#45;&gt;:feature:foryou -->
<g id="edge6" class="edge">
<title>:feature:search&#45;&gt;:feature:foryou</title>
<path fill="none" stroke="red" stroke-width="2" d="M278.07,-359.7C278.07,-352.41 278.07,-343.73 278.07,-335.54"/>
<polygon fill="red" stroke="red" stroke-width="2" points="281.57,-337.13 278.07,-327.13 274.57,-337.13 281.57,-337.13"/>
</g>
<!-- :feature:interests -->
<g id="node8" class="node">
<title>:feature:interests</title>
<ellipse fill="none" stroke="black" cx="435.07" cy="-306" rx="72.34" ry="18"/>
<text text-anchor="middle" x="435.07" y="-300.95" font-family="Times,serif" font-size="14.00">:feature:interests</text>
</g>
<!-- :feature:search&#45;&gt;:feature:interests -->
<g id="edge7" class="edge">
<title>:feature:search&#45;&gt;:feature:interests</title>
<path fill="none" stroke="black" d="M311.36,-362.15C334.36,-351.9 365.21,-338.15 390.35,-326.94"/>
<polygon fill="black" stroke="black" points="391.65,-330.19 399.35,-322.92 388.8,-323.8 391.65,-330.19"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge9" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M129.94,-218.15C141.55,-209.02 156.69,-197.12 169.93,-186.71"/>
<polygon fill="black" stroke="black" points="171.84,-189.66 177.53,-180.72 167.51,-184.16 171.84,-189.66"/>
</g>
<!-- :core:analytics -->
<g id="node9" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="291.07" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="291.07" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge8" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M105,-216.04C99.22,-196.61 93.49,-164.77 109.07,-144 123.26,-125.09 178.83,-110.72 224.88,-101.74"/>
<polygon fill="black" stroke="black" points="225.38,-105.21 234.56,-99.91 224.08,-98.33 225.38,-105.21"/>
</g>
<!-- :core:model -->
<g id="node10" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="517.07" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="517.07" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge10" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M101.91,-216.22C93.05,-197.52 82.63,-166.9 95.07,-144 123.14,-92.33 151.29,-93.38 206.07,-72 286.93,-40.44 386.87,-27.64 451.27,-22.47"/>
<polygon fill="black" stroke="black" points="451.26,-25.98 460.96,-21.74 450.73,-19 451.26,-25.98"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge15" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M481.26,-149.91C444.35,-138.48 386.41,-120.53 344.17,-107.45"/>
<polygon fill="black" stroke="black" points="345.28,-104.13 334.7,-104.51 343.21,-110.81 345.28,-104.13"/>
</g>
<!-- :core:common -->
<g id="node11" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="761.07" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="761.07" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M564.54,-160.03C642.71,-157.31 793.18,-147.01 826.07,-108 836.38,-95.77 832.93,-86.45 826.07,-72 820.22,-59.69 809.96,-49.3 799.3,-41.07"/>
<polygon fill="black" stroke="black" points="801.34,-38.22 791.16,-35.27 797.28,-43.92 801.34,-38.22"/>
</g>
<!-- :core:database -->
<g id="node12" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="437.07" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="437.07" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M498.92,-145.12C488.7,-136.18 475.75,-124.85 464.34,-114.86"/>
<polygon fill="red" stroke="red" stroke-width="2" points="468.09,-113.5 458.26,-109.54 463.48,-118.76 468.09,-113.5"/>
</g>
<!-- :core:datastore -->
<g id="node13" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="938.07" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="938.07" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge13" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M561.21,-155C626.5,-145.93 752.57,-127.69 859.07,-108 865.1,-106.88 871.38,-105.65 877.65,-104.38"/>
<polygon fill="black" stroke="black" points="878.29,-107.82 887.37,-102.36 876.87,-100.97 878.29,-107.82"/>
</g>
<!-- :core:network -->
<g id="node14" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="755.07" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="755.07" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge14" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M553.73,-150.22C593.28,-138.58 656.63,-119.95 701.7,-106.7"/>
<polygon fill="black" stroke="black" points="702.68,-110.06 711.28,-103.88 700.7,-103.34 702.68,-110.06"/>
</g>
<!-- :core:notifications -->
<g id="node15" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="597.07" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="597.07" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge16" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M535.22,-145.12C545.26,-136.33 557.95,-125.23 569.22,-115.37"/>
<polygon fill="black" stroke="black" points="571.51,-118.01 576.73,-108.79 566.9,-112.75 571.51,-118.01"/>
</g>
<!-- :core:domain&#45;&gt;:core:data -->
<g id="edge25" class="edge">
<title>:core:domain&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M449.48,-216.76C461.08,-207.53 475.79,-195.83 488.53,-185.7"/>
<polygon fill="red" stroke="red" stroke-width="2" points="489.36,-189.51 495.01,-180.55 485,-184.04 489.36,-189.51"/>
</g>
<!-- :core:domain&#45;&gt;:core:model -->
<g id="edge26" class="edge">
<title>:core:domain&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M406.15,-217.01C379.19,-198.48 332.8,-167.5 291.07,-144 259.2,-126.06 236.47,-139.01 217.07,-108 208.58,-94.44 206.79,-84.26 217.07,-72 246.27,-37.19 371.39,-25.23 450.53,-21.13"/>
<polygon fill="black" stroke="black" points="450.53,-24.64 460.35,-20.66 450.19,-17.64 450.53,-24.64"/>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:ui -->
<g id="edge27" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M111.07,-287.7C111.07,-280.41 111.07,-271.73 111.07,-263.54"/>
<polygon fill="black" stroke="black" points="114.57,-263.62 111.07,-253.62 107.57,-263.62 114.57,-263.62"/>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:designsystem -->
<g id="edge28" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M128.96,-287.98C138.68,-278.09 150.45,-265.05 159.07,-252 171.8,-232.72 182.57,-208.85 189.86,-190.68"/>
<polygon fill="black" stroke="black" points="193.03,-192.2 193.4,-181.61 186.51,-189.66 193.03,-192.2"/>
</g>
<!-- :feature:bookmarks&#45;&gt;:core:data -->
<g id="edge29" class="edge">
<title>:feature:bookmarks&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M143.65,-289.12C183.77,-270 254.3,-237.74 317.07,-216 366.71,-198.81 424.91,-183.96 465.68,-174.39"/>
<polygon fill="black" stroke="black" points="466.27,-177.85 475.22,-172.18 464.69,-171.03 466.27,-177.85"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:ui -->
<g id="edge30" class="edge">
<title>:feature:foryou&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M243.06,-290.33C215.75,-278.88 177.85,-262.99 149.67,-251.18"/>
<polygon fill="black" stroke="black" points="151.36,-248.09 140.78,-247.45 148.65,-254.55 151.36,-248.09"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:designsystem -->
<g id="edge31" class="edge">
<title>:feature:foryou&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M268.66,-287.87C255.31,-263.56 230.73,-218.82 214.91,-190.01"/>
<polygon fill="black" stroke="black" points="218.12,-188.6 210.24,-181.52 211.99,-191.97 218.12,-188.6"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:data -->
<g id="edge32" class="edge">
<title>:feature:foryou&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M289.73,-287.85C304.09,-267.93 330.29,-235.34 360.07,-216 391.9,-195.33 432.63,-181.89 464.62,-173.71"/>
<polygon fill="black" stroke="black" points="465.2,-177.18 474.08,-171.4 463.53,-170.38 465.2,-177.18"/>
</g>
<!-- :feature:foryou&#45;&gt;:core:domain -->
<g id="edge33" class="edge">
<title>:feature:foryou&#45;&gt;:core:domain</title>
<path fill="none" stroke="red" stroke-width="2" d="M310.46,-289.98C332.88,-279.59 362.93,-265.66 387.17,-254.42"/>
<polygon fill="red" stroke="red" stroke-width="2" points="387.16,-258.29 394.76,-250.91 384.21,-251.94 387.16,-258.29"/>
</g>
<!-- :feature:interests&#45;&gt;:core:ui -->
<g id="edge34" class="edge">
<title>:feature:interests&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M381.93,-293.52C319.19,-279.96 215.9,-257.65 156.65,-244.85"/>
<polygon fill="black" stroke="black" points="157.76,-241.51 147.25,-242.82 156.28,-248.35 157.76,-241.51"/>
</g>
<!-- :feature:interests&#45;&gt;:core:designsystem -->
<g id="edge35" class="edge">
<title>:feature:interests&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M408.57,-288.99C366.54,-263.59 284.5,-214.02 236.82,-185.21"/>
<polygon fill="black" stroke="black" points="238.86,-182.35 228.49,-180.17 235.24,-188.34 238.86,-182.35"/>
</g>
<!-- :feature:interests&#45;&gt;:core:data -->
<g id="edge36" class="edge">
<title>:feature:interests&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M461.4,-288.93C474.36,-279.69 489.09,-266.95 498.07,-252 509.03,-233.75 513.71,-210.07 515.69,-191.72"/>
<polygon fill="black" stroke="black" points="519.18,-192.04 516.53,-181.78 512.21,-191.45 519.18,-192.04"/>
</g>
<!-- :feature:interests&#45;&gt;:core:domain -->
<g id="edge37" class="edge">
<title>:feature:interests&#45;&gt;:core:domain</title>
<path fill="none" stroke="black" d="M433.59,-287.7C432.96,-280.41 432.22,-271.73 431.51,-263.54"/>
<polygon fill="black" stroke="black" points="435.01,-263.28 430.66,-253.61 428.03,-263.87 435.01,-263.28"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge17" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M456.03,-72.41C466.16,-63.54 478.82,-52.47 489.97,-42.71"/>
<polygon fill="red" stroke="red" stroke-width="2" points="491.02,-46.44 496.24,-37.22 486.41,-41.17 491.02,-46.44"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M883.46,-79.92C804.42,-66.78 658.64,-42.54 576.82,-28.93"/>
<polygon fill="black" stroke="black" points="577.64,-25.52 567.2,-27.34 576.49,-32.43 577.64,-25.52"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge20" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M901.82,-74.67C874.62,-63.91 837.15,-49.09 807.72,-37.45"/>
<polygon fill="black" stroke="black" points="809.26,-34.29 798.67,-33.87 806.69,-40.8 809.26,-34.29"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node16" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="938.07" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="938.07" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge18" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M938.07,-71.7C938.07,-64.41 938.07,-55.73 938.07,-47.54"/>
<polygon fill="black" stroke="black" points="941.57,-47.62 938.07,-37.62 934.57,-47.62 941.57,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge22" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M712.52,-76.49C672.05,-64.58 611.13,-46.67 568.08,-34"/>
<polygon fill="black" stroke="black" points="569.3,-30.71 558.72,-31.25 567.33,-37.43 569.3,-30.71"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge21" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M756.55,-71.7C757.18,-64.41 757.92,-55.73 758.62,-47.54"/>
<polygon fill="black" stroke="black" points="762.11,-47.87 759.47,-37.61 755.13,-47.28 762.11,-47.87"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge23" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M578.11,-72.41C567.97,-63.54 555.32,-52.47 544.16,-42.71"/>
<polygon fill="black" stroke="black" points="546.59,-40.18 536.75,-36.23 541.98,-45.44 546.59,-40.18"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge24" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M633.06,-73.64C657.51,-63.2 690.02,-49.33 716.16,-38.17"/>
<polygon fill="black" stroke="black" points="717.35,-41.47 725.17,-34.32 714.6,-35.03 717.35,-41.47"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1028pt" height="260pt"
viewBox="0.00 0.00 1027.75 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 1023.75,-256 1023.75,4 -4,4"/>
<!-- :feature:settings -->
<g id="node1" class="node">
<title>:feature:settings</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-234" rx="69.78" ry="18"/>
<text text-anchor="middle" x="192.06" y="-228.95" font-family="Times,serif" font-size="14.00">:feature:settings</text>
</g>
<!-- :core:ui -->
<g id="node2" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-162" rx="39.07" ry="18"/>
<text text-anchor="middle" x="192.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :feature:settings&#45;&gt;:core:ui -->
<g id="edge1" class="edge">
<title>:feature:settings&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M192.06,-215.7C192.06,-208.41 192.06,-199.73 192.06,-191.54"/>
<polygon fill="black" stroke="black" points="195.56,-191.62 192.06,-181.62 188.56,-191.62 195.56,-191.62"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-90" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :feature:settings&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:feature:settings&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M175.93,-216.3C166.33,-206.1 154.11,-192.63 144.06,-180 128.01,-159.83 111.39,-135.78 99.41,-117.77"/>
<polygon fill="black" stroke="black" points="102.35,-115.88 93.93,-109.46 96.51,-119.73 102.35,-115.88"/>
</g>
<!-- :core:data -->
<g id="node4" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="591.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :feature:settings&#45;&gt;:core:data -->
<g id="edge3" class="edge">
<title>:feature:settings&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M248.38,-223.12C325.31,-209.62 462.27,-185.59 537.65,-172.37"/>
<polygon fill="red" stroke="red" stroke-width="2" points="536.53,-176.12 545.77,-170.95 535.32,-169.23 536.53,-176.12"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge5" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M169.8,-146.83C154.65,-137.19 134.29,-124.24 117,-113.23"/>
<polygon fill="black" stroke="black" points="119.35,-110.58 109.04,-108.17 115.59,-116.49 119.35,-110.58"/>
</g>
<!-- :core:analytics -->
<g id="node5" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="285.06" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="285.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge4" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M211.78,-146.15C224.2,-136.81 240.49,-124.54 254.56,-113.96"/>
<polygon fill="black" stroke="black" points="256.32,-117.01 262.21,-108.2 252.11,-111.42 256.32,-117.01"/>
</g>
<!-- :core:model -->
<g id="node6" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="591.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge6" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M190.4,-143.81C189.47,-123.54 191.4,-90.3 211.06,-72 255.22,-30.9 427.13,-21.43 523.91,-19.4"/>
<polygon fill="black" stroke="black" points="523.87,-22.9 533.81,-19.22 523.74,-15.9 523.87,-22.9"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M551.05,-151.97C504.63,-141.47 425.78,-123.59 358.06,-108 353.57,-106.97 348.92,-105.89 344.24,-104.81"/>
<polygon fill="black" stroke="black" points="345.36,-101.48 334.82,-102.62 343.78,-108.29 345.36,-101.48"/>
</g>
<!-- :core:common -->
<g id="node7" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="755.06" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="755.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M636.86,-157.02C697,-150.74 797.62,-136.23 820.06,-108 830.02,-95.48 826.92,-86.45 820.06,-72 814.21,-59.69 803.96,-49.3 793.29,-41.07"/>
<polygon fill="black" stroke="black" points="795.33,-38.22 785.15,-35.27 791.27,-43.92 795.33,-38.22"/>
</g>
<!-- :core:database -->
<g id="node8" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="431.06" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="431.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M560.97,-147.83C536.75,-137.24 502.38,-122.2 475.07,-110.26"/>
<polygon fill="red" stroke="red" stroke-width="2" points="477.95,-107.7 467.39,-106.89 475.15,-114.11 477.95,-107.7"/>
</g>
<!-- :core:datastore -->
<g id="node9" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="932.06" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="932.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge9" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M632.39,-152.8C684.04,-142.52 775.15,-124.26 853.06,-108 858.9,-106.78 864.97,-105.5 871.05,-104.21"/>
<polygon fill="black" stroke="black" points="871.4,-107.71 880.45,-102.2 869.94,-100.87 871.4,-107.71"/>
</g>
<!-- :core:network -->
<g id="node10" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="749.06" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="749.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge10" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M621.15,-147.67C645.1,-137.06 678.94,-122.07 705.79,-110.17"/>
<polygon fill="black" stroke="black" points="706.97,-113.47 714.7,-106.22 704.14,-107.07 706.97,-113.47"/>
</g>
<!-- :core:notifications -->
<g id="node11" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="591.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M591.06,-143.7C591.06,-136.41 591.06,-127.73 591.06,-119.54"/>
<polygon fill="black" stroke="black" points="594.56,-119.62 591.06,-109.62 587.56,-119.62 594.56,-119.62"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge13" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M464.6,-74.33C489,-63.65 522.23,-49.11 548.51,-37.62"/>
<polygon fill="red" stroke="red" stroke-width="2" points="548.4,-41.49 556.15,-34.27 545.59,-35.07 548.4,-41.49"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M881.01,-78.52C818.61,-65.71 713.32,-44.1 648.25,-30.74"/>
<polygon fill="black" stroke="black" points="648.97,-27.31 638.47,-28.73 647.56,-34.17 648.97,-27.31"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M895.81,-74.67C868.61,-63.91 831.14,-49.09 801.71,-37.45"/>
<polygon fill="black" stroke="black" points="803.25,-34.29 792.66,-33.87 800.68,-40.8 803.25,-34.29"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node12" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="932.06" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="932.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge14" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M932.06,-71.7C932.06,-64.41 932.06,-55.73 932.06,-47.54"/>
<polygon fill="black" stroke="black" points="935.56,-47.62 932.06,-37.62 928.56,-47.62 935.56,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge18" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M715.94,-74.33C691.84,-63.65 659.03,-49.11 633.08,-37.62"/>
<polygon fill="black" stroke="black" points="634.74,-34.52 624.17,-33.67 631.9,-40.92 634.74,-34.52"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge17" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M750.54,-71.7C751.17,-64.41 751.91,-55.73 752.61,-47.54"/>
<polygon fill="black" stroke="black" points="756.1,-47.87 753.46,-37.61 749.12,-47.28 756.1,-47.87"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M591.06,-71.7C591.06,-64.41 591.06,-55.73 591.06,-47.54"/>
<polygon fill="black" stroke="black" points="594.56,-47.62 591.06,-37.62 587.56,-47.62 594.56,-47.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge20" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M627.05,-73.64C651.5,-63.2 684.01,-49.33 710.15,-38.17"/>
<polygon fill="black" stroke="black" points="711.34,-41.47 719.17,-34.32 708.59,-35.03 711.34,-41.47"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="1028pt" height="260pt"
viewBox="0.00 0.00 1027.75 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 1023.75,-256 1023.75,4 -4,4"/>
<!-- :feature:topic -->
<g id="node1" class="node">
<title>:feature:topic</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-234" rx="60.05" ry="18"/>
<text text-anchor="middle" x="192.06" y="-228.95" font-family="Times,serif" font-size="14.00">:feature:topic</text>
</g>
<!-- :core:ui -->
<g id="node2" class="node">
<title>:core:ui</title>
<ellipse fill="none" stroke="black" cx="192.06" cy="-162" rx="39.07" ry="18"/>
<text text-anchor="middle" x="192.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:ui</text>
</g>
<!-- :feature:topic&#45;&gt;:core:ui -->
<g id="edge1" class="edge">
<title>:feature:topic&#45;&gt;:core:ui</title>
<path fill="none" stroke="black" d="M192.06,-215.7C192.06,-208.41 192.06,-199.73 192.06,-191.54"/>
<polygon fill="black" stroke="black" points="195.56,-191.62 192.06,-181.62 188.56,-191.62 195.56,-191.62"/>
</g>
<!-- :core:designsystem -->
<g id="node3" class="node">
<title>:core:designsystem</title>
<ellipse fill="none" stroke="black" cx="82.06" cy="-90" rx="82.06" ry="18"/>
<text text-anchor="middle" x="82.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:designsystem</text>
</g>
<!-- :feature:topic&#45;&gt;:core:designsystem -->
<g id="edge2" class="edge">
<title>:feature:topic&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M175.93,-216.3C166.33,-206.1 154.11,-192.63 144.06,-180 128.01,-159.83 111.39,-135.78 99.41,-117.77"/>
<polygon fill="black" stroke="black" points="102.35,-115.88 93.93,-109.46 96.51,-119.73 102.35,-115.88"/>
</g>
<!-- :core:data -->
<g id="node4" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="591.06" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :feature:topic&#45;&gt;:core:data -->
<g id="edge3" class="edge">
<title>:feature:topic&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M243,-224.06C318.79,-210.77 460.58,-185.89 537.73,-172.36"/>
<polygon fill="red" stroke="red" stroke-width="2" points="536.4,-176.14 545.65,-170.97 535.19,-169.25 536.4,-176.14"/>
</g>
<!-- :core:ui&#45;&gt;:core:designsystem -->
<g id="edge5" class="edge">
<title>:core:ui&#45;&gt;:core:designsystem</title>
<path fill="none" stroke="black" d="M169.8,-146.83C154.65,-137.19 134.29,-124.24 117,-113.23"/>
<polygon fill="black" stroke="black" points="119.35,-110.58 109.04,-108.17 115.59,-116.49 119.35,-110.58"/>
</g>
<!-- :core:analytics -->
<g id="node5" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="285.06" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="285.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:ui&#45;&gt;:core:analytics -->
<g id="edge4" class="edge">
<title>:core:ui&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M211.78,-146.15C224.2,-136.81 240.49,-124.54 254.56,-113.96"/>
<polygon fill="black" stroke="black" points="256.32,-117.01 262.21,-108.2 252.11,-111.42 256.32,-117.01"/>
</g>
<!-- :core:model -->
<g id="node6" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="591.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:ui&#45;&gt;:core:model -->
<g id="edge6" class="edge">
<title>:core:ui&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M190.4,-143.81C189.47,-123.54 191.4,-90.3 211.06,-72 255.22,-30.9 427.13,-21.43 523.91,-19.4"/>
<polygon fill="black" stroke="black" points="523.87,-22.9 533.81,-19.22 523.74,-15.9 523.87,-22.9"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge11" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M551.05,-151.97C504.63,-141.47 425.78,-123.59 358.06,-108 353.57,-106.97 348.92,-105.89 344.24,-104.81"/>
<polygon fill="black" stroke="black" points="345.36,-101.48 334.82,-102.62 343.78,-108.29 345.36,-101.48"/>
</g>
<!-- :core:common -->
<g id="node7" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="755.06" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="755.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M636.86,-157.02C697,-150.74 797.62,-136.23 820.06,-108 830.02,-95.48 826.92,-86.45 820.06,-72 814.21,-59.69 803.96,-49.3 793.29,-41.07"/>
<polygon fill="black" stroke="black" points="795.33,-38.22 785.15,-35.27 791.27,-43.92 795.33,-38.22"/>
</g>
<!-- :core:database -->
<g id="node8" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="431.06" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="431.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M560.97,-147.83C536.75,-137.24 502.38,-122.2 475.07,-110.26"/>
<polygon fill="red" stroke="red" stroke-width="2" points="477.95,-107.7 467.39,-106.89 475.15,-114.11 477.95,-107.7"/>
</g>
<!-- :core:datastore -->
<g id="node9" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="932.06" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="932.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge9" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M632.39,-152.8C684.04,-142.52 775.15,-124.26 853.06,-108 858.9,-106.78 864.97,-105.5 871.05,-104.21"/>
<polygon fill="black" stroke="black" points="871.4,-107.71 880.45,-102.2 869.94,-100.87 871.4,-107.71"/>
</g>
<!-- :core:network -->
<g id="node10" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="749.06" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="749.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge10" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M621.15,-147.67C645.1,-137.06 678.94,-122.07 705.79,-110.17"/>
<polygon fill="black" stroke="black" points="706.97,-113.47 714.7,-106.22 704.14,-107.07 706.97,-113.47"/>
</g>
<!-- :core:notifications -->
<g id="node11" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="591.06" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="591.06" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge12" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M591.06,-143.7C591.06,-136.41 591.06,-127.73 591.06,-119.54"/>
<polygon fill="black" stroke="black" points="594.56,-119.62 591.06,-109.62 587.56,-119.62 594.56,-119.62"/>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge13" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M464.6,-74.33C489,-63.65 522.23,-49.11 548.51,-37.62"/>
<polygon fill="red" stroke="red" stroke-width="2" points="548.4,-41.49 556.15,-34.27 545.59,-35.07 548.4,-41.49"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M881.01,-78.52C818.61,-65.71 713.32,-44.1 648.25,-30.74"/>
<polygon fill="black" stroke="black" points="648.97,-27.31 638.47,-28.73 647.56,-34.17 648.97,-27.31"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M895.81,-74.67C868.61,-63.91 831.14,-49.09 801.71,-37.45"/>
<polygon fill="black" stroke="black" points="803.25,-34.29 792.66,-33.87 800.68,-40.8 803.25,-34.29"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node12" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="932.06" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="932.06" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge14" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M932.06,-71.7C932.06,-64.41 932.06,-55.73 932.06,-47.54"/>
<polygon fill="black" stroke="black" points="935.56,-47.62 932.06,-37.62 928.56,-47.62 935.56,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge18" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M715.94,-74.33C691.84,-63.65 659.03,-49.11 633.08,-37.62"/>
<polygon fill="black" stroke="black" points="634.74,-34.52 624.17,-33.67 631.9,-40.92 634.74,-34.52"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge17" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M750.54,-71.7C751.17,-64.41 751.91,-55.73 752.61,-47.54"/>
<polygon fill="black" stroke="black" points="756.1,-47.87 753.46,-37.61 749.12,-47.28 756.1,-47.87"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge19" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M591.06,-71.7C591.06,-64.41 591.06,-55.73 591.06,-47.54"/>
<polygon fill="black" stroke="black" points="594.56,-47.62 591.06,-37.62 587.56,-47.62 594.56,-47.62"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge20" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M627.05,-73.64C651.5,-63.2 684.01,-49.33 710.15,-38.17"/>
<polygon fill="black" stroke="black" points="711.34,-41.47 719.17,-34.32 708.59,-35.03 711.34,-41.47"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="763pt" height="332pt"
viewBox="0.00 0.00 762.64 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-328 758.64,-328 758.64,4 -4,4"/>
<!-- :sync:sync&#45;test -->
<g id="node1" class="node">
<title>:sync:sync&#45;test</title>
<ellipse fill="none" stroke="black" cx="436.98" cy="-306" rx="65.68" ry="18"/>
<text text-anchor="middle" x="436.98" y="-300.95" font-family="Times,serif" font-size="14.00">:sync:sync&#45;test</text>
</g>
<!-- :core:data -->
<g id="node2" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="396.98" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="396.98" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :sync:sync&#45;test&#45;&gt;:core:data -->
<g id="edge1" class="edge">
<title>:sync:sync&#45;test&#45;&gt;:core:data</title>
<path fill="none" stroke="black" d="M429.44,-288.07C425.07,-277.79 419.71,-264.32 415.98,-252 409.96,-232.09 405.11,-209.13 401.81,-191.51"/>
<polygon fill="black" stroke="black" points="405.28,-190.99 400.06,-181.77 398.39,-192.23 405.28,-190.99"/>
</g>
<!-- :sync:work -->
<g id="node3" class="node">
<title>:sync:work</title>
<ellipse fill="none" stroke="black" cx="476.98" cy="-234" rx="51.86" ry="18"/>
<text text-anchor="middle" x="476.98" y="-228.95" font-family="Times,serif" font-size="14.00">:sync:work</text>
</g>
<!-- :sync:sync&#45;test&#45;&gt;:sync:work -->
<g id="edge2" class="edge">
<title>:sync:sync&#45;test&#45;&gt;:sync:work</title>
<path fill="none" stroke="red" stroke-width="2" d="M446.67,-288.05C451.19,-280.14 456.67,-270.54 461.73,-261.69"/>
<polygon fill="red" stroke="red" stroke-width="2" points="463.96,-264.84 465.89,-254.42 457.89,-261.36 463.96,-264.84"/>
</g>
<!-- :core:common -->
<g id="node4" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="87.98" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="87.98" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge3" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M350.54,-158.07C252.04,-151.38 29.32,-133.57 6.98,-108 -3.54,-95.95 -0.63,-86.07 6.98,-72 14.64,-57.84 27.9,-46.86 41.5,-38.66"/>
<polygon fill="black" stroke="black" points="43.02,-41.82 50.07,-33.91 39.62,-35.7 43.02,-41.82"/>
</g>
<!-- :core:database -->
<g id="node5" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="543.98" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="543.98" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge4" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M425.67,-147.34C447.46,-136.96 477.74,-122.54 502.21,-110.89"/>
<polygon fill="red" stroke="red" stroke-width="2" points="502.05,-114.85 509.57,-107.39 499.04,-108.53 502.05,-114.85"/>
</g>
<!-- :core:datastore -->
<g id="node6" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="396.98" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="396.98" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge5" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M396.98,-143.7C396.98,-136.41 396.98,-127.73 396.98,-119.54"/>
<polygon fill="black" stroke="black" points="400.48,-119.62 396.98,-109.62 393.48,-119.62 400.48,-119.62"/>
</g>
<!-- :core:network -->
<g id="node7" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="77.98" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="77.98" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge6" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M356.1,-152.58C306.89,-142.38 221.77,-124.49 148.98,-108 144.66,-107.02 140.19,-105.99 135.69,-104.94"/>
<polygon fill="black" stroke="black" points="136.55,-101.55 126.01,-102.67 134.94,-108.36 136.55,-101.55"/>
</g>
<!-- :core:analytics -->
<g id="node8" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="689.98" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="689.98" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M436.19,-151.63C486.12,-139.7 572.84,-118.99 630.82,-105.13"/>
<polygon fill="black" stroke="black" points="631.63,-108.54 640.54,-102.81 630,-101.73 631.63,-108.54"/>
</g>
<!-- :core:notifications -->
<g id="node9" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="235.98" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="235.98" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M366.7,-147.83C342.82,-137.45 309.11,-122.8 281.91,-110.97"/>
<polygon fill="black" stroke="black" points="283.42,-107.81 272.85,-107.03 280.63,-114.23 283.42,-107.81"/>
</g>
<!-- :sync:work&#45;&gt;:core:data -->
<g id="edge18" class="edge">
<title>:sync:work&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M458.43,-216.76C448.06,-207.69 434.95,-196.22 423.51,-186.21"/>
<polygon fill="red" stroke="red" stroke-width="2" points="427.27,-184.85 417.44,-180.9 422.66,-190.12 427.27,-184.85"/>
</g>
<!-- :sync:work&#45;&gt;:core:analytics -->
<g id="edge17" class="edge">
<title>:sync:work&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M500.18,-217.53C537.97,-192.34 612.97,-142.34 656.52,-113.31"/>
<polygon fill="black" stroke="black" points="658.19,-116.4 664.57,-107.94 654.31,-110.57 658.19,-116.4"/>
</g>
<!-- :core:model -->
<g id="node10" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="235.98" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="235.98" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge9" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M496.11,-77.7C487.74,-75.77 479.11,-73.8 470.98,-72 395.16,-55.19 375.54,-53.98 299.98,-36 296.18,-35.09 292.25,-34.13 288.31,-33.14"/>
<polygon fill="red" stroke="red" stroke-width="2" points="290.7,-30.14 280.15,-31.04 288.96,-36.92 290.7,-30.14"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge12" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M348.03,-77.72C339.67,-75.81 331.08,-73.84 322.98,-72 263.71,-58.51 195.99,-43.25 148.52,-32.58"/>
<polygon fill="black" stroke="black" points="149.51,-29.22 138.99,-30.44 147.98,-36.05 149.51,-29.22"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge11" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M363.23,-74.33C338.68,-63.65 305.24,-49.11 278.8,-37.62"/>
<polygon fill="black" stroke="black" points="280.27,-34.44 269.7,-33.66 277.48,-40.86 280.27,-34.44"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node11" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="396.98" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="396.98" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge10" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M396.98,-71.7C396.98,-64.41 396.98,-55.73 396.98,-47.54"/>
<polygon fill="black" stroke="black" points="400.48,-47.62 396.98,-37.62 393.48,-47.62 400.48,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge13" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M80.45,-71.7C81.51,-64.32 82.76,-55.52 83.95,-47.25"/>
<polygon fill="black" stroke="black" points="87.38,-48 85.33,-37.6 80.45,-47.01 87.38,-48"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge14" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M111.1,-74.33C135.2,-63.65 168.02,-49.11 193.96,-37.62"/>
<polygon fill="black" stroke="black" points="195.14,-40.92 202.87,-33.67 192.31,-34.52 195.14,-40.92"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M202.77,-73.29C181.26,-63.12 153.07,-49.79 130.01,-38.88"/>
<polygon fill="black" stroke="black" points="131.72,-35.82 121.19,-34.7 128.73,-42.14 131.72,-35.82"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M235.98,-71.7C235.98,-64.41 235.98,-55.73 235.98,-47.54"/>
<polygon fill="black" stroke="black" points="239.48,-47.62 235.98,-37.62 232.48,-47.62 239.48,-47.62"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: G Pages: 1 -->
<svg width="785pt" height="260pt"
viewBox="0.00 0.00 785.29 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>G</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 781.29,-256 781.29,4 -4,4"/>
<!-- :sync:work -->
<g id="node1" class="node">
<title>:sync:work</title>
<ellipse fill="none" stroke="black" cx="155.66" cy="-234" rx="51.86" ry="18"/>
<text text-anchor="middle" x="155.66" y="-228.95" font-family="Times,serif" font-size="14.00">:sync:work</text>
</g>
<!-- :core:analytics -->
<g id="node2" class="node">
<title>:core:analytics</title>
<ellipse fill="none" stroke="black" cx="64.66" cy="-90" rx="64.66" ry="18"/>
<text text-anchor="middle" x="64.66" y="-84.95" font-family="Times,serif" font-size="14.00">:core:analytics</text>
</g>
<!-- :sync:work&#45;&gt;:core:analytics -->
<g id="edge1" class="edge">
<title>:sync:work&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M144.86,-216.15C129.2,-191.71 100.01,-146.17 81.5,-117.29"/>
<polygon fill="black" stroke="black" points="84.6,-115.63 76.26,-109.1 78.71,-119.41 84.6,-115.63"/>
</g>
<!-- :core:data -->
<g id="node3" class="node">
<title>:core:data</title>
<ellipse fill="none" stroke="black" cx="247.66" cy="-162" rx="47.26" ry="18"/>
<text text-anchor="middle" x="247.66" y="-156.95" font-family="Times,serif" font-size="14.00">:core:data</text>
</g>
<!-- :sync:work&#45;&gt;:core:data -->
<g id="edge2" class="edge">
<title>:sync:work&#45;&gt;:core:data</title>
<path fill="none" stroke="red" stroke-width="2" d="M176.53,-217.12C188.85,-207.74 204.64,-195.73 218.21,-185.41"/>
<polygon fill="red" stroke="red" stroke-width="2" points="218.93,-189.25 224.77,-180.41 214.7,-183.68 218.93,-189.25"/>
</g>
<!-- :core:data&#45;&gt;:core:analytics -->
<g id="edge7" class="edge">
<title>:core:data&#45;&gt;:core:analytics</title>
<path fill="none" stroke="black" d="M215.36,-148.65C186.78,-137.72 144.7,-121.62 112.27,-109.21"/>
<polygon fill="black" stroke="black" points="113.67,-106 103.08,-105.7 111.17,-112.54 113.67,-106"/>
</g>
<!-- :core:common -->
<g id="node4" class="node">
<title>:core:common</title>
<ellipse fill="none" stroke="black" cx="257.66" cy="-18" rx="65.17" ry="18"/>
<text text-anchor="middle" x="257.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:common</text>
</g>
<!-- :core:data&#45;&gt;:core:common -->
<g id="edge3" class="edge">
<title>:core:data&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M218.41,-147.49C202.96,-138.64 185.41,-125.46 176.66,-108 169.49,-93.7 169.05,-86.07 176.66,-72 184.31,-57.84 197.57,-46.86 211.18,-38.66"/>
<polygon fill="black" stroke="black" points="212.7,-41.82 219.74,-33.91 209.3,-35.7 212.7,-41.82"/>
</g>
<!-- :core:database -->
<g id="node5" class="node">
<title>:core:database</title>
<ellipse fill="none" stroke="black" cx="713.66" cy="-90" rx="63.63" ry="18"/>
<text text-anchor="middle" x="713.66" y="-84.95" font-family="Times,serif" font-size="14.00">:core:database</text>
</g>
<!-- :core:data&#45;&gt;:core:database -->
<g id="edge4" class="edge">
<title>:core:data&#45;&gt;:core:database</title>
<path fill="none" stroke="red" stroke-width="2" d="M292.97,-156.3C366.34,-148.38 515.55,-130.95 640.66,-108 645.62,-107.09 650.74,-106.07 655.88,-104.99"/>
<polygon fill="red" stroke="red" stroke-width="2" points="655.08,-108.74 664.11,-103.19 653.59,-101.9 655.08,-108.74"/>
</g>
<!-- :core:datastore -->
<g id="node6" class="node">
<title>:core:datastore</title>
<ellipse fill="none" stroke="black" cx="566.66" cy="-90" rx="65.17" ry="18"/>
<text text-anchor="middle" x="566.66" y="-84.95" font-family="Times,serif" font-size="14.00">:core:datastore</text>
</g>
<!-- :core:data&#45;&gt;:core:datastore -->
<g id="edge5" class="edge">
<title>:core:data&#45;&gt;:core:datastore</title>
<path fill="none" stroke="black" d="M288.01,-152.44C336.6,-142.09 420.66,-124.06 492.66,-108 497.29,-106.97 502.08,-105.89 506.9,-104.8"/>
<polygon fill="black" stroke="black" points="507.67,-108.21 516.64,-102.58 506.11,-101.39 507.67,-108.21"/>
</g>
<!-- :core:network -->
<g id="node7" class="node">
<title>:core:network</title>
<ellipse fill="none" stroke="black" cx="247.66" cy="-90" rx="62.1" ry="18"/>
<text text-anchor="middle" x="247.66" y="-84.95" font-family="Times,serif" font-size="14.00">:core:network</text>
</g>
<!-- :core:data&#45;&gt;:core:network -->
<g id="edge6" class="edge">
<title>:core:data&#45;&gt;:core:network</title>
<path fill="none" stroke="black" d="M247.66,-143.7C247.66,-136.41 247.66,-127.73 247.66,-119.54"/>
<polygon fill="black" stroke="black" points="251.16,-119.62 247.66,-109.62 244.16,-119.62 251.16,-119.62"/>
</g>
<!-- :core:notifications -->
<g id="node8" class="node">
<title>:core:notifications</title>
<ellipse fill="none" stroke="black" cx="405.66" cy="-90" rx="77.97" ry="18"/>
<text text-anchor="middle" x="405.66" y="-84.95" font-family="Times,serif" font-size="14.00">:core:notifications</text>
</g>
<!-- :core:data&#45;&gt;:core:notifications -->
<g id="edge8" class="edge">
<title>:core:data&#45;&gt;:core:notifications</title>
<path fill="none" stroke="black" d="M277.75,-147.67C301.15,-137.3 333.98,-122.76 360.52,-111"/>
<polygon fill="black" stroke="black" points="361.61,-114.34 369.34,-107.09 358.78,-107.94 361.61,-114.34"/>
</g>
<!-- :core:model -->
<g id="node9" class="node">
<title>:core:model</title>
<ellipse fill="none" stroke="black" cx="405.66" cy="-18" rx="55.45" ry="18"/>
<text text-anchor="middle" x="405.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:model</text>
</g>
<!-- :core:database&#45;&gt;:core:model -->
<g id="edge9" class="edge">
<title>:core:database&#45;&gt;:core:model</title>
<path fill="none" stroke="red" stroke-width="2" d="M665.79,-77.7C657.42,-75.77 648.79,-73.8 640.66,-72 564.83,-55.19 545.22,-53.98 469.66,-36 465.85,-35.09 461.93,-34.13 457.98,-33.14"/>
<polygon fill="red" stroke="red" stroke-width="2" points="460.38,-30.14 449.82,-31.04 458.64,-36.92 460.38,-30.14"/>
</g>
<!-- :core:datastore&#45;&gt;:core:common -->
<g id="edge12" class="edge">
<title>:core:datastore&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M517.7,-77.72C509.35,-75.81 500.76,-73.84 492.66,-72 433.39,-58.51 365.66,-43.25 318.2,-32.58"/>
<polygon fill="black" stroke="black" points="319.19,-29.22 308.66,-30.44 317.65,-36.05 319.19,-29.22"/>
</g>
<!-- :core:datastore&#45;&gt;:core:model -->
<g id="edge11" class="edge">
<title>:core:datastore&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M532.91,-74.33C508.35,-63.65 474.91,-49.11 448.48,-37.62"/>
<polygon fill="black" stroke="black" points="449.95,-34.44 439.38,-33.66 447.16,-40.86 449.95,-34.44"/>
</g>
<!-- :core:datastore&#45;proto -->
<g id="node10" class="node">
<title>:core:datastore&#45;proto</title>
<ellipse fill="none" stroke="black" cx="566.66" cy="-18" rx="87.69" ry="18"/>
<text text-anchor="middle" x="566.66" y="-12.95" font-family="Times,serif" font-size="14.00">:core:datastore&#45;proto</text>
</g>
<!-- :core:datastore&#45;&gt;:core:datastore&#45;proto -->
<g id="edge10" class="edge">
<title>:core:datastore&#45;&gt;:core:datastore&#45;proto</title>
<path fill="none" stroke="black" d="M566.66,-71.7C566.66,-64.41 566.66,-55.73 566.66,-47.54"/>
<polygon fill="black" stroke="black" points="570.16,-47.62 566.66,-37.62 563.16,-47.62 570.16,-47.62"/>
</g>
<!-- :core:network&#45;&gt;:core:common -->
<g id="edge13" class="edge">
<title>:core:network&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M250.13,-71.7C251.18,-64.32 252.44,-55.52 253.62,-47.25"/>
<polygon fill="black" stroke="black" points="257.05,-48 255,-37.6 250.12,-47.01 257.05,-48"/>
</g>
<!-- :core:network&#45;&gt;:core:model -->
<g id="edge14" class="edge">
<title>:core:network&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M280.78,-74.33C304.88,-63.65 337.69,-49.11 363.64,-37.62"/>
<polygon fill="black" stroke="black" points="364.82,-40.92 372.54,-33.67 361.98,-34.52 364.82,-40.92"/>
</g>
<!-- :core:notifications&#45;&gt;:core:common -->
<g id="edge16" class="edge">
<title>:core:notifications&#45;&gt;:core:common</title>
<path fill="none" stroke="black" d="M372.44,-73.29C350.94,-63.12 322.75,-49.79 299.69,-38.88"/>
<polygon fill="black" stroke="black" points="301.4,-35.82 290.86,-34.7 298.4,-42.14 301.4,-35.82"/>
</g>
<!-- :core:notifications&#45;&gt;:core:model -->
<g id="edge15" class="edge">
<title>:core:notifications&#45;&gt;:core:model</title>
<path fill="none" stroke="black" d="M405.66,-71.7C405.66,-64.41 405.66,-55.73 405.66,-47.54"/>
<polygon fill="black" stroke="black" points="409.16,-47.62 405.66,-37.62 402.16,-47.62 409.16,-47.62"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

@ -1,3 +1,3 @@
# :feature:bookmarks module
![Dependency graph](../../docs/images/graphs/dep_graph_feature_bookmarks.png)
![Dependency graph](../../docs/images/graphs/dep_graph_feature_bookmarks.svg)

@ -1,3 +1,3 @@
# :feature:foryou module
![Dependency graph](../../docs/images/graphs/dep_graph_feature_foryou.png)
![Dependency graph](../../docs/images/graphs/dep_graph_feature_foryou.svg)

@ -1,3 +1,3 @@
# :feature:interests module
![Dependency graph](../../docs/images/graphs/dep_graph_feature_interests.png)
![Dependency graph](../../docs/images/graphs/dep_graph_feature_interests.svg)

@ -0,0 +1,3 @@
# :feature:search module
![Dependency graph](../../docs/images/graphs/dep_graph_feature_search.svg)

@ -0,0 +1,3 @@
# :feature:settings module
![Dependency graph](../../docs/images/graphs/dep_graph_feature_settings.svg)

@ -1,3 +1,3 @@
# :feature:topic module
![Dependency graph](../../docs/images/graphs/dep_graph_feature_topic.png)
![Dependency graph](../../docs/images/graphs/dep_graph_feature_topic.svg)

@ -0,0 +1,91 @@
#!/bin/bash
#
# Copyright 2024 The Android Open Source Project
#
# Licensed 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
#
# https://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.
#
# Script to generate dependency graphs for each of the modules
# Usage: generateModuleGraphs.sh --exclude-module :benchmarks --exclude-module :lint
# Echo each command so the caller knows what's going on
set -e
# Check if the dot command is available
if ! command -v dot &> /dev/null
then
echo "The 'dot' command is not found. This is required to generate SVGs from the Graphviz files."
echo "On macOS, you can install it using Homebrew: 'brew install graphviz'"
exit 1
fi
# Initialize an array to store excluded modules
excluded_modules=()
# Parse command-line arguments for excluded modules
while [[ $# -gt 0 ]]; do
case "$1" in
--exclude-module)
excluded_modules+=("$2")
shift # Past argument
shift # Past value
;;
*)
echo "Unknown parameter passed: $1"
exit 1
;;
esac
done
# Function to check and create README.md
check_and_create_readme() {
local module_path="$1"
local file_name="$2"
local readme_path="${module_path:1}" # Remove leading colon
readme_path=$(echo "$readme_path" | sed 's/:/\//g') # Replace colons with slashes using sed
readme_path="${readme_path}/README.md"
# Check if README.md exists and create it if not
if [[ ! -f "$readme_path" ]]; then
echo "Creating README.md for ${module_path}"
# Calculate the correct relative path to the image
local relative_image_path="../../docs/images/graphs/${file_name}.svg"
echo "# ${module_path} module" > "$readme_path"
echo "" >> "$readme_path"
echo "![Dependency graph](${relative_image_path})" >> "$readme_path"
fi
}
# Get the module paths
module_paths=$(./gradlew -q printModulePaths --no-configuration-cache)
# Loop through each module path
echo "$module_paths" | while read -r module_path; do
# Check if the module is in the excluded list
if [[ ! " ${excluded_modules[@]} " =~ " ${module_path} " ]]; then
# Derive the filename from the module path
file_name="dep_graph${module_path//:/_}" # Replace colons with underscores
file_name="${file_name//-/_}" # Replace dashes with underscores
check_and_create_readme "$module_path" "$file_name"
# Generate the .gv file in a temporary location
# </dev/null is used to stop ./gradlew from consuming input which prematurely ends the while loop
./gradlew generateModulesGraphvizText -Pmodules.graph.output.gv="/tmp/${file_name}.gv" -Pmodules.graph.of.module="${module_path}" </dev/null
# Convert to SVG using dot
dot -Tsvg "/tmp/${file_name}.gv" > "docs/images/graphs/${file_name}.svg"
# Remove the temporary .gv file
rm "/tmp/${file_name}.gv"
fi
done

@ -45,6 +45,7 @@ kotlinxCoroutines = "1.7.3"
kotlinxDatetime = "0.5.0"
kotlinxSerializationJson = "1.6.0"
ksp = "1.9.22-1.0.18"
moduleGraph = "2.5.0"
okhttp = "4.12.0"
protobuf = "3.25.2"
protobufPlugin = "0.9.4"
@ -158,6 +159,7 @@ hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
module-graph = { id = "com.jraska.module.graph.assertion", version.ref = "moduleGraph" }
protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" }
roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }
room = { id = "androidx.room", version.ref = "room" }

@ -1,3 +0,0 @@
# :lint module
![Dependency graph](../docs/images/graphs/dep_graph_lint.png)

@ -63,3 +63,4 @@ include(":lint")
include(":sync:work")
include(":sync:sync-test")
include(":ui-test-hilt-manifest")

@ -1,3 +0,0 @@
# :sync module
![Dependency graph](../docs/images/graphs/dep_graph_sync.png)

@ -0,0 +1,3 @@
# :sync:sync-test module
![Dependency graph](../../docs/images/graphs/dep_graph_sync_sync_test.svg)

@ -0,0 +1,3 @@
# :sync:work module
![Dependency graph](../../docs/images/graphs/dep_graph_sync_work.svg)
Loading…
Cancel
Save