AIGuiders.Platform.Modeling.Gdl.Validation
0.1.0
dotnet add package AIGuiders.Platform.Modeling.Gdl.Validation --version 0.1.0
NuGet\Install-Package AIGuiders.Platform.Modeling.Gdl.Validation -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AIGuiders.Platform.Modeling.Gdl.Validation" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AIGuiders.Platform.Modeling.Gdl.Validation" Version="0.1.0" />
<PackageReference Include="AIGuiders.Platform.Modeling.Gdl.Validation" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AIGuiders.Platform.Modeling.Gdl.Validation --version 0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AIGuiders.Platform.Modeling.Gdl.Validation, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AIGuiders.Platform.Modeling.Gdl.Validation@0.1.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AIGuiders.Platform.Modeling.Gdl.Validation&version=0.1.0
#tool nuget:?package=AIGuiders.Platform.Modeling.Gdl.Validation&version=0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AIGuiders.Platform.Modeling.Gdl.Validation
Cross-document validation for composed GDL projects — duplicate paths, duplicate deck presets, and unknown zone references reported as structured issues.
What you get
ValidationSeverity—Error|WarningValidationIssue— structured finding:Code,Severity,Message, optionalDocumentPathGdlProjectValidation.validate— runs the rule set over aGdlProject:GDL_DUPLICATE_DOCUMENT(Error) — the same logical document path appears twiceGDL_DECK_DUPLICATE_PRESET(Error) — a deck declares the same preset name more than onceGDL_DECK_UNKNOWN_ZONE(Warning) — a preset references a zone id missing from the zones table
GdlProjectValidation.isValid— true when no Error-severity issues were found
Quick start
open AIGuiders.Platform.Modeling.Gdl.Core
open AIGuiders.Platform.Modeling.Gdl.Validation
// Same logical path loaded twice -> GDL_DUPLICATE_DOCUMENT
let entry =
{ Ref = GdlSpine.documentRef "deck/studio.deck.gdl" "deck"
Fragment = GdlFragment.Deck(GdlSpine.dashSpecStudioDeck ()) }
let project : GdlProject =
{ Manifest = { Name = "studio"; WorkspaceRoot = "." }
Documents = [ entry; entry ] }
for issue in GdlProjectValidation.validate project do
printfn "[%O] %s: %s" issue.Severity issue.Code issue.Message
if not (GdlProjectValidation.isValid project) then
failwith "project has errors"
Problem
- When a project is assembled from many hand-edited documents, the costly mistakes live between files: the same document pulled in twice, two presets with the same name fighting over one slot, a preset pointing at a zone that was renamed or never existed.
- Per-file parsers cannot see any of this — they only ever hold one document at a time.
Solution
- Project-level checks over the composed
GdlProject: every finding is a structured issue with a stable code, a severity, and the offending document path — ready for CI gates, editor squiggles, or plain logging. isValidanswers the gate question directly: warnings do not block, errors do.- This is the validation layer of the GDL spine owned by the F# monorepo (FSHARP-ADR-0001); the document model it checks is
Modeling.Gdl.Core, and the deck rules mirror the deck grammar specified in GUIDERS-ADR-0059.
When not to use
- Three rules only (duplicate paths, duplicate deck preset names, unknown zone refs) — it does not re-parse text or check grammar; syntax errors belong to the
Gdl.Parse.*packages. - Only deck documents are inspected; catalog, display, and cockpit-logic fragments pass through unchecked.
- No warning policy hooks: severity is fixed per rule, and
isValidintentionally ignores warnings.
Learn more
MIT · Source & issues · part of the Guiders federation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- AIGuiders.Platform.Modeling.Gdl.Core (>= 0.1.0)
- FSharp.Core (>= 10.1.401)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 90 | 10/24/2026 |