Skip to content

Add typed D2 features and fluent APIs - #8

Merged
Stephanvs merged 3 commits into
mainfrom
feature/typed-d2-features
Aug 9, 2026
Merged

Add typed D2 features and fluent APIs#8
Stephanvs merged 3 commits into
mainfrom
feature/typed-d2-features

Conversation

@Stephanvs

@Stephanvs Stephanvs commented Aug 9, 2026

Copy link
Copy Markdown
Owner

What changed

  • expands D2Style to the documented style catalog with optional named arguments, typed enums, and range validation
  • adds typed shape and connection icons, links, tooltips, dimensions, and styles
  • adds typed SQL tables, columns, and constraints
  • adds typed UML classes, fields, methods, parameters, and visibility
  • adds ordered fluent sequence-diagram helpers
  • adds D2DiagramBuilder for mutable fluent construction and immutable snapshots
  • makes shape labels optional and adds PascalCase direction aliases while preserving obsolete uppercase aliases
  • internalizes the legacy serialization helper
  • aligns the UML member hierarchy across netstandard2.0, net8.0, and net10.0
  • adds typed examples and broad parser-backed coverage

Validation

  • dotnet test: 33/33 passed
  • three real d2 validate integration paths pass
  • all three package target frameworks build cleanly
  • package integration confirms no compatible-framework API mismatch
  • documented style ranges and invalid enum values are tested
  • git diff --check: passed

Compatibility

This is a major-version API change: the style constructor expands, the legacy helper becomes internal, and uppercase direction fields are deprecated (but preserved).

Stack dependency

This PR targets feature/extensible-model. Merge PR #4, then PR #7, and retarget this PR to main before merging.

@Stephanvs
Stephanvs changed the base branch from feature/extensible-model to main August 9, 2026 10:51
@Stephanvs
Stephanvs marked this pull request as ready for review August 9, 2026 10:51
@Stephanvs
Stephanvs merged commit 4178587 into main Aug 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant