Complete integer schema version consumer readiness
This commit is contained in:
@@ -81,6 +81,21 @@ exponent numbers, booleans, mappings, and sequences produce `version.type`, and
|
||||
checker does not run. ConfigKit does not interpret the text or impose a universal
|
||||
version path.
|
||||
|
||||
Integer versions use the strict grammar `^-?(0|[1-9][0-9]*)$`. Their spelling is
|
||||
preserved exactly, including `-0`, and application policy decides which identifiers
|
||||
are supported. A numeric version has no built-in `int64` range limit. Existing parser
|
||||
policy still rejects leading zeroes, leading plus signs, hexadecimal notation, and
|
||||
other non-JSON scalar forms before version checking.
|
||||
|
||||
At exactly the configured semantic path, accepted integer input can decode into a
|
||||
plain Go string or named string without a text codec, including pointer wrappers.
|
||||
This is a load-local exception: siblings and unrelated fields, dynamic values,
|
||||
integer and float destinations, durations, `Secret`, and text codecs retain ordinary
|
||||
strict decoding. The retained source and history stay numeric while typed projection
|
||||
and effective YAML contain the resulting string; explanation records this through
|
||||
the normal decoding reconciliation event. Fragment, profile, and CLI ownership
|
||||
protections apply before this conversion.
|
||||
|
||||
The checker reports safe, value-free errors and warnings through `Validation.Error`
|
||||
and `Validation.Warning`; ConfigKit resolves primary and related paths to exact or
|
||||
nearest input locations. Reported errors fail loading. If the checker returns an
|
||||
|
||||
Reference in New Issue
Block a user