1 For a given property of __**A**__, the patching rules are:
3 [%autowidth.stretch, cols="d,a,a"]
5 |__**A**__'s property type |<em>A</em>'s property exists in <em>B</em> |<em>A</em>'s property doesn't exist in <em>B</em>
7 |Null, boolean, integer, and string
8 |Replace __**B**__'s property with __**A**__'s property.
9 |Keep __**A**__'s property.
13 __**B**__'s property is also a sequence::
14 Append the items of __**A**__'s property to __**B**__'s
17 A structure field type object's
18 xref:struct-ft-obj.adoc#members-prop[`members` property] is an
19 exception: __**A**__'s property is considered to be an _ordered
20 mapping_, therefore apply the mapping patching rules.
22 __**B**__'s property is _not_ a sequence::
23 Replace __**B**__'s property with __**A**__'s property.
24 |Keep __**A**__'s property.
28 __**B**__'s property is also a mapping::
29 Patch __**A**__'s property over __**B**__'s property according to
32 __**B**__'s property is _not_ a mapping::
33 Replace __**B**__'s property with __**A**__'s property.
34 |Keep __**A**__'s property.
37 NOTE: When __**A**__'s property replaces __**B**__'s property and the
38 value of __**A**__'s property is null, this effectively "`resets`" the
39 property to its default value.