Skip to content

fix(deps): Bump bunit, FsCheck and Swashbuckle.AspNetCore.SwaggerGen - #239

Merged
github-actions[bot] merged 1 commit into
mainfrom
dependabot/nuget/dotnet-3c616f897e
Oct 28, 2026
Merged

github-actions[bot] merged 1 commit into
mainfrom
dependabot/nuget/dotnet-3c616f897e

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 27, 2026

Copy link
Copy Markdown
Contributor

Updated bunit from 2.11.3 to 2.12.5.

Release notes

Sourced from bunit's releases.

2.12.5

Fixed

  • WrapperBase.WrappedElement could return null and throw NullReferenceException when an element was accessed concurrently with component re-renders. Reported by @​psu-prog in #​1937. Fixed by @​Nacl-HCl.
  • DisposeComponentsAsync() could dispose nothing when the renderer's dispatcher was busy, e.g. with a timer calling InvokeAsync. Reported by @​xfunc-tim-schneider in #​1939. Fixed by @​linkdotnet.
  • Markup generation and FindComponents could recurse until the test host crashed with a stack overflow when a render threw while instantiating a child component. Reported in #​1935. Fixed by @​linkdotnet.
  • Find() could keep returning DOM nodes from the previous render when a render, e.g. from a timer, happened while the nodes were parsed, causing UnknownEventHandlerIdException. Reported by @​xfunc-tim-schneider in #​1938. Fixed by @​linkdotnet.

Commits viewable in compare view.

Updated FsCheck from 3.4.0 to 3.5.0.

Release notes

Sourced from FsCheck's releases.

3.5.0

Support NUnit 5 (by Nathan Bierema)
Added support for NUnit ValueFormatters.
Added Gen.delay to defer generator construction until a value is generated.
Added support for timeout in xUnit v3.

Commits viewable in compare view.

Updated Swashbuckle.AspNetCore.SwaggerGen from 10.3.0 to 10.3.1.

Release notes

Sourced from Swashbuckle.AspNetCore.SwaggerGen's releases.

10.3.1

What's Changed

Deprecations

[!IMPORTANT]
Swashbuckle.AspNetCore.ApiTesting.Xunit depended on Xunit v2, which is no longer supported.

The package has been removed and no further versions will be released.

New Contributors

Full Changelog: domaindrivendev/Swashbuckle.AspNetCore@v10.3.0...v10.3.1

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps bunit from 2.11.3 to 2.12.5
Bumps FsCheck from 3.4.0 to 3.5.0
Bumps Swashbuckle.AspNetCore.SwaggerGen from 10.3.0 to 10.3.1

---
updated-dependencies:
- dependency-name: bunit
  dependency-version: 2.12.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet
- dependency-name: FsCheck
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet
- dependency-name: Swashbuckle.AspNetCore.SwaggerGen
  dependency-version: 10.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the .NET Pull requests that update .NET code label Oct 27, 2026
@dependabot
dependabot Bot requested a review from AdCodicem as a code owner October 27, 2026 22:36
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Oct 27, 2026
@github-actions github-actions Bot changed the title chore(deps): Bump bunit, FsCheck and Swashbuckle.AspNetCore.SwaggerGen fix(deps): Bump bunit, FsCheck and Swashbuckle.AspNetCore.SwaggerGen Oct 27, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) October 27, 2026 22:36
@codecov

codecov Bot commented Oct 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions
github-actions Bot merged commit 47b3806 into main Oct 28, 2026
38 checks passed
@dependabot
dependabot Bot deleted the dependabot/nuget/dotnet-3c616f897e branch October 28, 2026 17:50
AdCodicem pushed a commit that referenced this pull request Oct 29, 2026
The bump of #239 raised the floor AdCodicem.ValueObjects.FsCheck declares to 3.5.0, while the island still referenced
FsCheck 3.4.0 directly: its restore failed with NU1605, and heavy / compat (.NET 11) blocked the stable release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bXdF3LqPfoQDtE8WnZkcW
adcodicem-valueobjects-release Bot pushed a commit that referenced this pull request Oct 29, 2026
## [0.3.0](https://github.com/AdCodicem/AdCodicem.ValueObjects/compare/v0.2.1...v0.3.0) (2026-10-29)

### ⚠ BREAKING CHANGES

* AdCodicem.ValueObjects.Marten, .Wolverine.Http, .HotChocolate.Data, .Orleans,
.CommandLine and .CsvHelper are no longer published; their previews stay on nuget.org, deprecated.
VO0048 is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* **efcore:** under ConfigureValueObjects, an entity whose primary key is a single Guid value object that nothing
generates is refused with an InvalidOperationException carrying value_object.required when it is added, attached,
updated or removed with its key unset, or found unset through a navigation, rather than stored with Guid.Empty;
HasData can no longer seed such a key with Guid.Empty. A key whose type refuses Guid.Empty is now refused there, at
Add, with that exception, rather than at SaveChanges with a DbUpdateException around a ValueObjectException; both carry
value_object.required, which ValueObjectErrors.TryGetCode reads. Attach or Update of an aggregate whose dependent's key
holds a foreign key to such a key, left at its default for the navigation to fill in, a dependent sharing its
principal's key or one keyed by its principal's key and a number, now tracks that dependent as added, as for a Guid
key, where it was tracked unchanged: set its foreign key, or its state, by hand. Assign the key, generate it with
HasValueObjectKeyGeneration(), or opt the key out with ValueGeneratedNever().
* declare known values and the example as typed members

### Features

