json_schemer
json_schemer copied to clipboard
Follow refs when finding default property values
This resolves any ref_schema keywords ($ref, $dynamicRef, $recursiveRef) when looking for default keywords for insert_property_defaults. It follows the keyword order defined in the vocabulary ($ref first, then $dynamicRef/$recursiveRef depending on the meta schema) and searches depth-first (ie, follows a $ref chain until a leaf schema before moving on to a sibling $dynamicRef). The first default keyword found is used, meaning a $ref default can be overwritten by the including schema, eg:
{
"properties": {
"example": {
"$ref": "#/$defs/ref",
"default": "override!"
}
},
"$defs": {
"ref": {
"default": "overridden"
}
}
}
Closes: https://github.com/davishmcclurg/json_schemer/issues/173