{
  "generatedAt": "2026-09-29T17:35:11.432Z",
  "totals": {
    "apps": 17,
    "libraries": 145,
    "loc": 141581,
    "projects": 215,
    "workflows": 66,
    "docs": 139,
    "features": 517,
    "tests": 53,
    "nuget": 143,
    "downloads": 0
  },
  "apps": [
    {
      "name": "VectorSpace",
      "slug": "vectorspace",
      "category": "Design",
      "tagline": "Local-first vector design, prototyping and live collaboration",
      "url": "https://wieslawsoltes.github.io/VectorSpace/",
      "repo": "https://github.com/wieslawsoltes/VectorSpace",
      "version": "0.7.0-alpha.1",
      "loc": {
        "total": 13700,
        "src": 10484,
        "tests": 2768
      },
      "packages": [
        {
          "name": "VectorSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Scene graph, variables, reactions, affine geometry and paths",
          "nuget": {
            "id": "VectorSpace.Model",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Model",
            "install": "dotnet add package VectorSpace.Model --prerelease"
          }
        },
        {
          "name": "VectorSpace.Layout",
          "layer": "engine",
          "ui": "None",
          "role": "Flow/grid auto-layout, constraints and indexed snapping",
          "nuget": {
            "id": "VectorSpace.Layout",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Layout",
            "install": "dotnet add package VectorSpace.Layout --prerelease"
          }
        },
        {
          "name": "VectorSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Native JSON, validation, SVG interchange, samples and storage contracts",
          "nuget": {
            "id": "VectorSpace.Documents",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Documents",
            "install": "dotnet add package VectorSpace.Documents --prerelease"
          }
        },
        {
          "name": "VectorSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Selection, transactions, undo/redo, components and viewport services",
          "nuget": {
            "id": "VectorSpace.Editing",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Editing",
            "install": "dotnet add package VectorSpace.Editing --prerelease"
          }
        },
        {
          "name": "VectorSpace.Prototyping",
          "layer": "engine",
          "ui": "None",
          "role": "Deterministic isolated prototype playback, navigation and interpolation",
          "nuget": {
            "id": "VectorSpace.Prototyping",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Prototyping",
            "install": "dotnet add package VectorSpace.Prototyping --prerelease"
          }
        },
        {
          "name": "VectorSpace.Collaboration",
          "layer": "service",
          "ui": "None",
          "role": "Identity-addressed transactions, conditional undo, replicas and HTTP transport",
          "nuget": {
            "id": "VectorSpace.Collaboration",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Collaboration",
            "install": "dotnet add package VectorSpace.Collaboration --prerelease"
          }
        },
        {
          "name": "VectorSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Design/prototype rendering, hit testing, Boolean paths and PNG export",
          "nuget": {
            "id": "VectorSpace.Skia",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Skia",
            "install": "dotnet add package VectorSpace.Skia --prerelease"
          }
        },
        {
          "name": "VectorSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Dense editor controls, icons, numeric scrubbing, color picker and avatars",
          "nuget": {
            "id": "VectorSpace.Controls",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Controls",
            "install": "dotnet add package VectorSpace.Controls --prerelease"
          }
        },
        {
          "name": "VectorSpace.Editor",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Design surface, prototype player and remote-presence overlay",
          "nuget": {
            "id": "VectorSpace.Editor",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Editor",
            "install": "dotnet add package VectorSpace.Editor --prerelease"
          }
        },
        {
          "name": "VectorSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Complete authoring, sharing, recovery and history workflows",
          "nuget": {
            "id": "VectorSpace.Workbench",
            "version": "0.7.0-alpha.1",
            "url": "https://www.nuget.org/packages/VectorSpace.Workbench",
            "install": "dotnet add package VectorSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "ArtSpace",
      "slug": "artspace",
      "category": "Design",
      "tagline": "Vector illustration from one C# engine, on desktop and in the browser",
      "url": "https://wieslawsoltes.github.io/ArtSpace/",
      "repo": "https://github.com/wieslawsoltes/ArtSpace",
      "version": "0.4.1-alpha.1",
      "loc": {
        "total": 7942,
        "src": 6842,
        "tests": 1100
      },
      "packages": [
        {
          "name": "ArtSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Document, appearance, affine geometry and managed editable contours",
          "nuget": {
            "id": "ArtSpace.Core",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Core",
            "install": "dotnet add package ArtSpace.Core --prerelease"
          }
        },
        {
          "name": "ArtSpace.Layout",
          "layer": "engine",
          "ui": "None",
          "role": "Constraints, auto-layout, alignment and reference/indexed snapping",
          "nuget": {
            "id": "ArtSpace.Layout",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Layout",
            "install": "dotnet add package ArtSpace.Layout --prerelease"
          }
        },
        {
          "name": "ArtSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Validated native JSON schemas, clipboard, SVG subset and storage contracts",
          "nuget": {
            "id": "ArtSpace.Documents",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Documents",
            "install": "dotnet add package ArtSpace.Documents --prerelease"
          }
        },
        {
          "name": "ArtSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Selection, transactions, undo/redo history, linked components and viewport services",
          "nuget": {
            "id": "ArtSpace.Editing",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Editing",
            "install": "dotnet add package ArtSpace.Editing --prerelease"
          }
        },
        {
          "name": "ArtSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Cached paths/text/shaders, compositing, culling, hit testing, Boolean ops and raster export",
          "nuget": {
            "id": "ArtSpace.Skia",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Skia",
            "install": "dotnet add package ArtSpace.Skia --prerelease"
          }
        },
        {
          "name": "ArtSpace.Illustration",
          "layer": "engine",
          "ui": "SkiaSharp",
          "role": "Expansion, offsets, compounds, clipping/opacity-mask commands, blends and repeats",
          "nuget": {
            "id": "ArtSpace.Illustration",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Illustration",
            "install": "dotnet add package ArtSpace.Illustration --prerelease"
          }
        },
        {
          "name": "ArtSpace.Controls",
          "layer": "controls",
          "ui": "Uno",
          "role": "Custom menus, panels, numeric fields, color spectrum, vector icons and layer rows",
          "nuget": {
            "id": "ArtSpace.Controls",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Controls",
            "install": "dotnet add package ArtSpace.Controls --prerelease"
          }
        },
        {
          "name": "ArtSpace.Editor",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Embeddable drawing surface with direct manipulation, vector tools, snapping and text editing",
          "nuget": {
            "id": "ArtSpace.Editor",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Editor",
            "install": "dotnet add package ArtSpace.Editor --prerelease"
          }
        },
        {
          "name": "ArtSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Application workspace, layers, inspector, command routing and storage workflows",
          "nuget": {
            "id": "ArtSpace.Workbench",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/ArtSpace.Workbench",
            "install": "dotnet add package ArtSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "TextSpace",
      "slug": "textspace",
      "category": "Documents",
      "tagline": "A local-first word processor with paginated paper, built in C#",
      "url": "https://wieslawsoltes.github.io/TextSpace/",
      "repo": "https://github.com/wieslawsoltes/TextSpace",
      "version": "0.5.1-alpha.1",
      "loc": {
        "total": 11795,
        "src": 8721,
        "tests": 2811
      },
      "packages": [
        {
          "name": "TextSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Rich document model, typography, blocks, tables, anchors and text indexing",
          "nuget": {
            "id": "TextSpace.Core",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Core",
            "install": "dotnet add package TextSpace.Core --prerelease"
          }
        },
        {
          "name": "TextSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Native serialization/validation, repair plans, templates, HTML and CSV merge",
          "nuget": {
            "id": "TextSpace.Documents",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Documents",
            "install": "dotnet add package TextSpace.Documents --prerelease"
          }
        },
        {
          "name": "TextSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Atomic editing, selections, formatting, structure and history",
          "nuget": {
            "id": "TextSpace.Editing",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Editing",
            "install": "dotnet add package TextSpace.Editing --prerelease"
          }
        },
        {
          "name": "TextSpace.Layout",
          "layer": "engine",
          "ui": "None",
          "role": "Renderer-independent pagination, caret queries, section regions and hit testing",
          "nuget": {
            "id": "TextSpace.Layout",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Layout",
            "install": "dotnet add package TextSpace.Layout --prerelease"
          }
        },
        {
          "name": "TextSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp + HarfBuzz",
          "role": "HarfBuzz metrics, font registration, page rendering and PDF/PNG export",
          "nuget": {
            "id": "TextSpace.Skia",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Skia",
            "install": "dotnet add package TextSpace.Skia --prerelease"
          }
        },
        {
          "name": "TextSpace.OpenXml",
          "layer": "io",
          "ui": "None",
          "role": "Bounded, dependency-light DOCX import/export",
          "nuget": {
            "id": "TextSpace.OpenXml",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.OpenXml",
            "install": "dotnet add package TextSpace.OpenXml --prerelease"
          }
        },
        {
          "name": "TextSpace.Storage",
          "layer": "service",
          "ui": "None",
          "role": "Recovery contracts, atomic files, protected archives and verified transport",
          "nuget": {
            "id": "TextSpace.Storage",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Storage",
            "install": "dotnet add package TextSpace.Storage --prerelease"
          }
        },
        {
          "name": "TextSpace.Controls",
          "layer": "controls",
          "ui": "Uno",
          "role": "Custom ribbon, galleries, menus, icons, palettes, dialogs and panes",
          "nuget": {
            "id": "TextSpace.Controls",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Controls",
            "install": "dotnet add package TextSpace.Controls --prerelease"
          }
        },
        {
          "name": "TextSpace.Editor",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Embeddable paginated editor, native input bridge, rulers and previews",
          "nuget": {
            "id": "TextSpace.Editor",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Editor",
            "install": "dotnet add package TextSpace.Editor --prerelease"
          }
        },
        {
          "name": "TextSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Composable office shell, commands, backstage, recovery, navigation and review",
          "nuget": {
            "id": "TextSpace.Workbench",
            "version": "0.5.1-alpha.1",
            "url": "https://www.nuget.org/packages/TextSpace.Workbench",
            "install": "dotnet add package TextSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "GridSpace",
      "slug": "gridspace",
      "category": "Documents",
      "tagline": "A local-first spreadsheet with a real C# engine and dynamic arrays",
      "url": "https://wieslawsoltes.github.io/GridSpace/",
      "repo": "https://github.com/wieslawsoltes/GridSpace",
      "version": "0.3.0-alpha.1",
      "loc": {
        "total": 7671,
        "src": 6335,
        "tests": 1259
      },
      "packages": [
        {
          "name": "GridSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Workbook, cell, style and range contracts; conditional/filter/sort models",
          "nuget": {
            "id": "GridSpace.Core",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Core",
            "install": "dotnet add package GridSpace.Core --prerelease"
          }
        },
        {
          "name": "GridSpace.Formulas",
          "layer": "engine",
          "ui": "None",
          "role": "Bounded non-eval parser, evaluator, reference rewriting and number formatting",
          "nuget": {
            "id": "GridSpace.Formulas",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Formulas",
            "install": "dotnet add package GridSpace.Formulas --prerelease"
          }
        },
        {
          "name": "GridSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Sessions, transactions, bounded history, structural edits and data tools",
          "nuget": {
            "id": "GridSpace.Editing",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Editing",
            "install": "dotnet add package GridSpace.Editing --prerelease"
          }
        },
        {
          "name": "GridSpace.IO",
          "layer": "io",
          "ui": "None",
          "role": "Native, CSV/TSV and XLSX interchange with fidelity warnings",
          "nuget": {
            "id": "GridSpace.IO",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.IO",
            "install": "dotnet add package GridSpace.IO --prerelease"
          }
        },
        {
          "name": "GridSpace.Layout",
          "layer": "engine",
          "ui": "None",
          "role": "Sparse axis indexes, frozen panes, hit testing and viewport geometry",
          "nuget": {
            "id": "GridSpace.Layout",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Layout",
            "install": "dotnet add package GridSpace.Layout --prerelease"
          }
        },
        {
          "name": "GridSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Viewport-culled cell, conditional visual, chart and selection rendering",
          "nuget": {
            "id": "GridSpace.Skia",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Skia",
            "install": "dotnet add package GridSpace.Skia --prerelease"
          }
        },
        {
          "name": "GridSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Embeddable grid, ribbon, formula bar, tabs, scrollbars and data-tool editors",
          "nuget": {
            "id": "GridSpace.Controls",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Controls",
            "install": "dotnet add package GridSpace.Controls --prerelease"
          }
        },
        {
          "name": "GridSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Complete workbench, commands, dialogs, rule management and local recovery",
          "nuget": {
            "id": "GridSpace.Workbench",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/GridSpace.Workbench",
            "install": "dotnet add package GridSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "PdfSpace",
      "slug": "pdfspace",
      "category": "Documents",
      "tagline": "Read, edit and review PDFs — locally, in the browser or on desktop",
      "url": "https://wieslawsoltes.github.io/PdfSpace/",
      "repo": "https://github.com/wieslawsoltes/PdfSpace",
      "version": "0.5.5-alpha.1",
      "loc": {
        "total": 20410,
        "src": 17968,
        "tests": 2442
      },
      "packages": [
        {
          "name": "PdfSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Workspace, page, annotation, field and geometry models with validated JSON",
          "nuget": {
            "id": "PdfSpace.Core",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Core",
            "install": "dotnet add package PdfSpace.Core --prerelease"
          }
        },
        {
          "name": "PdfSpace.Layout",
          "layer": "model",
          "ui": "None",
          "role": "Crop/rotation transforms and viewport/page layouts without UI dependencies",
          "nuget": {
            "id": "PdfSpace.Layout",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Layout",
            "install": "dotnet add package PdfSpace.Layout --prerelease"
          }
        },
        {
          "name": "PdfSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Transactional editing, shared field state and bounded undo/redo",
          "nuget": {
            "id": "PdfSpace.Editing",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Editing",
            "install": "dotnet add package PdfSpace.Editing --prerelease"
          }
        },
        {
          "name": "PdfSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "PdfPig import, text extraction, search, page ranges and XFDF/JSON form data",
          "nuget": {
            "id": "PdfSpace.Documents",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Documents",
            "install": "dotnet add package PdfSpace.Documents --prerelease"
          }
        },
        {
          "name": "PdfSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Source-pinned Apache-2.0 PdfPig Skia renderer with image-alpha, dash and miter fixes",
          "nuget": {
            "id": "PdfSpace.Rendering.Skia",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Rendering.Skia",
            "install": "dotnet add package PdfSpace.Rendering.Skia --prerelease"
          }
        },
        {
          "name": "PdfSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Cached rendering, overlays, visual/PNG export and raster redaction",
          "nuget": {
            "id": "PdfSpace.Skia",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Skia",
            "install": "dotnet add package PdfSpace.Skia --prerelease"
          }
        },
        {
          "name": "PdfSpace.Pdf",
          "layer": "io",
          "ui": "PDFsharp + SkiaSharp",
          "role": "PDFsharp native annotation/form writer, source-text editing and security-provider contract",
          "nuget": {
            "id": "PdfSpace.Pdf",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Pdf",
            "install": "dotnet add package PdfSpace.Pdf --prerelease"
          }
        },
        {
          "name": "PdfSpace.Ocr",
          "layer": "service",
          "ui": "SkiaSharp",
          "role": "Local OCR contracts, raster preparation, bounded TSV decoding and snapshot batches",
          "nuget": {
            "id": "PdfSpace.Ocr",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Ocr",
            "install": "dotnet add package PdfSpace.Ocr --prerelease"
          }
        },
        {
          "name": "PdfSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Custom Uno icons, command buttons, tabs, panels, palettes and dialogs",
          "nuget": {
            "id": "PdfSpace.Controls",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Controls",
            "install": "dotnet add package PdfSpace.Controls --prerelease"
          }
        },
        {
          "name": "PdfSpace.Viewer",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Embeddable document viewport with annotation editing, form input and thumbnails",
          "nuget": {
            "id": "PdfSpace.Viewer",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Viewer",
            "install": "dotnet add package PdfSpace.Viewer --prerelease"
          }
        },
        {
          "name": "PdfSpace.Storage",
          "layer": "service",
          "ui": "None",
          "role": "Platform-neutral file, recovery, clipboard and print contracts",
          "nuget": {
            "id": "PdfSpace.Storage",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Storage",
            "install": "dotnet add package PdfSpace.Storage --prerelease"
          }
        },
        {
          "name": "PdfSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Complete multi-document shell and PDF workflows",
          "nuget": {
            "id": "PdfSpace.Workbench",
            "version": "0.5.5-alpha.1",
            "url": "https://www.nuget.org/packages/PdfSpace.Workbench",
            "install": "dotnet add package PdfSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "PresentationSpace",
      "slug": "presentationspace",
      "category": "Documents",
      "tagline": "Office-style slide editing in C#, one engine for browser and desktop",
      "url": "https://wieslawsoltes.github.io/PresentationSpace/",
      "repo": "https://github.com/wieslawsoltes/PresentationSpace",
      "version": "0.6.0",
      "loc": {
        "total": 7192,
        "src": 5813,
        "tests": 1379
      },
      "packages": [
        {
          "name": "PresentationSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Immutable documents, rich text, layouts, tables, chart data, geometry, commands and undo",
          "nuget": {
            "id": "PresentationSpace.Core",
            "version": "0.6.0",
            "url": "https://www.nuget.org/packages/PresentationSpace.Core",
            "install": "dotnet add package PresentationSpace.Core"
          }
        },
        {
          "name": "PresentationSpace.Formats",
          "layer": "io",
          "ui": "None",
          "role": "Bounded PPTX ZIP/XML, native chart/table parts and embedded chart workbooks",
          "nuget": {
            "id": "PresentationSpace.Formats",
            "version": "0.6.0",
            "url": "https://www.nuget.org/packages/PresentationSpace.Formats",
            "install": "dotnet add package PresentationSpace.Formats"
          }
        },
        {
          "name": "PresentationSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Slides, tables, six chart types, mixed text, images, thumbnails, selection, PNG/PDF",
          "nuget": {
            "id": "PresentationSpace.Rendering.Skia",
            "version": "0.6.0",
            "url": "https://www.nuget.org/packages/PresentationSpace.Rendering.Skia",
            "install": "dotnet add package PresentationSpace.Rendering.Skia"
          }
        },
        {
          "name": "PresentationSpace.Ribbon.Uno",
          "layer": "controls",
          "ui": "Uno",
          "role": "Ribbon tabs, overflow scrolling, groups, buttons, compact toggle and Office-style palette",
          "nuget": {
            "id": "PresentationSpace.Ribbon.Uno",
            "version": "0.6.0",
            "url": "https://www.nuget.org/packages/PresentationSpace.Ribbon.Uno",
            "install": "dotnet add package PresentationSpace.Ribbon.Uno"
          }
        },
        {
          "name": "PresentationSpace.Controls.Uno",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Viewport, filmstrip, sorter, inspector, table/chart data editors, notes and slide show",
          "nuget": {
            "id": "PresentationSpace.Controls.Uno",
            "version": "0.6.0",
            "url": "https://www.nuget.org/packages/PresentationSpace.Controls.Uno",
            "install": "dotnet add package PresentationSpace.Controls.Uno"
          }
        },
        {
          "name": "PresentationSpace.Editor.Uno",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Embeddable complete editor with an injectable IWorkspaceStorage contract",
          "nuget": {
            "id": "PresentationSpace.Editor.Uno",
            "version": "0.6.0",
            "url": "https://www.nuget.org/packages/PresentationSpace.Editor.Uno",
            "install": "dotnet add package PresentationSpace.Editor.Uno"
          }
        }
      ]
    },
    {
      "name": "ImageSpace",
      "slug": "imagespace",
      "category": "Media",
      "tagline": "A local-first layered image studio in C#, on desktop and the web",
      "url": "https://wieslawsoltes.github.io/ImageSpace/",
      "repo": "https://github.com/wieslawsoltes/ImageSpace",
      "version": "0.3.2-alpha.1",
      "loc": {
        "total": 12516,
        "src": 9460,
        "tests": 3056
      },
      "packages": [
        {
          "name": "ImageSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Colors, copy-on-write tiles, layers, document invariants and tone curve/levels math",
          "nuget": {
            "id": "ImageSpace.Core",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Core",
            "install": "dotnet add package ImageSpace.Core --prerelease"
          }
        },
        {
          "name": "ImageSpace.Imaging",
          "layer": "engine",
          "ui": "None",
          "role": "Pressure-aware brushes, selections, flood fill, raster geometry and histograms",
          "nuget": {
            "id": "ImageSpace.Imaging",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Imaging",
            "install": "dotnet add package ImageSpace.Imaging --prerelease"
          }
        },
        {
          "name": "ImageSpace.Filters",
          "layer": "engine",
          "ui": "None",
          "role": "Selection-aware color/convolution filters and sparse tone-lookup processing",
          "nuget": {
            "id": "ImageSpace.Filters",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Filters",
            "install": "dotnet add package ImageSpace.Filters --prerelease"
          }
        },
        {
          "name": "ImageSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Transactions, bounded tile history, rollback, mask application and editor commands",
          "nuget": {
            "id": "ImageSpace.Editing",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Editing",
            "install": "dotnet add package ImageSpace.Editing --prerelease"
          }
        },
        {
          "name": "ImageSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Versioned native archives and bounded 8-bit RGB PSD codec",
          "nuget": {
            "id": "ImageSpace.Documents",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Documents",
            "install": "dotnet add package ImageSpace.Documents --prerelease"
          }
        },
        {
          "name": "ImageSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Compositor, revision-cached tile images, live adjustments, mask baking and image codecs",
          "nuget": {
            "id": "ImageSpace.Skia",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Skia",
            "install": "dotnet add package ImageSpace.Skia --prerelease"
          }
        },
        {
          "name": "ImageSpace.WebGpu",
          "layer": "service",
          "ui": "WebGPU",
          "role": "WebGPU compute contracts and standalone JavaScript/WGSL RGBA kernels",
          "nuget": {
            "id": "ImageSpace.WebGpu",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.WebGpu",
            "install": "dotnet add package ImageSpace.WebGpu --prerelease"
          }
        },
        {
          "name": "ImageSpace.Storage",
          "layer": "service",
          "ui": "None",
          "role": "Host-independent file and recovery contracts",
          "nuget": {
            "id": "ImageSpace.Storage",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Storage",
            "install": "dotnet add package ImageSpace.Storage --prerelease"
          }
        },
        {
          "name": "ImageSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Custom icons, buttons, menus, numeric fields, spectrum, histograms, curve and levels editors",
          "nuget": {
            "id": "ImageSpace.Controls",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Controls",
            "install": "dotnet add package ImageSpace.Controls --prerelease"
          }
        },
        {
          "name": "ImageSpace.Editor",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Embeddable viewport with camera, paint, selection, transform and crop gestures",
          "nuget": {
            "id": "ImageSpace.Editor",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Editor",
            "install": "dotnet add package ImageSpace.Editor --prerelease"
          }
        },
        {
          "name": "ImageSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Workspace, panels, tonal inspector, menus, commands and multi-document tabs",
          "nuget": {
            "id": "ImageSpace.Workbench",
            "version": "0.3.2-alpha.1",
            "url": "https://www.nuget.org/packages/ImageSpace.Workbench",
            "install": "dotnet add package ImageSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "LightSpace",
      "slug": "lightspace",
      "category": "Media",
      "tagline": "A local-first photography workspace for desktop and browser",
      "url": "https://wieslawsoltes.github.io/LightSpace/",
      "repo": "https://github.com/wieslawsoltes/LightSpace",
      "version": "0.5.0-alpha.1",
      "loc": {
        "total": 6783,
        "src": 5485,
        "tests": 1298
      },
      "packages": [
        {
          "name": "LightSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Photo state, grading, curves/interpolation, masks, brush samples, geometry and presets",
          "nuget": {
            "id": "LightSpace.Core",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Core",
            "install": "dotnet add package LightSpace.Core --prerelease"
          }
        },
        {
          "name": "LightSpace.Catalog",
          "layer": "io",
          "ui": "None",
          "role": "Schema migration, serialization, queries and XMP metadata/settings interchange",
          "nuget": {
            "id": "LightSpace.Catalog",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Catalog",
            "install": "dotnet add package LightSpace.Catalog --prerelease"
          }
        },
        {
          "name": "LightSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Gesture transactions, bounded undo/redo, versions, synchronization and revision-aware recovery",
          "nuget": {
            "id": "LightSpace.Editing",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Editing",
            "install": "dotnet add package LightSpace.Editing --prerelease"
          }
        },
        {
          "name": "LightSpace.Imaging",
          "layer": "io",
          "ui": "SkiaSharp",
          "role": "Bounded decoding, EXIF orientation, sRGB conversion and fallback artwork",
          "nuget": {
            "id": "LightSpace.Imaging",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Imaging",
            "install": "dotnet add package LightSpace.Imaging --prerelease"
          }
        },
        {
          "name": "LightSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "SkSL runtime effects, image cache, curve tables, incremental brush coverage, histogram and export",
          "nuget": {
            "id": "LightSpace.Rendering.Skia",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Rendering.Skia",
            "install": "dotnet add package LightSpace.Rendering.Skia --prerelease"
          }
        },
        {
          "name": "LightSpace.Storage",
          "layer": "service",
          "ui": "None",
          "role": "Import/export contracts, atomic native recovery store and optional sidecar-picker capability",
          "nuget": {
            "id": "LightSpace.Storage",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Storage",
            "install": "dotnet add package LightSpace.Storage --prerelease"
          }
        },
        {
          "name": "LightSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Original Uno chrome, icons, sliders, grading/mixer/curve/mask/brush controls and photo canvas",
          "nuget": {
            "id": "LightSpace.Controls",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Controls",
            "install": "dotnet add package LightSpace.Controls --prerelease"
          }
        },
        {
          "name": "LightSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Composable workspace, inspectors, commands, dialogs and save UX",
          "nuget": {
            "id": "LightSpace.Workbench",
            "version": "0.4.1-alpha.1",
            "url": "https://www.nuget.org/packages/LightSpace.Workbench",
            "install": "dotnet add package LightSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "VideoSpace",
      "slug": "videospace",
      "category": "Media",
      "tagline": "Local-first nonlinear video editing with GPU composition in-browser",
      "url": "https://wieslawsoltes.github.io/VideoSpace/",
      "repo": "https://github.com/wieslawsoltes/VideoSpace",
      "version": "0.3.0-alpha.1",
      "loc": {
        "total": 4292,
        "src": 3742,
        "tests": 550
      },
      "packages": [
        {
          "name": "VideoSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Media/sequence model, rational time, validation and prepared indexes",
          "nuget": {
            "id": "VideoSpace.Core",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Core",
            "install": "dotnet add package VideoSpace.Core --prerelease"
          }
        },
        {
          "name": "VideoSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Atomic edits, transitions, nesting, camera cuts, clipboard and history",
          "nuget": {
            "id": "VideoSpace.Editing",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Editing",
            "install": "dotnet add package VideoSpace.Editing --prerelease"
          }
        },
        {
          "name": "VideoSpace.Timeline",
          "layer": "engine",
          "ui": "None",
          "role": "Indexed timeline geometry, hit testing, snapping and anchored zoom",
          "nuget": {
            "id": "VideoSpace.Timeline",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Timeline",
            "install": "dotnet add package VideoSpace.Timeline --prerelease"
          }
        },
        {
          "name": "VideoSpace.Effects",
          "layer": "engine",
          "ui": "None",
          "role": "Keyframed evaluation and prepared recursive frame plans",
          "nuget": {
            "id": "VideoSpace.Effects",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Effects",
            "install": "dotnet add package VideoSpace.Effects --prerelease"
          }
        },
        {
          "name": "VideoSpace.Audio",
          "layer": "engine",
          "ui": "None",
          "role": "Prepared sample-clock mixing, waveform reduction, metering and WAV",
          "nuget": {
            "id": "VideoSpace.Audio",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Audio",
            "install": "dotnet add package VideoSpace.Audio --prerelease"
          }
        },
        {
          "name": "VideoSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Validated native manifests, SRT captions and guarded cuts-only EDL",
          "nuget": {
            "id": "VideoSpace.Documents",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Documents",
            "install": "dotnet add package VideoSpace.Documents --prerelease"
          }
        },
        {
          "name": "VideoSpace.Rendering",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Skia layer/transition/sequence composition, procedural footage and PNG",
          "nuget": {
            "id": "VideoSpace.Rendering",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Rendering",
            "install": "dotnet add package VideoSpace.Rendering --prerelease"
          }
        },
        {
          "name": "VideoSpace.Media",
          "layer": "service",
          "ui": "Uno",
          "role": "Browser storage, GPU graph, local media, packet indexing and codecs",
          "nuget": {
            "id": "VideoSpace.Media",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Media",
            "install": "dotnet add package VideoSpace.Media --prerelease"
          }
        },
        {
          "name": "VideoSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Custom timeline, monitors, bins, panels, icons and editing fields",
          "nuget": {
            "id": "VideoSpace.Controls",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Controls",
            "install": "dotnet add package VideoSpace.Controls --prerelease"
          }
        },
        {
          "name": "VideoSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Embeddable nonlinear editing workspace, effects inspector and workflows",
          "nuget": {
            "id": "VideoSpace.Workbench",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/VideoSpace.Workbench",
            "install": "dotnet add package VideoSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "EffectsSpace",
      "slug": "effectsspace",
      "category": "Media",
      "tagline": "A C# motion-design and compositing workbench for desktop and browser",
      "url": "https://wieslawsoltes.github.io/EffectsSpace/",
      "repo": "https://github.com/wieslawsoltes/EffectsSpace",
      "version": "0.1.0-alpha.1",
      "loc": {
        "total": 6932,
        "src": 6210,
        "tests": 722
      },
      "packages": [
        {
          "name": "EffectsSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Compositions, layers, paths, effects, channels and rational time",
          "nuget": {
            "id": "EffectsSpace.Core",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Core",
            "install": "dotnet add package EffectsSpace.Core --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Animation",
          "layer": "engine",
          "ui": "None",
          "role": "Curves, derivatives, easing, transforms and bounded expressions",
          "nuget": {
            "id": "EffectsSpace.Animation",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Animation",
            "install": "dotnet add package EffectsSpace.Animation --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Versioned JSON, validation, budgets and storage/audio-output contracts",
          "nuget": {
            "id": "EffectsSpace.Documents",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Documents",
            "install": "dotnet add package EffectsSpace.Documents --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Editing",
          "layer": "engine",
          "ui": "None",
          "role": "Transactions, selection-aware history, keyframe clipboard and commands",
          "nuget": {
            "id": "EffectsSpace.Editing",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Editing",
            "install": "dotnet add package EffectsSpace.Editing --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Rendering",
          "layer": "rendering",
          "ui": "None",
          "role": "Indexed frame evaluation, render plans, hit testing and export schedules",
          "nuget": {
            "id": "EffectsSpace.Rendering",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Rendering",
            "install": "dotnet add package EffectsSpace.Rendering --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Media",
          "layer": "io",
          "ui": "None",
          "role": "RIFF/AVI/WAVE, PCM indexing, sinc resampling, audio mixing and AVI muxing",
          "nuget": {
            "id": "EffectsSpace.Media",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Media",
            "install": "dotnet add package EffectsSpace.Media --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Compositing, filters and masks, resource caches and PNG/AVI rendering",
          "nuget": {
            "id": "EffectsSpace.Skia",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Skia",
            "install": "dotnet add package EffectsSpace.Skia --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Controls",
          "layer": "controls",
          "ui": "Uno",
          "role": "Original studio chrome, icons, choices, splitters and numeric scrubbing",
          "nuget": {
            "id": "EffectsSpace.Controls",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Controls",
            "install": "dotnet add package EffectsSpace.Controls --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Viewer",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Composition viewer with camera, transforms, paths, inline text, masks and waveform",
          "nuget": {
            "id": "EffectsSpace.Viewer",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Viewer",
            "install": "dotnet add package EffectsSpace.Viewer --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Timeline",
          "layer": "editor",
          "ui": "Uno + Skia",
          "role": "Row-cached timeline, clip/key editing, marquee and value/velocity graphs",
          "nuget": {
            "id": "EffectsSpace.Timeline",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Timeline",
            "install": "dotnet add package EffectsSpace.Timeline --prerelease"
          }
        },
        {
          "name": "EffectsSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Panels, media/delivery settings, transport, render queue and document workflows",
          "nuget": {
            "id": "EffectsSpace.Workbench",
            "version": "0.1.0-alpha.1",
            "url": "https://www.nuget.org/packages/EffectsSpace.Workbench",
            "install": "dotnet add package EffectsSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "CadSpace",
      "slug": "cadspace",
      "category": "Engineering",
      "tagline": "A modular CAD workspace for desktop and the browser",
      "url": "https://wieslawsoltes.github.io/CadSpace/",
      "repo": "https://github.com/wieslawsoltes/CadSpace",
      "version": "0.1.0",
      "loc": {
        "total": 9324,
        "src": 8115,
        "tests": 1209
      },
      "packages": [
        {
          "name": "CadSpace.Geometry",
          "layer": "model",
          "ui": "None",
          "role": "Double vectors/transforms, OCS, rays/planes, intersections, triangulation and spatial index",
          "nuget": {
            "id": "CadSpace.Geometry",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CadSpace.Geometry",
            "install": "dotnet add package CadSpace.Geometry"
          }
        },
        {
          "name": "CadSpace.Model",
          "layer": "model",
          "ui": "None",
          "role": "Immutable geometry, styles and blocks, scene cache, spline/hatch and mesh algorithms",
          "nuget": {
            "id": "CadSpace.Model",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CadSpace.Model",
            "install": "dotnet add package CadSpace.Model"
          }
        },
        {
          "name": "CadSpace.Engine",
          "layer": "engine",
          "ui": "None",
          "role": "Sessions, commands, selection/grips/snapping, undoable editing and workspace preferences",
          "nuget": {
            "id": "CadSpace.Engine",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CadSpace.Engine",
            "install": "dotnet add package CadSpace.Engine"
          }
        },
        {
          "name": "CadSpace.Dxf",
          "layer": "io",
          "ui": "None",
          "role": "DXF transport, interpreters and writers, native projects and recovery journal",
          "nuget": {
            "id": "CadSpace.Dxf",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CadSpace.Dxf",
            "install": "dotnet add package CadSpace.Dxf"
          }
        },
        {
          "name": "CadSpace.Rendering",
          "layer": "rendering",
          "ui": "SkiaSharp + OpenGL",
          "role": "Cameras, Skia drafting and OpenGL geometry, text, pattern and selection passes",
          "nuget": {
            "id": "CadSpace.Rendering",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CadSpace.Rendering",
            "install": "dotnet add package CadSpace.Rendering"
          }
        },
        {
          "name": "CadSpace.Controls",
          "layer": "workbench",
          "ui": "Uno + Skia + OpenGL",
          "role": "Public Uno workspace components, managers, palette host, ribbon and navigation",
          "nuget": {
            "id": "CadSpace.Controls",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CadSpace.Controls",
            "install": "dotnet add package CadSpace.Controls"
          }
        }
      ]
    },
    {
      "name": "LabSpace",
      "slug": "labspace",
      "category": "Engineering",
      "tagline": "Build front panels, wire typed block diagrams and run them live",
      "url": "https://wieslawsoltes.github.io/LabSpace/",
      "repo": "https://github.com/wieslawsoltes/LabSpace",
      "version": "0.3.0-alpha.1",
      "loc": {
        "total": 6159,
        "src": 5257,
        "tests": 886
      },
      "packages": [
        {
          "name": "LabSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Models, immutable typed values, node catalog, named terminals and structure contracts",
          "nuget": {
            "id": "LabSpace.Core",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Core",
            "install": "dotnet add package LabSpace.Core --prerelease"
          }
        },
        {
          "name": "LabSpace.Signals",
          "layer": "engine",
          "ui": "None",
          "role": "Signal generation, transformations, filtering, stable RMS and FFT",
          "nuget": {
            "id": "LabSpace.Signals",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Signals",
            "install": "dotnet add package LabSpace.Signals --prerelease"
          }
        },
        {
          "name": "LabSpace.Dataflow",
          "layer": "engine",
          "ui": "None",
          "role": "Graph validation/compilation, named-output execution, nested activations and budgets",
          "nuget": {
            "id": "LabSpace.Dataflow",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Dataflow",
            "install": "dotnet add package LabSpace.Dataflow --prerelease"
          }
        },
        {
          "name": "LabSpace.Documents",
          "layer": "io",
          "ui": "None",
          "role": "Versioned source-generated JSON, validation/migration and executable examples",
          "nuget": {
            "id": "LabSpace.Documents",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Documents",
            "install": "dotnet add package LabSpace.Documents --prerelease"
          }
        },
        {
          "name": "LabSpace.Editing",
          "layer": "editor",
          "ui": "None",
          "role": "UI-independent editing, transactions, history, wiring and debugging session",
          "nuget": {
            "id": "LabSpace.Editing",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Editing",
            "install": "dotnet add package LabSpace.Editing --prerelease"
          }
        },
        {
          "name": "LabSpace.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Instrument/diagram rendering, geometry, cached previews, icons and plot decimation",
          "nuget": {
            "id": "LabSpace.Skia",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Skia",
            "install": "dotnet add package LabSpace.Skia --prerelease"
          }
        },
        {
          "name": "LabSpace.Storage",
          "layer": "service",
          "ui": "None",
          "role": "Host-neutral storage contract and protected recovery behavior",
          "nuget": {
            "id": "LabSpace.Storage",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Storage",
            "install": "dotnet add package LabSpace.Storage --prerelease"
          }
        },
        {
          "name": "LabSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Uno canvases, chrome, palette, Quick Drop, connector editor and property inspector",
          "nuget": {
            "id": "LabSpace.Controls",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Controls",
            "install": "dotnet add package LabSpace.Controls --prerelease"
          }
        },
        {
          "name": "LabSpace.Workbench",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Complete reusable studio, commands, navigation, execution and recovery scheduling",
          "nuget": {
            "id": "LabSpace.Workbench",
            "version": "0.3.0-alpha.1",
            "url": "https://www.nuget.org/packages/LabSpace.Workbench",
            "install": "dotnet add package LabSpace.Workbench --prerelease"
          }
        }
      ]
    },
    {
      "name": "ControlSpace",
      "slug": "controlspace",
      "category": "Engineering",
      "tagline": "A PLC engineering workspace with a virtual controller, in your browser",
      "url": "https://wieslawsoltes.github.io/ControlSpace/",
      "repo": "https://github.com/wieslawsoltes/ControlSpace",
      "version": "0.1.0",
      "loc": {
        "total": 4812,
        "src": 4446,
        "tests": 317
      },
      "packages": [
        {
          "name": "ControlSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Typed engineering model, validation and detached snapshots",
          "nuget": {
            "id": "ControlSpace.Core",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Core",
            "install": "dotnet add package ControlSpace.Core"
          }
        },
        {
          "name": "ControlSpace.Languages",
          "layer": "engine",
          "ui": "None",
          "role": "Bounded SCL parser, LAD compiler and typed intermediate representation",
          "nuget": {
            "id": "ControlSpace.Languages",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Languages",
            "install": "dotnet add package ControlSpace.Languages"
          }
        },
        {
          "name": "ControlSpace.Simulation",
          "layer": "engine",
          "ui": "None",
          "role": "Deterministic virtual scans, inputs, forcing and trace",
          "nuget": {
            "id": "ControlSpace.Simulation",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Simulation",
            "install": "dotnet add package ControlSpace.Simulation"
          }
        },
        {
          "name": "ControlSpace.Storage",
          "layer": "io",
          "ui": "None",
          "role": "JSON, CSV and atomic filesystem persistence",
          "nuget": {
            "id": "ControlSpace.Storage",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Storage",
            "install": "dotnet add package ControlSpace.Storage"
          }
        },
        {
          "name": "ControlSpace.Engineering",
          "layer": "editor",
          "ui": "None",
          "role": "Editing transactions, references, tag-table editing, WorkbenchLayout and EditorSession",
          "nuget": {
            "id": "ControlSpace.Engineering",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Engineering",
            "install": "dotnet add package ControlSpace.Engineering"
          }
        },
        {
          "name": "ControlSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Shared vector drawing and hit regions for engineering editors",
          "nuget": {
            "id": "ControlSpace.Rendering.Skia",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Rendering.Skia",
            "install": "dotnet add package ControlSpace.Rendering.Skia"
          }
        },
        {
          "name": "ControlSpace.Controls.Uno",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Canvas, table, project tree, theme, pane chrome, splitters and editor bar",
          "nuget": {
            "id": "ControlSpace.Controls.Uno",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Controls.Uno",
            "install": "dotnet add package ControlSpace.Controls.Uno"
          }
        },
        {
          "name": "ControlSpace.Workbench.Uno",
          "layer": "workbench",
          "ui": "Uno",
          "role": "Composable engineering workbench with IProjectFiles and IWorkbenchPreferences",
          "nuget": {
            "id": "ControlSpace.Workbench.Uno",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/ControlSpace.Workbench.Uno",
            "install": "dotnet add package ControlSpace.Workbench.Uno"
          }
        }
      ]
    },
    {
      "name": "CodeSpace",
      "slug": "codespace",
      "category": "Developer",
      "tagline": "A VS Code-style developer workbench, custom-built in C# on Uno",
      "url": "https://wieslawsoltes.github.io/CodeSpace/",
      "repo": "https://github.com/wieslawsoltes/CodeSpace",
      "version": "0.1.0",
      "loc": {
        "total": 3842,
        "src": 3524,
        "tests": 318
      },
      "packages": [
        {
          "name": "CodeSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Persistent text, virtual workspace, commands and configuration",
          "nuget": {
            "id": "CodeSpace.Core",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Core",
            "install": "dotnet add package CodeSpace.Core"
          }
        },
        {
          "name": "CodeSpace.Editor",
          "layer": "editor",
          "ui": "None",
          "role": "Transactions, selections, history and folding indexes",
          "nuget": {
            "id": "CodeSpace.Editor",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Editor",
            "install": "dotnet add package CodeSpace.Editor"
          }
        },
        {
          "name": "CodeSpace.Docking",
          "layer": "model",
          "ui": "None",
          "role": "Immutable split/tab layouts and persistence",
          "nuget": {
            "id": "CodeSpace.Docking",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Docking",
            "install": "dotnet add package CodeSpace.Docking"
          }
        },
        {
          "name": "CodeSpace.Languages",
          "layer": "engine",
          "ui": "None",
          "role": "Tokenizer and lexical language services",
          "nuget": {
            "id": "CodeSpace.Languages",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Languages",
            "install": "dotnet add package CodeSpace.Languages"
          }
        },
        {
          "name": "CodeSpace.Extensions",
          "layer": "service",
          "ui": "None",
          "role": "VSIX inspection, compatibility reports and RPC framing",
          "nuget": {
            "id": "CodeSpace.Extensions",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Extensions",
            "install": "dotnet add package CodeSpace.Extensions"
          }
        },
        {
          "name": "CodeSpace.ExtensionHost",
          "layer": "service",
          "ui": "None (JavaScript)",
          "role": "@codespace/extension-host: browser/Node extension runtime and provider adapters",
          "nuget": null
        },
        {
          "name": "CodeSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Editor renderer and viewport on a caller-owned SKCanvas",
          "nuget": {
            "id": "CodeSpace.Rendering.Skia",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Rendering.Skia",
            "install": "dotnet add package CodeSpace.Rendering.Skia"
          }
        },
        {
          "name": "CodeSpace.Controls.Uno",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Editor, input bridge, tree, tabs, splitter, activity bar and quick pick controls",
          "nuget": {
            "id": "CodeSpace.Controls.Uno",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Controls.Uno",
            "install": "dotnet add package CodeSpace.Controls.Uno"
          }
        },
        {
          "name": "CodeSpace.Workbench.Uno",
          "layer": "workbench",
          "ui": "Uno + Skia",
          "role": "Composable workbench and IWorkbenchPlatform adapter contract",
          "nuget": {
            "id": "CodeSpace.Workbench.Uno",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/CodeSpace.Workbench.Uno",
            "install": "dotnet add package CodeSpace.Workbench.Uno"
          }
        }
      ]
    },
    {
      "name": "GitSpace",
      "slug": "gitspace",
      "category": "Developer",
      "tagline": "A familiar Git desktop workflow, running as one shared Uno app",
      "url": "https://wieslawsoltes.github.io/GitSpace/",
      "repo": "https://github.com/wieslawsoltes/GitSpace",
      "version": "0.1.0",
      "loc": {
        "total": 3124,
        "src": 2666,
        "tests": 458
      },
      "packages": [
        {
          "name": "GitSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Repository contracts, command/result models, JSON and path/ref validation",
          "nuget": {
            "id": "GitSpace.Core",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Core",
            "install": "dotnet add package GitSpace.Core"
          }
        },
        {
          "name": "GitSpace.Diff",
          "layer": "engine",
          "ui": "None",
          "role": "Bounded Myers line diff, split alignment, intraline spans and viewport arithmetic",
          "nuget": {
            "id": "GitSpace.Diff",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Diff",
            "install": "dotnet add package GitSpace.Diff"
          }
        },
        {
          "name": "GitSpace.Git",
          "layer": "service",
          "ui": "None",
          "role": "Asynchronous, shell-free system Git process backend with status/history parsing",
          "nuget": {
            "id": "GitSpace.Git",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Git",
            "install": "dotnet add package GitSpace.Git"
          }
        },
        {
          "name": "GitSpace.BrowserGit",
          "layer": "service",
          "ui": "None (JavaScript worker)",
          "role": "npm package @gitspace/browser-git: worker-ready real Git backend over IndexedDB storage",
          "nuget": null
        },
        {
          "name": "GitSpace.Hosting.GitHub",
          "layer": "service",
          "ui": "None",
          "role": "Bounded GitHub pull-request HTTP client with session-scoped credentials",
          "nuget": {
            "id": "GitSpace.Hosting.GitHub",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Hosting.GitHub",
            "install": "dotnet add package GitSpace.Hosting.GitHub"
          }
        },
        {
          "name": "GitSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Framework-independent, viewport-virtualized unified and split diff renderer",
          "nuget": {
            "id": "GitSpace.Rendering.Skia",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Rendering.Skia",
            "install": "dotnet add package GitSpace.Rendering.Skia"
          }
        },
        {
          "name": "GitSpace.Controls.Uno",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Toolbar tiles, change and history lists, commit composer, diff viewer and splitter",
          "nuget": {
            "id": "GitSpace.Controls.Uno",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Controls.Uno",
            "install": "dotnet add package GitSpace.Controls.Uno"
          }
        },
        {
          "name": "GitSpace.Workbench.Uno",
          "layer": "workbench",
          "ui": "Uno",
          "role": "Complete embeddable Git client workspace and dialogs with an injected backend",
          "nuget": {
            "id": "GitSpace.Workbench.Uno",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/GitSpace.Workbench.Uno",
            "install": "dotnet add package GitSpace.Workbench.Uno"
          }
        }
      ]
    },
    {
      "name": "DataSpace",
      "slug": "dataspace",
      "category": "Data",
      "tagline": "An Access-style database studio running natively in the browser",
      "url": "https://wieslawsoltes.github.io/DataSpace/",
      "repo": "https://github.com/wieslawsoltes/DataSpace",
      "version": "0.2.0-preview.3",
      "loc": {
        "total": 8841,
        "src": 6619,
        "tests": 2049
      },
      "packages": [
        {
          "name": "DataSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Typed document model, validation, relational constraints, transactions, history, snapshots and document codec",
          "nuget": {
            "id": "DataSpace.Core",
            "version": "0.2.0-preview.3",
            "url": "https://www.nuget.org/packages/DataSpace.Core",
            "install": "dotnet add package DataSpace.Core --prerelease"
          }
        },
        {
          "name": "DataSpace.Query",
          "layer": "engine",
          "ui": "None",
          "role": "Managed SQL parser, expression evaluation, relational execution, QBE/Find/crosstab models and lazy table views",
          "nuget": {
            "id": "DataSpace.Query",
            "version": "0.2.0-preview.3",
            "url": "https://www.nuget.org/packages/DataSpace.Query",
            "install": "dotnet add package DataSpace.Query --prerelease"
          }
        },
        {
          "name": "DataSpace.Storage",
          "layer": "io",
          "ui": "None",
          "role": "CSV interchange, versioned optimistic persistence contracts and asynchronous save sessions",
          "nuget": {
            "id": "DataSpace.Storage",
            "version": "0.2.0-preview.3",
            "url": "https://www.nuget.org/packages/DataSpace.Storage",
            "install": "dotnet add package DataSpace.Storage --prerelease"
          }
        },
        {
          "name": "DataSpace.Rendering",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "UI-independent Skia datasheet, form, relationship, report and icon renderers",
          "nuget": {
            "id": "DataSpace.Rendering",
            "version": "0.2.0-preview.3",
            "url": "https://www.nuget.org/packages/DataSpace.Rendering",
            "install": "dotnet add package DataSpace.Rendering --prerelease"
          }
        },
        {
          "name": "DataSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Office-style Uno ribbon, navigation, datasheet, object designers, query builders and optional workspace shell",
          "nuget": {
            "id": "DataSpace.Controls",
            "version": "0.2.0-preview.3",
            "url": "https://www.nuget.org/packages/DataSpace.Controls",
            "install": "dotnet add package DataSpace.Controls --prerelease"
          }
        }
      ]
    },
    {
      "name": "NoteSpace",
      "slug": "notespace",
      "category": "Data",
      "tagline": "A familiar free-form notebook workspace built on Uno and Skia",
      "url": "https://wieslawsoltes.github.io/NoteSpace/",
      "repo": "https://github.com/wieslawsoltes/NoteSpace",
      "version": "0.1.0",
      "loc": {
        "total": 6246,
        "src": 5112,
        "tests": 1134
      },
      "packages": [
        {
          "name": "NoteSpace.Core",
          "layer": "model",
          "ui": "None",
          "role": "Notebook, rich-text and ink model, geometry, source-generated JSON and validation",
          "nuget": {
            "id": "NoteSpace.Core",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/NoteSpace.Core",
            "install": "dotnet add package NoteSpace.Core"
          }
        },
        {
          "name": "NoteSpace.Editor",
          "layer": "editor",
          "ui": "None",
          "role": "Transactions and history, organization operations, scoped search/replace, rich-text and table edits, spatial indexes",
          "nuget": {
            "id": "NoteSpace.Editor",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/NoteSpace.Editor",
            "install": "dotnet add package NoteSpace.Editor"
          }
        },
        {
          "name": "NoteSpace.Storage",
          "layer": "io",
          "ui": "None",
          "role": "Persistence contract, atomic file storage, conflict handling and import/export formats",
          "nuget": {
            "id": "NoteSpace.Storage",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/NoteSpace.Storage",
            "install": "dotnet add package NoteSpace.Storage"
          }
        },
        {
          "name": "NoteSpace.Rendering.Skia",
          "layer": "rendering",
          "ui": "SkiaSharp",
          "role": "Page composition, text layout, viewport culling, bounded native caches and PNG export",
          "nuget": {
            "id": "NoteSpace.Rendering.Skia",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/NoteSpace.Rendering.Skia",
            "install": "dotnet add package NoteSpace.Rendering.Skia"
          }
        },
        {
          "name": "NoteSpace.Controls",
          "layer": "controls",
          "ui": "Uno + Skia",
          "role": "Note surface, ribbon, notebook/page navigation, search, table editor, themes, backstage and status controls",
          "nuget": {
            "id": "NoteSpace.Controls",
            "version": "0.1.0",
            "url": "https://www.nuget.org/packages/NoteSpace.Controls",
            "install": "dotnet add package NoteSpace.Controls"
          }
        }
      ]
    }
  ]
}