What this plugin is

Data Modelling is a reusable, plugin-based data-model browser. It blends the platform's own data-model views with a minimalistic Plugin › Type navigation so you can walk the data model of any installed plugin without writing a page for it.

It ships one NodeType — DataModelling/DataModelExplorer — and one instance of it, DataModelling/Explorer, which is the browser.

The three areas

Area What it shows How it's built
Overview The plugin picker / node-type browser — every space that defines NodeType nodes, grouped by plugin, with a search bar — plus a plugin-dependency panel (a live table of who depends on whom). A single Controls.MeshSearch (nodeType:NodeType, namespace-tree render) and a markdown table built from a live nodeType:Store/Plugin query. The platform does the querying, grouping and search; a clicked type opens its own page.
Plugin One plugin's dependency navigation — its Depends on (drill INTO a sub-plugin) and Required by (its dependents) — and a MeshSearch scoped to that plugin's own NodeTypes. Reactive over the same Store/Plugin graph; the dependsOn list is read generically off each plugin root's content JSON (round-trips through PluginContent's JsonExtensionData), normalized once in DataModelExplorerLogic.
Type The curated three-view switcher for one type — UML / JSON Schema / Table — plus a click-through to the type's instance Search. A Controls.Tabs that embeds the framework's own live $Model and $Schema areas via Controls.LayoutArea — never a re-implementation.

Open a plugin's dependency view directly at /DataModelling/Explorer/Plugin/{root} (e.g. …/Plugin/Reinsurance), or a type's switcher at /DataModelling/Explorer/Type/{typePath} with / written as ~ — e.g. …/Type/UWDeepfield~Cedent.

Declaring a dependency

A plugin declares the partition roots it builds on with a dependsOn string array on its index.json PluginContent — e.g. "dependsOn": ["Reinsurance", "LossModelling"] on Pricing. It rides in PluginContent's round-trip buffer, so no compiled type changes; the browser reads it live and renders both the forward edges (Depends on) and the reverse edges (Required by).

The three views — composed, never re-implemented

The whole point is reuse. The three views are the framework's own per-NodeType areas:

Design note (reachability, not reachability of code): those builders are public, but the ITypeDefinitions they need live in the target type's own hub (its compiled instance model, resolved by the internal probe-hub machinery in NodeTypeDataModelAreas). A plugin hub cannot see another partition's compiled types, so we embed the target type's areas (which run in the target hub) rather than call the builders from here. That keeps this plugin fully self-contained and compiling live on any mesh.

House rules this plugin follows

See the /plugin skill for how to build a plugin like this from scratch.

The modelling skills

Beside the browser, this plugin ships four Skill nodes that teach how to model data on MeshWeaver — procedures an agent can follow, every claim grounded in the framework source (MeshWeaver.Domain) and the worked domains (Reinsurance/, UWDeepfield/Source):

Skill What it covers
/discover-cube Recognizing a dimensional scenario and proposing facts / measures / dimensions from a domain description — grain statement, field classification, anti-signals.
/model-cube Modelling dimensions and fact records with the right attributes — node-per-member vs CLR-typed members, the [Dimension]/[IdentityProperty]/[NotVisible] coordinate triple, money and sign-convention guards.
/model-foreign-keys FK relationships — [MeshNode("query")] node-path pickers, [MeshNodeCollection], self-referential hierarchies, [MeshNodeProperty] sync, and what draws a UML edge.
/domain-attributes The reference tour of every data-modelling attribute in MeshWeaver.Domain, one line + real example each.

They cross-link the free Data Modeling Masterclass course, whose lessons 16–18 drill the same ground hands-on.

Reconnecting…
The server was updated. Reloading the page to pick up the latest version.