Skip to content

Architecture ​

Layered structure ​

MeshForm Vue is split into three packages with clear boundaries:

  • @meshflow/core: framework-agnostic scheduling engine
  • @meshflow/form: schema and linkage adapter
  • @meshflow/form-vue: Vue 3 integration on top of JSON Forms

@meshflow/core: the engine ​

The engine is built around a directed dependency graph. Fields become nodes, and from() declarations become dependency edges.

It supports two important cases:

  • DAG-style one-way dependencies with deterministic scheduling
  • cyclic interaction through convergence semantics

This is what lets MeshForm Vue stay stable under dense linkage and async behavior.

@meshflow/form: the adapter ​

This layer translates MeshFormSchema and linkage declarations into engine-readable nodes. It is responsible for:

  • schema-to-node conversion
  • property-level targets such as .value, .hidden, .disabled, .required, and .options
  • turning declarative from() rules into engine registrations

@meshflow/form-vue: the bridge ​

This layer owns the Vue integration and wraps @jsonforms/vue. It creates the engine, registers rules, publishes node state to renderers, and keeps rerenders aligned with engine updates.

The result is a clean separation:

  • MeshFlow computes state
  • JSON Forms renders state
  • custom renderers consume the node map instead of inventing their own linkage model

MeshForm Vue - deterministic state orchestration for JSON Forms