public class CustomerId : ValueObject
          {
          public override Validation Validate() => Value > 0
          ? Validation.Ok
          : Validation.Invalid("Customer IDs cannot be zero or negative.");
          }
          

This ensures the constraint of the CustomerId being positive is enforced and documented in one place. #

The use of ValueObject also enforces immutability and prevents accidental swapping of parameters. #


          ## Top-Level Directory Explanations
          
          <a class='local-link directory-link' data-ref="samples/" href="#samples/">samples/</a> - This directory contains example projects demonstrating the usage of StringlyTyped library.
          
          <a class='local-link directory-link' data-ref="src/" href="#src/">src/</a> - This directory contains the source code of the StringlyTyped library.
          
          <a class='local-link directory-link' data-ref="tests/" href="#tests/">tests/</a> - This directory contains unit tests for the StringlyTyped library. It includes benchmark tests and small tests.