* **abstractions,analyzers,openapi,swashbuckle:** hold raw text to a value object's rules with [ParsesAs], and refuse a default one with [NotDefault] ([4ccd44c](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4ccd44c1e585d0ef9c0229c3d470018659744b46)), closes [#156](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/156) [#159](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/159) [#114](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/114) [dotnet/aspnetcore#65348](https://github.com/dotnet/aspnetcore/issues/65348) [#160](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/160)
* **abstractions,aspnetcore,aspnetcore-http,azurefunctions-aspnetcore,hotchocolate:** one GraphQL scalar per value object under HotChocolate 16, a refused value answered with its rule code ([f17ddf2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/f17ddf27fa97b5a6ce5907bc93decd4b62187eaa)), closes [#162](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/162) [#158](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/158)
* **abstractions,aspnetcore,aspnetcore-http,fluentvalidation:** answer refused value objects in the application's language, keyed by rule code ([9c3fce2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/9c3fce2a01ce36fa9e267c63c88e78f2eefaddf1)), closes [#127](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/127)
* **abstractions,efcore:** carry the rule code of a violated CHECK constraint on the provider's error, with UseValueObjectCheckErrors() ([6e2f1f0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6e2f1f04c5f792f2c89ddd5eb06a2be1ffdb5188)), closes [#131](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/131) [#114](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/114) [#155](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/155)
* **abstractions,generator,analyzers,efcore,dapper:** declare once that a value object's text is non-Unicode, so SQL Server stores it in varchar and receives varchar parameters ([1e4bea4](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1e4bea45812c684e35cafd307b868247c9e15cc6)), closes [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#if](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/if) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#171](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/171)
* **abstractions:** make ValueObjectException the FormatException IParsable documents ([277a8c2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/277a8c21974a13d1c0f1fc2d7ec4001b72e0da01)), closes [#101](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/101)
* **ai:** carry value objects' rules to Microsoft.Extensions.AI tools and structured output, and answer a refused tool argument with its rule code ([38e5b17](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/38e5b178e68ad1bd813ea6aeeb465fb4fb68a81e)), closes [102/#114](https://github.com/102/AdCodicem.ValueObjects/issues/114) [#126](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/126) [#132](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/132) [#125](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/125)
* **analyzers,marten:** fail the build on a value object held by a Marten compiled query, which Marten refuses or answers with the first call's value ([9f7ad92](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/9f7ad925c8e9830bf6a73cf47a1abb0e7dd2e9fe)), closes [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#186](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/186)
* **analyzers:** fail the build on a serializer's contract attribute that makes a value object lose its value, with a fix naming protobuf-net's serializer ([e952f3e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e952f3ef469d271ed3877a4ac539be5758301282)), closes [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#132](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/132) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#serializable](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/serializable) [#169](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/169)
* **analyzers:** report a static Regex Pattern written without IValueObjectPatternValidator ([3e06a79](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3e06a792861409685219d5fc656e378a02ab313a))
* **analyzers:** report a value object that Mapperly or the configuration binder creates uninitialized ([89b42da](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/89b42daa30966520351a5d387ffeb8a3a4d77951)), closes [#104](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/104) [#111](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/111) [#100](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/100)
* **analyzers:** report a value object the Request Delegate Generator would bind from the request body ([3a91d57](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3a91d576fbf0aff7c94b09c8d34e163dd3d67e7b)), closes [#107](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/107)
* **analyzers:** warn when a logging method writes a value object classified as personal data in clear, and copy its classification where the logging generator reads it ([0bbb326](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0bbb326f943840d3ed071d7b8d6f193a6b90fbb1)), closes [#102](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/102) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#170](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/170)
* **aspnetcore-http,azurefunctions,azurefunctions-aspnetcore:** bind value objects in the Azure Functions isolated worker, and answer a refused one in an HTTP trigger with its rule code ([cc07c90](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/cc07c90622680787cf51f25aa2b158ca8ef4cbd4)), closes [azure-functions-dotnet-worker#2899](https://github.com/AdCodicem/azure-functions-dotnet-worker/issues/2899) [#157](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/157)
* **aspnetcore-http:** answer a value object a minimal API refuses with problem details carrying its rule code ([d39c2c7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d39c2c7ce9a1f55aa873ea24362ca3a1a5dccc06)), closes [#120](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/120)
* **aspnetcore-newtonsoftjson:** apply JSON Patch documents through the value objects' rules, with the codes of the rules a value broke in the problem details ([872f4e8](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/872f4e8fcad63a01ef63372859c9c84a07f57487)), closes [#172](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/172)
* **aspnetcore-newtonsoftjson:** carry the rule code of a value a Newtonsoft.Json body refuses into problem details ([6175758](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6175758666ce2a4ff5585fde553fa9ff7b2a729a)), closes [#114](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/114) [#139](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/139)
* **autofixture,bogus,fscheck:** create value objects their rules accept in AutoFixture, Bogus and FsCheck ([8650e4a](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8650e4a451c5e0af7ea8d83736ba1a52f2b980e9)), closes [#124](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/124) [#124](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/124)
* **blazor:** type value objects into Blazor forms through their rules, with the refused rule's message under the field and its code on the EditContext ([4674a9c](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4674a9c02763c14f9e9b40b6362baca42201ed7e)), closes [#167](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/167) [#52499](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/52499) [#60498](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/60498) [#168](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/168)
* carry the code of the rule in every exception an integration throws, and in MVC's answer to a body ([77fdcc5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/77fdcc58f210ca51ad67ed577a1b5eaadf438b67)), closes [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#102](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/102) [#101](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/101) [#114](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/114)
* **commandline:** read value objects from System.CommandLine options and arguments through their rules, with the refused rule's message on the terminal and its code on the parse error ([c47f918](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/c47f9181a849e6b1bb8ebda6964a2dc540bbccaf)), closes [#183](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/183) [#182](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/182)
* convert any number through the type converter, and read one written as text with Newtonsoft.Json ([92c48c7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/92c48c7de633466df73dd101c505f1648cfdd721)), closes [#103](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/103)
* **csvhelper:** map value objects as single CsvHelper columns, written as their own text and read through their rules, with the refused rule's code on CsvHelper's exception ([362a418](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/362a418cb32ba0b8d9787cddeed1451ad75f8600)), closes [#182](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/182) [#183](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/183)
* **dapper:** declare the column a string value object maps to on its parameter ([f265806](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/f265806363ac8fb8743222669af7146b5affcbb7))
* declare a value object's pattern as a [GeneratedRegex] through IValueObjectPatternValidator ([00e8b82](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/00e8b82b131c12f423872d4a2514812f6ed79672))
* declare bounds through IValueObjectMinimum and IValueObjectMaximum hooks ([3e10539](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3e105395fe50d6b86cc5e836f38c59b75ca1eb94))
* declare known values and the example as typed members ([8115999](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/81159996d7b3e8b9164df18156c022b4399b266e))
* deprecate the Pattern option in favour of IValueObjectPatternValidator ([1a537f7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1a537f79bd73fcd671bf07d7ed0a6630d3532858))
* **efcore:** generate value-object keys the provider's way and refuse an entity added without its Guid key ([e5491c9](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e5491c93e2b061d2e8d0eb80c328377da73860c3)), closes [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#129](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/129)
* **efcore:** map collections of value objects as primitive collections, each element converted, compared and sized ([12801dd](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/12801dd444db5b5a054385414528b54c82851007)), closes [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#128](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/128)
* **efcore:** translate .Value of a value object in LINQ queries to its column, with UseValueObjectQueries() ([0eb9439](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0eb943926f0cf3ab696afe0b77da5c7c8c609fd5)), closes [#128](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/128) [#131](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/131) [#129](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/129) [#131](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/131) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#128](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/128) [#130](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/130)
* **efcore:** write the minimum lengths, bounds and closed value sets value objects declare as opt-in CHECK constraints ([d9f0a94](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d9f0a94b861443192466cd6488b4d577295d5ff4)), closes [#130](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/130) [#128](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/128) [#131](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/131)
* **efcore:** write value objects' patterns as CHECK constraints on SQL Server 2025 and PostgreSQL, the dialect named ([45e2fd1](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/45e2fd12987e31fc612a6b033c73403978e7f688)), closes [#131](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/131) [#131](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/131)
* generate value objects that are generic, nested in an interface, private or protected ([8ea069c](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8ea069cff7897d21e0f427ffd69c13908e62a147)), closes [#64](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/64)
* **generator:** implement IsDefault explicitly, so a tool reading public properties finds the value alone ([01559fd](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/01559fddb11ed075177ff5e64b4c98c4891ce167)), closes [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#98](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/98)
* **generator:** report a known value declared on an entity identifier ([01ce937](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/01ce93737159d0fc291973ee8a5165927e6e2a4c))
* **generator:** write and read value objects with XmlSerializer and DataContractSerializer, opted in per assembly ([aa9ca85](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/aa9ca8533171777bb0475883673c246c0a7c92f3)), closes [#122](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/122) [#124](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/124) [#121](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/121)
* **grpc:** answer the values a contract-first gRPC service's value objects refuse with INVALID_ARGUMENT and their rule codes ([bc66fab](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/bc66fab46e39407d654b69973936d20f1b98cde1)), closes [#161](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/161)
* hand a descriptor's type arguments to a visitor, and declare Schema on the value object contract ([89a21ae](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/89a21ae1f0249f1458a6de777c421d9c1ccef7a9)), closes [#98](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/98) [#117](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/117) [#113](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/113)
* hold a value object's example and known values to its own rules, at build and in the contract kit ([104c780](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/104c78063e0cd042ec581eb3486ad4f9b4405596)), closes [#104](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/104)
* **hotchocolate,hotchocolate-data:** filter on every value object in HotChocolate.Data through its scalar, normalized, refused with its rule code and translated by Entity Framework Core ([82df428](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/82df428e817196ad1682567990a55dbeacdbc7a5)), closes [#162](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/162)
* **identifiers-mongodb:** mint entity identifiers on insert, and carry the rules to MongoDB as a $jsonSchema validator ([a9c4913](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/a9c49134b2700e200452a6da49410d8d5b51fd4f)), closes [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#122](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/122)
* **identifiers:** add AllowDefault to [EntityId] ([6f1a0a0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6f1a0a048b8e16d490890c72e47c78287c8bd5d6))
* **json:** describe every value object in the JSON Schema System.Text.Json exports, for OpenAPI or a language model ([c25fea8](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/c25fea8e1a6cdf9c289da6d148a1d73fa8806437)), closes [#106](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/106) [#118](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/118) [#117](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/117) [#117](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/117) [#115](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/115) [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105) [#106](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/106) [#104](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/104) [#113](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/113) [#116](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/116)
* keep a rejected value out of every message, and out of a classified type's exception ([10cd350](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/10cd35026afc8ff6046eb296f4ef2d7c6607f475)), closes [#102](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/102)
* keep each known value's name and description in the schema, and name a closed set's values in OpenAPI ([55da02e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/55da02e9a1a2f71f6b85b07142a2c42ba5a22850)), closes [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105) [#113](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/113) [#118](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/118) [#116](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/116) [#117](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/117)
* **marten:** query value objects in Marten's LINQ, duplicated fields and compiled queries as their underlying values, with projected values read through their rules ([d09a5fe](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d09a5fec0bbc4d8f73128c1e27f2c453168122ea)), closes [#186](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/186) [#184](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/184)
* **messagepack:** send value objects through MessagePack and SignalR as their bare values, read through their rules ([6b0871e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6b0871e2aef87a4fc36257908e908a3fd5907d8f)), closes [#123](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/123)
* **modelcontextprotocol:** publish value objects' rules in MCP tool schemas, and answer a refused tool argument with its rule code ([09cb225](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/09cb22519f20804a76894eda915a2fd563b74818)), closes [csharp-sdk#1865](https://github.com/AdCodicem/csharp-sdk/issues/1865) [#116](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/116) [#125](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/125) [csharp-sdk#1865](https://github.com/AdCodicem/csharp-sdk/issues/1865) [#125](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/125) [csharp-sdk#1865](https://github.com/AdCodicem/csharp-sdk/issues/1865) [#132](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/132) [#126](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/126)
* **mongodb:** store value objects through MongoDB.Driver as their bare values, with .Value in LINQ and strict reads ([b74fc52](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b74fc52190f85f202eb3e6f22d920cef61400db4)), closes [#129](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/129) [#122](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/122)
* **newtonsoftjson:** resolve each value object to a contract carrying the converter, for code that hands Newtonsoft.Json a contract resolver alone ([ca64bce](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/ca64bceaeacd18a7267f4aba45a6b3fcbef374a9)), closes [#132](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/132) [#172](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/172)
* **njsonschema:** describe value objects as their underlying type, with their rules, in NSwag documents and Confluent Schema Registry schemas ([9a9f0c7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/9a9f0c72e862a5a0c7bf3e0e740ecff6debb5b75)), closes [#160](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/160) [#159](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/159)
* **orleans:** send value objects in Orleans grain calls as their underlying values, read through their rules, with the rule code back at the caller ([fbcc5d4](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/fbcc5d49c62a9bdcad634473b9d62651ab6ec220)), closes [#181](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/181)
* **protobufnet:** write value objects on the protobuf-net wire and in code-first gRPC services as their underlying values, read through their rules ([8eb2331](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8eb23312cc75e26100e4ca2902d0a60054b8d6a7)), closes [#161](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/161)
* register every generated JSON converter with its value object's descriptor ([e31d38e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e31d38ebc268f30340df4f694adfb1dba49f2252)), closes [#63](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/63)
* retire the Marten, Wolverine.Http, HotChocolate.Data, Orleans, CommandLine and CsvHelper packages ([165c9c0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/165c9c0fb171e54ad8b94f26a2c095e79d4d714e))
* **serilog:** log value objects through Serilog as the value they carry, a number as a number ([149a18e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/149a18eef14cce2094a5648f8922c3ccdff9f51f)), closes [#119](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/119)
* **swashbuckle:** document value objects under Swashbuckle 10 as their underlying type, with their rules ([3e6989d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3e6989d2074d91272510ba62036e1ab30c5aae5f)), closes [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105) [#118](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/118)
* **testing-data:** draw test values each value object accepts from the rules it declares ([2374850](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2374850d75876da3ad0277c14ab221defe5c0c8e)), closes [#124](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/124) [#121](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/121) [#124](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/124)
* **testing:** check in the contract kit that a type's known value details line up with its known values ([db5c750](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/db5c75070ac38b2124aba71617c6c306ab577828)), closes [#117](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/117)
* **wolverine-http:** bind value objects from route, query, header and form values in Wolverine.Http endpoints through their rules, with a coded 400 for a refused or missing one ([0bfef70](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0bfef70049f00581acf403c974dc6661f9abd1f4)), closes [#if](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/if) [#185](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/185)
* write no value its type rejects, and store a refused optional one as NULL in EF Core ([dd78e7b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/dd78e7bec687a1eb48b437c0596eccdad9f8fa58)), closes [#108](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/108) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97)

### Bug fixes

* **abstractions,generator,mongodb,efcore:** accept µ for μ, and the spellings a culture takes, under the collection validator and CHECK constraints ([8105d96](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8105d96843a76bc3063e94c3f8b7863793df4ed5))
* **abstractions:** call a value object only what the registry can describe ([e836dc8](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e836dc8624dbf4c273373f9c1426329090dd0030))
* **abstractions:** check the default Sum for overflow, as the generated one does ([cfa19f7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/cfa19f7499a4a233fa282f35ce8d04a75ff0fb88))
* **abstractions:** give no underlying type to what the registry does not call a value object ([4f1f43b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4f1f43b295f254323182996d39c8fada5bf435fc))
* **abstractions:** let TryResolve answer false for a type it cannot describe ([265bee9](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/265bee9fb754e759f1c0f3ead32bf47e592b4ce0))
* **abstractions:** publish the known values of an annotation as the type holds them ([96ced55](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/96ced55379374605efd19b6b7fe1741607496708))
* **abstractions:** reject a boxed null as required for a value-typed underlying ([50880da](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/50880dad12feed7ebd308ef38974ac36fd6e206f))
* **analyzers:** find the annotations when another assembly defines them too ([594ccd7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/594ccd79d3a0d71156a087a9d9c86ee526f91c9c))
* **analyzers:** report a rule an entity identifier writes without its interface as VO0011 ([8295a6e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8295a6e6df1740c64da22ae7e6881924a6935439))
* **analyzers:** report an uninitialized entity identifier as VO0010 ([51905df](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/51905dff9fc4a7ab095d730dd32357f3454f4fa3))
* **analyzers:** report VO0010 on the default value of a lambda's or a local function's parameter ([0c1b8c5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0c1b8c559871bf9adb1c48eeacfcbd1af585b7a0)), closes [#147](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/147)
* **analyzers:** report VO0010 only where default or new is written ([2c396f3](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2c396f399269c562856c6a51fd165a53def73efd)), closes [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma)
* **analyzers:** resolve the contracts VO0033 names as the compiler binds the generated code ([a036766](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/a036766eb312d0bdd63acbeafa731378024d75ea)), closes [#72](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/72) [#107](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/107)
* **aspnetcore:** bind an MVC value object from the header or body its attribute names, never from the query string ([5ab4bba](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/5ab4bbacb3d4d0eb9636fb69afe9d245b76d12d7))
* **aspnetcore:** bind white-space text as absent, as empty text already was ([17d5ced](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/17d5cede38546f8f26d2ec0b508fffe672258b3d))
* **aspnetcore:** decline a model type the value object binder cannot be closed over ([4ca63af](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4ca63af44442229b223201645c77d402825241e0))
* **aspnetcore:** keep the code of the first rule a member broke in errorCodes ([457d867](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/457d86732cbfd98a8be685876012c80aab92ca3d)), closes [#120](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/120) [#139](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/139)
* **aspnetcore:** read a body with the framework formatter's own JSON options, and replace that formatter alone ([fdc0287](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/fdc02877709ec2a26d221304c5a271af6e7fc39f)), closes [#114](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/114)
* **dapper:** parse and validate text read into a non-string value object ([43d0b2d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/43d0b2defd71c964a221aef8599868ce1d1d7ce3))
* **dapper:** read a Guid into a string value object as text, then validate it ([05e9516](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/05e9516910477dfff9d257068f9dffa3313d4833))
* **dapper:** read a SQL NULL as no value object, and refuse it for a required one ([a6f359b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/a6f359bf00789434d9cac60443df318619227f2f))
* **dapper:** read dates and times in the type the provider returns them ([0ef027b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0ef027bb33886dc48b17ba430afacf60ac9e5675))
* **dapper:** read which value objects are handled from Dapper's own table ([a00aa23](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/a00aa23a4c44944b6c566149fdd717e42f87ff8f))
* **dapper:** refuse a value the handler cannot convert with a DataException naming both types ([6f223a9](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6f223a90d509fd5ee5c15d72c0d7e3cb56e844ea))
* **dapper:** validate a value read into a string value object as another type ([41310cf](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/41310cf89ded09224e41cc55aa05bfe854b9bd3e))
* **deps:** Bump bunit, FsCheck and Swashbuckle.AspNetCore.SwaggerGen ([#239](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/239)) ([47b3806](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/47b3806d2c8d1f7a70eb603bb97afcb312a1cae7))
* **deps:** Bump LateApexEarlySpeed.Json.Schema and 6 others ([d5b2528](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d5b25287ce11649ad05ec4cb06c72ae320498c9f))
* **deps:** Bump the hotchocolate group to 16.6.9 ([3c45d16](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3c45d1688fd59e19b211dde6888ae5c223eee7d3))
* **deps:** take .NET 10.0.13, whose SignalR MessagePack hub protocol fixes GHSA-86xp-94pg-8r6r and GHSA-334f-vvp4-7g6p ([3b205ec](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3b205ec3d621306f9ace56182d085400d6c60785)), closes [#166](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/166) [#166](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/166) [#145](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/145) [#166](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/166) [#167](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/167)
* **deps:** take FluentValidation 12.2.0 ([d690c8e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d690c8ed16300429a15e5a66331b90a7c9b68f5f)), closes [#189](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/189)
* **deps:** take the xunit.v3 family at 4.0.2, with its runner at 4.0.1 ([746d17b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/746d17bcb0387ca532aca2e099ba5b08fca07be3)), closes [#189](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/189)
* **efcore:** let a compiled model build, for native AOT and for an optional value object ([856ca92](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/856ca92588e29bee6c09a78e0a2e561d1138367b)), closes [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#108](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/108)
* **fluentvalidation:** apply the options chained on MustParseAs and MustSatisfy ([3659c7f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3659c7f3c145ad0379a257cfe649b59c4f2c4922))
* **fluentvalidation:** let null pass MustParseAs and MustSatisfy, and leave it to NotEmpty ([aa96cdb](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/aa96cdbd7757e430834ea29803f295afedea8d84))
* **fluentvalidation:** name the registration a value object written by hand needs under native AOT ([f14e5f5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/f14e5f527c1a339df7d141c20efb37eeabce5768))
* **generator:** check a 128-bit bound against the range of its type ([39f7fbe](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/39f7fbefcb966af9e5ead68d6455aa1573c7d818))
* **generator:** compile a pattern before the named constants that go through it ([b4fff46](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b4fff46689d1ff080f29c5d019f9f332c2f98add))
* **generator:** construct a 128-bit bound from its halves instead of parsing it on every call ([9133739](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/9133739ecc4d81b2f8b165f0bcd14513727b930c))
* **generator:** escape a bound for C# where its message quotes it ([12ba20a](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/12ba20af27348378abc6dbde54a3614634814f1b))
* **generator:** escape a lone surrogate in every literal the generator writes ([1d42d55](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1d42d5515e7b528d281ebe6cf61aae8793df38fe))
* **generator:** escape a type or namespace named after a keyword wherever it is written ([7b9f98d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/7b9f98d281ecbeb83d774b986aebec8e58fd3542))
* **generator:** escape the Unicode line terminators in generated literals ([c6e81db](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/c6e81db2904be7c534993742b1374a299d5ea74d))
* **generator:** fold a multi-line known value description onto its summary line ([b14f8fd](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b14f8fd08e5dbeb2de9bfe5395f60785da534b51))
* **generator:** fold the characters XML cannot hold out of a known value's summary ([8c1907b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8c1907bc411c4cd13698cd38fe31bd81eb1e6d06))
* **generator:** follow JsonNumberHandling as the underlying number type does ([4091a9d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4091a9d215f41e2f09e8c8595c50998a95e00d44))
* **generator:** format dates and times in their round-trip form by default ([d2f7e61](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d2f7e61d320d36dee652b5eb2ff920b4749e293b))
* **generator:** format through a span hook without a copy of the value or a silent fallback ([0ed74ff](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0ed74ff6d653993853820eec43e3a72ac02a04bd))
* **generator:** give every value object a file name no other one can take ([c7b21b2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/c7b21b2d1e0079c1a08ac6dc734fd0bf0c4830e1))
* **generator:** keep a blank Pattern as the regular expression it is ([82c210a](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/82c210aa2cbc32a78ccf5a5cd516086f73cef985))
* **generator:** keep a span formatting hook's retry loop out of ToString ([cf53b33](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/cf53b33d4121e79837fd0754efd420a1f0f01344)), closes [#63](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/63)
* **generator:** leave AutoMapper no constructor that skips the rules, so an unmapped conversion throws ([4959852](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4959852ce6590bde58420c3888374a7d98cc418e)), closes [#99](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/99)
* **generator:** let a string formatter answer span formatting and interpolation ([3d4f788](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3d4f7885b974b11b82054f3ac11615bfcc6b5385))
* **generator:** let the string formatter answer span formatting when both hooks are declared ([40de15f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/40de15f4efad5fcb5b245d40219204022625c88d))
* **generator:** make Parse throw with the code of the rule the text broke ([19a08fb](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/19a08fb540c2f60a11266ac846948c97dc4ed316))
* **generator:** make ToString() go through the formatting hook with the default format ([282e5a5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/282e5a500d568a06d6ba5228afe50fa9891257a1))
* **generator:** name the type and the rule in a dictionary key the converter refuses ([2368b47](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2368b477f1c6d960a50f7e395637a553b755c005)), closes [#89](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/89)
* **generator:** name the type of every local the generated code declares ([30dc824](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/30dc82474afee29d4073db07856d1f8ae5afcf9c)), closes [#89](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/89)
* **generator:** parse a DateTime back with the kind its round-trip form names ([eb39477](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/eb39477f73eed1f1dbfa2d925e36f0ad8d2454f1))
* **generator:** publish a summary as the plain text it reads as ([90665fe](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/90665fe63eec2dba7745c9b23ab92c79d8b3ecc5))
* **generator:** read a floating-point known value constant in its round-trip form ([147a9ed](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/147a9eda4de2791db0fbc0f6d9d81130ddd1fcae))
* **generator:** read a named argument written twice instead of throwing on it ([cc26466](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/cc26466d61ecb201d44217c7a1d4df0e957770be)), closes [#136](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/136)
* **generator:** read date and time bounds without the build machine's time zone ([1bd5c2e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1bd5c2e66e72a036e3847e547549b6db4552f2c8))
* **generator:** read every bound and known value in one canonical form per type ([2daf1a2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2daf1a22f23544bf396f9b0fb424a86de881da44))
* **generator:** refuse a bound on a string, a Guid or a bool with VO0004 ([6b20847](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6b20847e2c3f72c1fcd3b347c70a0570e2a4789f))
* **generator:** refuse a floating-point bound that is not a finite number ([c850525](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/c85052520f4ce3a8c1010e173ed0c8f2fffa00f8))
* **generator:** refuse a group separator in a real number read in the invariant culture ([cb48607](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/cb4860758026426a014e2b750eb0802f1a50078f)), closes [#96](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/96)
* **generator:** refuse a known value given as a type or an enum member ([7ccd933](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/7ccd93394a8071f4c7dc81485aa273bf172449e7))
* **generator:** refuse a known value named after a keyword or a name the type already has ([bc112aa](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/bc112aa5d5ace03c82e4824158e6f26604ee2fbf))
* **generator:** refuse a known value named after an operator or a member the type declares, and say why ([60f3923](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/60f3923cfd446a8fde80c51420295d7f85c7a716))
* **generator:** refuse a known value named after the getter of a generated property ([1bdfb08](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1bdfb082fa1b9eb3d932ef2cbf216b1dd19ecbe5))
* **generator:** refuse a known value whose getter takes the name of a member the type declares ([be9566b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/be9566b73eefefaf2ee117a44bd1fe889fb3c9da))
* **generator:** refuse a real bound too small for its type, and write every real so it reads back ([2f14ab5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2f14ab52ab635ca82c3ff86844abbcd38cf74247))
* **generator:** refuse a ref struct value object with VO0002 ([8ee35f1](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8ee35f19fc29dac7977068419f4294b922e19fdb))
* **generator:** refuse with VO0019 a value object the generated code cannot reach or name ([b8a557d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b8a557dcc0ff02f269f140f30e43d1908bcddaeb))
* **generator:** reject NaN at a declared floating-point bound ([f503fa0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/f503fa0476a4049f839f04063d49553fcd23d79f))
* **generator:** report a known value given as an array instead of failing ([224af2e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/224af2eee3babbfd177d6d1c88bc8b17adfa2ed6))
* **generator:** report a value object that is generic or nested in a generic type or an interface ([e773e99](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e773e9992864d8099a91f4b4a2731592e7ba328c))
* **generator:** report an integer bound or known value outside its type's range ([7ffd4e6](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/7ffd4e6472a82d6eb481b86d906e3d7ea278cd7b))
* **generator:** report an option set to a value its enum does not define ([8ab9250](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8ab925024cbcaa608c6e7a96f308dfbe486aff06))
* **generator:** write a dictionary key as the underlying value, not through a formatting hook ([ba7ff0f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/ba7ff0f9244c7f546a7bc7f703f4f927d087fa0f))
* **identifiers:** hold EntityIdFormat.Example to the prefix rules Create holds to ([762dfdd](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/762dfdd94bbcfc3ffd16da3f806b18c311008400))
* **identifiers:** let the identifier convention validate what it reads ([aeb81d4](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/aeb81d4f81604325f1c869473f399bbd1639fd34))
* **identifiers:** refuse a JSON null for a non-nullable AnyEntityId ([5abc622](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/5abc6228addbe7da427713dd799fa9dbd4d8b1a9))
* **identifiers:** refuse null in AnyEntityId's type converter, as a generated identifier's does ([80f389d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/80f389de718c7309a53d280cbf87dd27f9a76621))
* **identifiers:** report a bad AnyEntityId dictionary key as a JsonException ([22cdbc4](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/22cdbc4bc927b8d70c3080cbaf1e206746b66f49))
* **identifiers:** take an AnyEntityId's text from the identifier's value, not from ToString() ([541032b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/541032b5c1bd2470341536163cd4d809fa5f72e4))
* **json:** claim only what the converter factory can build, so an optional value object serializes ([4c55c6e](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4c55c6e0f95825da48101cfd35845426d06c0eaf))
* **json:** read a hand-written value object's dictionary key as its underlying value ([d56580d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d56580d07023a0e56006a7a667ebdceddd8be0fc))
* **json:** refuse a value object nothing registered under native AOT, naming the registration it needs ([7b66398](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/7b66398384c33e57ea34aee90d93fa447926c345))
* **json:** serialize a value object written by hand under native AOT, closing its converter through the descriptor ([e8db6e1](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e8db6e14e1f03ee89b11f7ca7fffa342db71cb81)), closes [#138](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/138)
* **json:** write a hand-written value object's dictionary key as its underlying value ([18526f0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/18526f0d1fce47028411644c2975c1dd7157200c))
* leave a 128-bit value object to a converter of the application's own ([3b3d988](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3b3d9880cf2918966fe8d14b1cd9c235571df383)), closes [#79](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/79)
* **newtonsoft:** read numbers and booleans as System.Text.Json reads them ([4155885](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4155885c57d91962c10ab10a7d9f63b07234a29e))
* **newtonsoft:** read text as text, and refuse a date Newtonsoft.Json already rebuilt ([1b569b5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1b569b5455a77b42274f7a3f63718de4d94e0cd6))
* **newtonsoft:** write every value object as System.Text.Json writes it ([8c4a6a2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8c4a6a263122fc051122ac9dd448eb8b32642864))
* **openapi:** describe a value object as a parameter and as the element of a collection ([7a513c1](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/7a513c10dfeca2d26410fecefd3e9e86cf4401a9)), closes [#109](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/109) [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105)
* **openapi:** document a duration in the constant form it is written in, not as an ISO 8601 duration ([22abbae](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/22abbae91782e8f16c5db320346b809c5aa49aae)), closes [#106](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/106)
* **openapi:** document a hand-written value object nothing registered ([b36b71c](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b36b71c61ce71a01fed263ec8c2d16924df7efc0)), closes [#75](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/75)
* **openapi:** let a nullable closed set's enum hold null ([d72b3aa](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d72b3aad20e912aa2a81511a2f3c3ccd73eb60a1)), closes [#118](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/118)
* **openapi:** list a known value that is not of the underlying type as its text ([72a710c](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/72a710c1f50c7aae957c27d0762f13701ff32a6e))
* **openapi:** list the values of a closed set as the type writes them in JSON ([e101a75](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e101a75abcd37bbbd6eab27076dad8a7a18da227))
* **openapi:** publish a bound written with an exponent, as the number the type enforces ([715d9a0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/715d9a0661e0b7f71126abb40bf3a8f70a1777c3))
* **openapi:** publish a value object's example as the type writes it ([dbab659](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/dbab6592b4bf4d35a81cd5a040d8caf45bfebb48))
* **openapi:** publish no inert bound on a value object written as a string ([650dd29](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/650dd294627321b395ef3ed2583275ce87aff2d3)), closes [#81](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/81)
* publish times, numeric keys and characters as they are written, and leave a closed set's values to the enum ([5d67fa0](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/5d67fa07994c5ce86c6790d8a6b0a54ed521e631)), closes [#106](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/106) [#116](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/116)
* publish with native AOT in CI, and stop MustParseAs and the EF Core comparers warning there ([1317cb9](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1317cb9f8cdb25125aafbb6afa542e90cc966143)), closes [#108](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/108) [#113](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/113) [#116](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/116) [#120](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/120) [#123](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/123) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#107](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/107) [#pragma](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/pragma) [#115](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/115)
* read the declared schema in the contract kit's declaration checks, and name no value after details that cannot line up ([7d91e42](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/7d91e427f3404575c2aa90a4e798d0bd21cfafb5)), closes [#117](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/117) [#116](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/116)
* **sample:** report one code per member when a validated payload fails twice ([57bb491](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/57bb4910489c66d41337a41263deb02388f50fbb))
* **swashbuckle:** answer the document request under Swashbuckle 10.3.0, the version the package now depends on ([deb94c6](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/deb94c6a0aea084de7c179ece4d2475e3ce93fcf)), closes [#156](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/156)
* **testing:** let the contract kit reject values plain JSON cannot write ([1a1c4fa](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1a1c4fa75bc3c0980d9d65b282321fe50d3dfbdf))
* **testing:** report the length check skipped for a type that did not register itself ([8d5216d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8d5216d59c5a691f735974dd236914848a0dba42))

### Packaging

* **pack:** bound every dependency on our own packages ([73e8e62](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/73e8e62d7fc857e301ce065e6326961737d592a2))
* **pack:** use the ValueObjects tile as the package icon ([6df0cb3](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/6df0cb38961e1d0ecd4f08d8860c7f5c086cc5a6))
* **pack:** version every package from the v tags again, each asking for the others at its own version or later ([8dbe7b7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8dbe7b7bc09d4da2e4e75f9e6624f142528010b0))

### Documentation

* **abstractions:** say that RegisterGenericDefinition's checks hold under native AOT ([90349ea](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/90349ea0f55511bf0b3969fae024079309a3522e))
* **adr:** accept ADRs 0012 and 0013 ([f44396d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/f44396df829910a54041a124ba7fade3e4ae1d03))
* **adr:** declare known values and examples as typed members ([ffd20bd](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/ffd20bd07a38b271dd32a2a7c96b54c633865192))
* **adr:** propose a targeted pull-request CI, with the heavy jobs before a release ([d87dd55](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d87dd5531b3ded1b710902c5e10f1e88cec61cc7))
* **adr:** propose versioning the packages in two trains, independently of the frameworks ([9bf11ae](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/9bf11aea9cf4236034720956ba221d71415ff6c5))
* **adr:** record how previews are published, numbered and attested ([0e714f7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0e714f753ffc64701c97660b3b48970ec8df8d84))
* **adr:** record one version for every package, independent of .NET ([82abc80](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/82abc80e5f4efbeb2833bb114039af1a0b30ecf3))
* **adr:** retire six satellites, with what each cost (ADR 0015) ([35dfe59](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/35dfe595bb9a35a9b98bfcdfdca9242b888ab111))
* **adr:** return to one version for every package, withdrawing the release trains (ADR 0014) ([964fd78](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/964fd78764a2a07d5f0dbbb56f497bd8bda19772))
* **adr:** target the pull-request CI by package family, and run the contract kit's checks as one theory ([be7fc93](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/be7fc93764770f51932669f97cc9104b42b17137))
* describe one version for every package again, with no satellites train or changelog ([b76338f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b76338f0e72eac0434e646facf7f5049116625ac))
* describe the targeted pull-request CI and record phase A as built in ADR 0013 ([6368049](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/63680496df689f6e9313c7a8539a0f7f3bec4a08))
* describe the thirty-two packages, without the six ADR 0015 retires ([e2d84de](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/e2d84de72174388674a2d4363e4b88a996f43c74))
* describe the two release trains to consumers ([44598fc](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/44598fca10ab4a789c8c3ba71862173346aa12b9))
* describe the unit suite as a test project per CI family ([2fd91da](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2fd91dac8b7c0f1cb6741b9ce40cd966ee1aba19))
* describe the unit suite as it now is, and the commands that run one suite ([fa08361](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/fa0836151ee5a67ebd3c1ca16fca77f6f9a78d7c))
* describe weekly previews, the compat island and the versioning policy ([5d141ad](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/5d141ad080f59b7130541e36c3564c3cd6dad90c))
* **generator:** say how the generated converter meets a JSON null ([a413362](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/a413362cc61f20bcafdbfc841ffc8dd9712f21ce))
* give recipes for messaging, logging, Azure, object mappers, files and HTTP clients ([090c3d5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/090c3d51c3d51f6881853e37aa5ba4bc56ccf1f8)), closes [#103](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/103) [#99](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/99) [#100](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/100) [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105) [#106](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/106) [#98](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/98) [#109](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/109) [#125](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/125) [#111](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/111)
* give the one form each type writes a bound or a known value in ([3b33564](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3b335645f63af3986336c25064b0b16008172a64))
* **json:** say what the general-purpose converter asks of options when it is called directly ([c1ecf7f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/c1ecf7fb551b62f09364d203c8574a8faeb0fe8c))
* link the date and time rule of a bound to its reason ([b8d80c6](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b8d80c6d0a5cc0147cd6e33603c698c1903e3dc8))
* list the four required checks, and say that native AOT (Marten) and compat (.NET 11) never become one ([16a3711](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/16a37117808191c0fb9e823d529bfc9cc7e8902a))
* list where a value object no rule has checked can come from at run time ([19226aa](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/19226aab8c758bfc37f060b1dcfc42b7e7b3c49f)), closes [#100](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/100) [#99](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/99) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#98](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/98) [#109](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/109) [#110](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/110)
* move the changelog's title above its releases ([63f11e7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/63f11e750d80059a007b4a619f81f5fec5dae2a6))
* name no outcome per case for a mix of our versions ([b7c9921](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b7c99213a90c4d77311006107d8f76e4eea75659))
* name the native AOT job among the checks a pull request must pass ([037bc58](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/037bc58e090c2c05d22453e9980e2ec17c01494b)), closes [#115](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/115) [#115](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/115)
* name the tag that breaks a tag-derived pack, and the tags each train's MinVer reads ([edfb0ed](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/edfb0ed2f5b97f9a3b822f3779ea8a05aa0344de))
* name VO0020 beside each option it guards ([93a68d9](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/93a68d92d882ddd32acb21300c7eb65b6a849ce0))
* place the satellites tag by hand when a release fails after tagging ([9391a15](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/9391a15f70308decdd0b49a93a617a218d53c420))
* point the RegisterGenericDefinition note at the native AOT guard [#179](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/179) adds ([3d1160f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3d1160f27ba678ed3ee8fcc49515a45aeb27f092))
* **readme:** bring four benchmark claims back in line with a rerun ([78961a7](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/78961a7d77446878b0356897f80b198636a8c1a6)), closes [#63](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/63)
* **readme:** fill each package's README with its id and description ([dfbf197](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/dfbf19781914e27c5d730bd63f73b1acf0e74275))
* **readme:** give the form a bound is written in, and what VO0002, VO0004, VO0013 and VO0019 report ([505ea5a](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/505ea5a2c3d6008aca9800c88a44a75662975161))
* **readme:** give the packages a README of their own ([8b33dd1](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8b33dd14b38211723c6f8991cfe37550983aca77))
* **readme:** give the unit suite's commands per package family ([d4c93d4](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/d4c93d41e1abbcd732cf52f0bd19471d450f6150))
* **readme:** list the frameworks each package supports ([2a5554b](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/2a5554b3d40362af3134ebbc8b986e8508cbf741))
* **readme:** list VO0019 and VO0020, and say which formatting hook answers ([3f72149](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3f72149e207bb8a5382edf8fff94ff427b697b72))
* **readme:** open with the ValueObjects banner ([4c86abc](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4c86abcd0e7c4e544ac81bd683cae8f7a9071ec4))
* **readme:** run one test suite with --project ([4fe1a29](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4fe1a298e83ad878fbd6d7998c8cc17594d065a2))
* **readme:** say that compat (.NET 11) runs on main after each push and gates every stable release ([66ad8a8](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/66ad8a83805c5c6bdabd1999e46852e5b9521fb0))
* **readme:** say that the MongoDB packages are tested on MongoDB 7.0 while MongoDB 8 cannot start on CI ([0bf9485](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/0bf9485a20133eb4651f75938c25c71efa7ecf4b))
* **readme:** say what a minimal API answers to a rejected value, and correct what probes disproved ([4b41b56](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/4b41b56824c291ea9963c52dd565efdbd49dd11d)), closes [#107](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/107) [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105) [#103](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/103) [#97](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/97) [#107](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/107) [#105](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/105) [#103](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/103) [#109](https://github.com/AdCodicem/AdCodicem.ValueObjects/issues/109)
* **readme:** say what the integrations do with a rejected value ([891fbe6](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/891fbe6d8df5bbf457d14d8bda4aa112ac80b1e3))
* **readme:** state that a 0.x minor may break or remove public API ([53ccd8a](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/53ccd8aa4fce8837c50f4eb1b7a179cfc919fa88))
* record phase 1a of the release trains ([448e029](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/448e02990f416861b15257ca8880d81d4d24b988))
* record phase 1b of the release trains ([8dfb04d](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8dfb04d85bf63a1fdf978037bce394d01e7fb8e2))
* require the JSON package where value objects are declared, for a serializer context ([8c50fb2](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/8c50fb22fe420a5a9989b2722f09082d1ed49edd))
* run the suites with --project in the pull request checklist ([a96d95f](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/a96d95f2eaa45e71972734338706dc190ff24082))
* **sample:** return the country an account's IBAN names, through Iban.CountryCode ([b8b6634](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/b8b66346a5dfdafd2fab79212aabc5fa5d1dfe18))
* say every type-driven integration closes over the visitor, and where Dapper stops under native AOT ([29edbc8](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/29edbc8b000b69562adfc40b427ae8e7ff328b60))
* say in the API reference which names a known value takes and where VO0010 is reported ([3f0b014](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3f0b0144a921520fb9d9b9c0ce08282fe686a188))
* say that a known value cannot take the name of a property's getter ([44b2746](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/44b274612c398a70c8eb5b4e3be6a8cba466ddfc))
* say that a pull request of more than 100 commits cannot be rebased ([cb570b5](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/cb570b521eebe619d0fa9e606e281115a352abb0))
* say that a unit-suite folder may serve several families, and what the trait guard follows ([21649bb](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/21649bb674f45b73bb8f288b97e3ddc159999d0e))
* say that build and test, workflows and conventional commits are the required checks, native AOT blocking through build and test ([75fffc1](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/75fffc1c89ff3418089cc8a893b50a8c74d1e964))
* say that compat (.NET 11) and native AOT (Marten) never become required checks ([3d5a837](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/3d5a837c8ce84ac8cf1018c7c3c76d56695f3635))
* say that compat (.NET 11) gates every stable release in the support table's footnote on the site ([1e1e805](https://github.com/AdCodicem/AdCodicem.ValueObjects/commit/1e1e80592682a990e44f74d3ca571c7de5992e46))
* say that Dapper leaves a required member uninitialized for a NULL column ([a6c647d](https…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant