Wayfinder.Engine
0.8.1
See the version list below for details.
dotnet add package Wayfinder.Engine --version 0.8.1
NuGet\Install-Package Wayfinder.Engine -Version 0.8.1
<PackageReference Include="Wayfinder.Engine" Version="0.8.1" />
<PackageVersion Include="Wayfinder.Engine" Version="0.8.1" />
<PackageReference Include="Wayfinder.Engine" />
paket add Wayfinder.Engine --version 0.8.1
#r "nuget: Wayfinder.Engine, 0.8.1"
#:package Wayfinder.Engine@0.8.1
#addin nuget:?package=Wayfinder.Engine&version=0.8.1
#tool nuget:?package=Wayfinder.Engine&version=0.8.1
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/wordmark-dark.png"> <img src="assets/wordmark-light.png" alt="Wayfinder" height="56"> </picture>
A service blueprint / service-design engine: domain model, calculation engine, state-machine engine, and a compiled visual editor web component. Framework-agnostic, with no Umbraco, no ASP.NET Core MVC, and no hosting assumptions baked in.
The domain model is the service blueprint as the Nielsen Norman Group defines it: a user journey laid out across customer actions, frontstage, backstage, and support processes, divided by the lines of interaction, visibility, and internal interaction. Wayfinder makes that model executable, and delivers journeys to GDS Service Standard practice with the real GOV.UK Design System.
Wayfinder was extracted from Umbraco Prism,
which is now a consumer of these packages rather than their owner. A host application,
Umbraco-based or otherwise, layers its own tenancy, auth, and rendering opinions on top.
Wayfinder.Umbraco is the Umbraco-hosted
implementation Prism itself uses.
See it running
Wayfinder.AppHost + Wayfinder.ReferenceApp is a small, self-contained .NET Aspire host in
this repo, with every package wired together, real GOV.UK Design System rendering, a demo login,
and a seeded "apply for a licence to hold a juggling event" journey. It's the fastest way to
see what a working Wayfinder host actually looks like, and exactly how little wiring a real
host (like Wayfinder.Umbraco) collapses into. Run it with
dotnet run --project Wayfinder.AppHost, or the "C#: Aspire (Full Stack)" launch config in
VS Code. See docs/guides/reference-app.md for what it
implements, how the demo blueprint is seeded from JSON and only saved in memory, and what a
real host does differently.
Packages
| Package | Purpose |
|---|---|
Wayfinder |
Core domain models (ServiceBlueprint, ServiceRequestResponseEnvelope, etc.), the declarative calculation engine, and the sanitizer interface. Zero framework dependency. |
Wayfinder.Engine |
The service blueprint state-machine engine: queue routing, gateway evaluation, request persistence. |
Wayfinder.Engine.Api |
REST toolkit (MapServiceBlueprintAuthoringApi()) exposing service blueprint authoring (list/read/validate/save/simulate) over HTTP for any ASP.NET Core host. |
Wayfinder.Engine.Mcp |
MCP-over-HTTP toolkit (MapServiceBlueprintAuthoringMcp()): the same authoring surface as MCP tools for AI agents. |
The service blueprint model
Wayfinder implements the
Nielsen Norman Group service blueprint
(Sarah Gibbons, 2017) as a runnable artefact. In that model a user's journey is laid out across
horizontal lanes, divided by the lines of interaction, visibility, and internal interaction.
Those lanes are a blueprint's queues, one for each team or system that does the work. A
stage is a step in the journey. Every stage sits in a queue, and the queue is what places it
in a lane, so a stage is a stage whether it happens frontstage or backstage. A gateway is the
route from one stage to the next, from any lane to any lane. Alongside the route a gateway
carries the declarative rules for it: whether to split or join, waiting information, and the
conditions that choose a path. Support Systems is NN/g's support-processes lane made
first-class.
The model is the Nielsen Norman Group service blueprint (Sarah Gibbons, 2017). See the article for Gibbons' own worked example.
A ServiceBlueprint describes a journey as queues (named work queues), stages (each
owning its own routes), and gateways (first-class Split/Join routing nodes that a stage's
routes always target, never another stage directly). See
docs/guides/reference-service-blueprint-contract.md
for the full authoring schema, and
docs/guides/calculation-language.md for the
declarative expression language used in calculations and showWhen.
AI-ready authoring
Service blueprint authoring is exposed to AI agents (Claude Code or any MCP client) the
same way it's exposed to a human editor: as a toolkit a host app wires into its own
pipeline. Wayfinder.Engine.Api and Wayfinder.Engine.Mcp map the same
list/read/validate/save/simulate operations as REST and MCP-over-HTTP respectively, both
calling straight into a host's live Wayfinder.Engine in-process. See
docs/guides/ai-service-blueprint-authoring.md.
Building
dotnet build Wayfinder.slnx
dotnet pack Wayfinder.slnx
License
MIT. See LICENSE.
| 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. |
-
net10.0
- CsvHelper (>= 33.0.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Http (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Wayfinder (>= 0.8.1)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Wayfinder.Engine:
| Package | Downloads |
|---|---|
|
Wayfinder.Umbraco
Umbraco-hosted implementation of Wayfinder service design: a DB-backed, uSync-portable service blueprint store, a backoffice authoring API, and two Block Grid-composable building blocks (a citizen-facing stage journey and a caseworker-facing worklist) for any Umbraco v17+ site. An authoritative in-process engine, real multi-queue support, no multi-tenancy or auth opinions of its own; a host wires its own identity/tenant resolution on top. |
|
|
Wayfinder.Engine.Mcp
ASP.NET Core MCP-over-HTTP endpoint mapping that exposes Wayfinder service blueprint authoring (list/read/validate/save/simulate) as MCP tools — a single MapServiceBlueprintAuthoringMcp() call any host adds to its own pipeline, alongside MapServiceBlueprintAuthoringApi(), inheriting its own auth. |
|
|
Wayfinder.Engine.Api
ASP.NET Core minimal-API endpoint mapping that exposes Wayfinder service blueprint authoring (list/read/validate/save/simulate) as HTTP endpoints — a single MapServiceBlueprintAuthoringApi() call any host adds to its own pipeline, inheriting its own auth. |
|
|
Wayfinder.Engine.Http
The engine's own HTTP-request-processing glue a host otherwise hand-copies per route — currently just file-upload handling (validating a posted file against a field's own declared MaxSizeBytes/AcceptedFileTypes, saving it via IServiceRequestFileStorage, and writing the resulting reference into fieldValues). Plain functions, no routing of its own — a host calls these from inside its own minimal-API handlers, the same way Wayfinder.Rendering.GovUk's GovUkStageJourney functions are called. |
|
|
Wayfinder.Engine.Worklist
A default, optional caseworker worklist surface — server-rendered GOV.UK markup for the filter/sort/search/paginated list (see docs/guides/queue-worklist-filtering.md), an item review page, advance, and per-cursor pickup/putback (see docs/guides/work-allocation.md). A host wires it up with AddWorklist()/MapWorklist(prefix), supplying only tenant/actor resolution and its own page chrome — or, for a host whose own routing model doesn't fit a mounted route group, calls WorklistRenderer's rendering functions directly and supplies its own routes. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.11.1 | 36 | 9/19/2026 |
| 0.11.0 | 111 | 9/19/2026 |
| 0.10.1 | 75 | 9/19/2026 |
| 0.10.0 | 107 | 9/19/2026 |
| 0.9.13 | 208 | 9/18/2026 |
| 0.9.12 | 575 | 9/14/2026 |
| 0.9.11 | 104 | 9/14/2026 |
| 0.9.10 | 152 | 9/14/2026 |
| 0.9.9 | 1,396 | 9/11/2026 |
| 0.9.8 | 154 | 9/11/2026 |
| 0.9.7 | 147 | 9/11/2026 |
| 0.9.6 | 113 | 9/11/2026 |
| 0.9.5 | 451 | 9/10/2026 |
| 0.9.4 | 1,772 | 9/7/2026 |
| 0.9.3 | 152 | 9/7/2026 |
| 0.9.2 | 252 | 9/6/2026 |
| 0.9.1 | 274 | 9/5/2026 |
| 0.9.0 | 129 | 9/5/2026 |
| 0.8.1 | 277 | 9/2/2026 |
| 0.8.0 | 122 | 9/2/2026 |