{"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"forEachSubschema > visits immediate children across all keyword shapes"},"to":{"k":"unit","s":"data-model-schema","n":"forEachSubschema > visits immediate children across all keyword shapes"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"forEachSubschema > carries key for record edges and index for array edges"},"to":{"k":"unit","s":"data-model-schema","n":"forEachSubschema > carries key for record edges and index for array edges"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"forEachSubschema > skips $defs unless includeDefs is set"},"to":{"k":"unit","s":"data-model-schema","n":"forEachSubschema > skips $defs unless includeDefs is set"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"forEachSubschema > visits nothing for boolean or empty schemas"},"to":{"k":"unit","s":"data-model-schema","n":"forEachSubschema > visits nothing for boolean or empty schemas"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"forEachSubschema > stops early and reports it when a visit returns true"},"to":{"k":"unit","s":"data-model-schema","n":"forEachSubschema > stops early and reports it when a visit returns true"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"forEachSubschema > covers every documented keyword constant"},"to":{"k":"unit","s":"data-model-schema","n":"forEachSubschema > covers every documented keyword constant"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"subschemaEdges (generator form) > yields the same edges as forEachSubschema, usable via for-of"},"to":{"k":"unit","s":"data-model-schema","n":"subschemaEdges (generator form) > yields the same edges as forEachSubschema, usable via for-of"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"subschemaEdges (generator form) > honors includeDefs / includeUnused like the callback"},"to":{"k":"unit","s":"data-model-schema","n":"subschemaEdges (generator form) > honors includeDefs / includeUnused like the callback"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"subschemaEdges (generator form) > supports early break"},"to":{"k":"unit","s":"data-model-schema","n":"subschemaEdges (generator form) > supports early break"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"mapSubschemas > maps definitions and unused keywords when both tiers are enabled"},"to":{"k":"unit","s":"data-model-schema","n":"mapSubschemas > maps definitions and unused keywords when both tiers are enabled"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > visits the root then descends depth-first"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > visits the root then descends depth-first"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > builds keyword-segmented structural paths through arrays and applicators"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > builds keyword-segmented structural paths through arrays and applicators"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > descends into prefixItems (the historically-skipped keyword)"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > descends into prefixItems (the historically-skipped keyword)"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > skip prunes a subtree but continues siblings"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > skip prunes a subtree but continues siblings"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > stop aborts the whole walk"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > stop aborts the whole walk"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > exposes parent and edge discriminants"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > exposes parent and edge discriminants"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > skips boolean subschemas by default, visits them with visitBooleans"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > skips boolean subschemas by default, visits them with visitBooleans"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > visits a subschema shared by two sibling positions at both"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > visits a subschema shared by two sibling positions at both"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"walkSchema > terminates on a self-referential (cyclic) object graph"},"to":{"k":"unit","s":"data-model-schema","n":"walkSchema > terminates on a self-referential (cyclic) object graph"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"anySchema / findSchema > anySchema short-circuits and matches nested nodes"},"to":{"k":"unit","s":"data-model-schema","n":"anySchema / findSchema > anySchema short-circuits and matches nested nodes"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"anySchema / findSchema > findSchema returns the matching node with its path"},"to":{"k":"unit","s":"data-model-schema","n":"anySchema / findSchema > findSchema returns the matching node with its path"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"deliberately-excluded keywords > does not descend patternProperties / contentSchema / if-then-else / etc."},"to":{"k":"unit","s":"data-model-schema","n":"deliberately-excluded keywords > does not descend patternProperties / contentSchema / if-then-else / etc."}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"deliberately-excluded keywords > ignores `definitions` even when includeDefs is set (only `$defs`)"},"to":{"k":"unit","s":"data-model-schema","n":"deliberately-excluded keywords > ignores `definitions` even when includeDefs is set (only `$defs`)"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"deliberately-excluded keywords > visits the excluded keywords when includeUnused is set"},"to":{"k":"unit","s":"data-model-schema","n":"deliberately-excluded keywords > visits the excluded keywords when includeUnused is set"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > isSubschema accepts booleans and objects and rejects the rest"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > isSubschema accepts booleans and objects and rejects the rest"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > ignores an array where a subschema belongs, at every shape"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > ignores an array where a subschema belongs, at every shape"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > still reads a record keyword written as an array, by index"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > still reads a record keyword written as an array, by index"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > visits no edge for one under any keyword, in any tier"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > visits no edge for one under any keyword, in any tier"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > visits the well-formed siblings of one, at their own key and index"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > visits the well-formed siblings of one, at their own key and index"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > yields the same edges from the generator form"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > yields the same edges from the generator form"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > leaves one in place when mapping, and maps around it"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > leaves one in place when mapping, and maps around it"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > does not descend into one, with or without visitBooleans"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > does not descend into one, with or without visitBooleans"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > walks nothing for a root that is one"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > walks nothing for a root that is one"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > names the keyword, the value, and the schema holding it"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > names the keyword, the value, and the schema holding it"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"values that are not schemas > names the entry of a record keyword by key, and of an array by index"},"to":{"k":"unit","s":"data-model-schema","n":"values that are not schemas > names the entry of a record keyword by key, and of an array by index"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"resolveRef option > does not follow $ref by default (target label unseen)"},"to":{"k":"unit","s":"data-model-schema","n":"resolveRef option > does not follow $ref by default (target label unseen)"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"resolveRef option > follows $ref when a resolver is supplied"},"to":{"k":"unit","s":"data-model-schema","n":"resolveRef option > follows $ref when a resolver is supplied"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"resolveRef option > marks resolved nodes viaRef, at the ref site's path"},"to":{"k":"unit","s":"data-model-schema","n":"resolveRef option > marks resolved nodes viaRef, at the ref site's path"}} {"date":"2026-09-12","from":{"k":"unit","s":"runner","n":"resolveRef option > terminates on a self-referential $ref chain"},"to":{"k":"unit","s":"data-model-schema","n":"resolveRef option > terminates on a self-referential $ref chain"}}