AIGuiders.Platform.Modeling.Gdl.Core 0.1.0

dotnet add package AIGuiders.Platform.Modeling.Gdl.Core --version 0.1.0
                    
NuGet\Install-Package AIGuiders.Platform.Modeling.Gdl.Core -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.Core" 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.Core" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="AIGuiders.Platform.Modeling.Gdl.Core" />
                    
Project file
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.Core --version 0.1.0
                    
#r "nuget: AIGuiders.Platform.Modeling.Gdl.Core, 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.Core@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.Core&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=AIGuiders.Platform.Modeling.Gdl.Core&version=0.1.0
                    
Install as a Cake Tool

AIGuiders.Platform.Modeling.Gdl.Core

Typed spine for GDL document projects — a closed discriminated union over document payloads (catalog, deck, display, cockpit logic) plus the composed project model.

What you get

  • GdlDocumentRef — stable reference to one document: LogicalPath + Quarry (the token before .gdl in the file name, e.g. deck, catalog)
  • GdlFragment — the closed discriminated union of document payloads:
    • Catalog of CatalogPayload — planet + resolved route rows (row IR from Gdl.Command)
    • Deck of DeckPayload — attention presets + zone bindings from *.deck.gdl
    • Display of DisplayBindingPayload — screen-binding profile (alias of Gdl.Presentation.DisplayBindingProfile)
    • CockpitLogic of CockpitLogicPayload — rule-graph IR (alias of Gdl.Parse.CockpitLogic.CockpitRuleGraph)
  • DeckPreset — one attention preset: name, optional Topology, ForwardZoneId, MfdZoneIds, EicasPolicy
  • GdlProjectEntry / GdlProjectManifest / GdlProject — composed declare-time project: manifest (name, workspace root) + typed document entries
  • GdlSpine — helpers for tests and C# mappers: documentRef, plus sample dashSpecStudioDeck / dashSpecStudioProject

Quick start

open AIGuiders.Platform.Modeling.Gdl.Core

let project : GdlProject =
    { Manifest = { Name = "studio"; WorkspaceRoot = "." }
      Documents =
        [ { Ref = GdlSpine.documentRef "deck/studio.deck.gdl" "deck"
            Fragment = GdlFragment.Deck(GdlSpine.dashSpecStudioDeck ()) } ] }

let deckCount =
    project.Documents
    |> List.filter (fun entry ->
        match entry.Fragment with
        | GdlFragment.Deck _ -> true
        | _ -> false)
    |> List.length

Problem

  • Declarative toolchains end up with several kinds of hand-edited files — command catalogs, screen-layout decks, rule files, binding profiles.
  • Each parser naturally produces its own model, so anything that loads a whole workspace (an editor, a build check, a generator) glues those models together by hand — and adding a new file kind ripples through every consumer with no compiler help.

Solution

  • One closed union (GdlFragment) over the four typed payloads: consumers pattern-match, and when a document kind is added the compiler flags every match that needs updating.
  • A project is just a manifest plus a list of { Ref; Fragment } entries — trivially serializable, walkable, and diffable.
  • This is the SSOT for the GDL project model, owned by the F# monorepo per FSHARP-ADR-0001; the language itself is named and specified in GUIDERS-ADR-0059, with the config branch extending the same spine (GUIDERS-ADR-0064). In this repo it already carries the deck graph consumed by Modeling.Ide.Session and the cross-document checks of Modeling.Gdl.Validation.

When not to use

  • Not a parser — text-to-payload lives in the sibling Gdl.Parse.* packages; here everything is already typed IR.
  • The payload set is closed by design: a new document kind means a new version of this package, not a consumer-side extension point.
  • Two payloads are type aliases of sibling packages, so referencing this package pulls in Gdl.Presentation, Gdl.Command, and Gdl.Parse.CockpitLogic — if you need only one payload, reference that package directly.

Learn more


MIT · Source & issues · part of the Guiders federation

Product 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.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on AIGuiders.Platform.Modeling.Gdl.Core:

Package Downloads
AIGuiders.Platform.Modeling.Gdl.Validation

GDL project validation — cross-ref and quarry rules.

AIGuiders.Platform.Modeling.Gdl.Parse.Catalog

GDL catalog quarry parser — F# mirror of Platform Authoring.Command.Catalog (phase 1: structure + spine mapping). Parity gaps vs C# authoring emit path: profile bundle resolution (ICatalogBundleLibrary / CatalogProfileResolver), command-profile cross-validation, import-alias bundle path resolution, full notation grammar wire validation (C# injects keyboard parsers), CatalogPhraseSlotIndex codegen inputs.

AIGuiders.Platform.Modeling.Gdl.Parse.Deck

GDL deck quarry parser — F# mirror of Platform Authoring.Deck.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 122 10/24/2026