Preserve inherited presence and validation

This commit is contained in:
2026-10-03 17:55:58 +00:00
parent d7ea0fd32d
commit 01c08ec8e4
3 changed files with 210 additions and 0 deletions

View File

@@ -121,6 +121,14 @@ sequence, so a step cannot extend another step. Replacing `steps` or a validator
chain supplies the complete replacement sequence; entries are not appended or
merged by identifier.
Inherited values count as explicit input for Notarius's existing
presence-sensitive rules: zero, false, and empty-list overrides stay explicit
instead of restoring a default. Null also replaces the inherited value, but
each field's ordinary type and validation rules still apply; null is not
universally valid. Omitting `extends` preserves a relationship supplied by a
lower-priority source, while `extends: null` cancels that relationship. It
does not independently clear other inherited fields.
`extends` is now a reserved key in every input mapping, including dynamic
module options and named maps. Existing ordinary data or entry names using that
key must be renamed along with any consumer that reads them. Configuration

View File

@@ -168,6 +168,8 @@ syntax section. Presence-sensitive cases belong to Stage 3.
## Stage 3 — Preserve Presence And Existing Domain Validation
> Completion: complete.
Goal: ensure inherited input remains explicit through Notarius normalization,
defaulting, and validator-chain conversion.