The Library Nobody Imports
In May the SysML v2 pilot implementation relicensed to EPL-2.0 and began refactoring itself
out of its Eclipse shell — the 2026-04 release notes describe org.omg.sysml.model as the
first step toward using the code "outside the framework of Eclipse plugins"
(2026-04).
I read that as a strategy change: a reference IDE becoming a library other people embed. The
open question was whether anyone on the consumer side would actually embed it.
A VS Code extension for SysML v2 and KerML now answers, and the answer is no. It is "built with Langium, vscode-languageclient, React Flow" — the grammar reimplemented in TypeScript, not the pilot’s Java consumed as a dependency. Its pitch makes the refusal explicit: it parses and indexes SysML natively, with no "separate Java runtime or PlantUML server". The only OMG artefact it takes whole is data, not code — the official standard library, "bundled and pre-indexed".
This is not an outlier. Sensmetry’s SysIDE was also a Langium reimplementation, a "parser and a language server" targeting the spec’s 2024-12 release; that repository is now archived and its successor was "migrated to a new software base" — a further implementation still. Where users actually edit models, every parser is a retyping of the grammar, and none is the reference.
The reason is unglamorous: the pilot is Java, and editors live in VS Code, where a language server wants TypeScript and "no Java runtime" is a feature you advertise. The embeddable pilot serves the JVM side — CI validation, build pipelines — and that is real. But it will not unify the editors.
The cost lands on the standard. Each reimplementation pins its own spec snapshot and drifts on its own schedule; every hand retyping of a grammar is a chance to diverge. A textual notation’s real conformance story is its parsers agreeing, and nothing currently forces that. What would converge this ecosystem is not a library — it is a shared conformance corpus every parser must pass. Until one exists, "SysML v2 support" names several slightly different languages.