Turn { 'style.color': '#f00', 'text.value': 'Hi', zIndex: 2 } into the
partial a controller's update accepts. Bags come back whole
(style: { ...d.style, color }), so it does not matter whether the
controller merges or replaces them. A value of undefined removes the key,
which is how a host offers "reset to default". The intervals pair comes
back whole as well, as the range to replace the drawing's; with neither end
left it is {}, which a controller takes as no range, every interval.
With a schema, each value is coerced to its field's kind and any path the
schema does not declare is dropped: a host can hand over its form state as
is. Without one, values are written verbatim. Paths the model has no home
for are ignored either way.
Turn
{ 'style.color': '#f00', 'text.value': 'Hi', zIndex: 2 }into the partial a controller'supdateaccepts. Bags come back whole (style: { ...d.style, color }), so it does not matter whether the controller merges or replaces them. A value ofundefinedremoves the key, which is how a host offers "reset to default". Theintervalspair comes back whole as well, as the range to replace the drawing's; with neither end left it is{}, which a controller takes as no range, every interval.With a
schema, each value is coerced to its field's kind and any path the schema does not declare is dropped: a host can hand over its form state as is. Without one, values are written verbatim. Paths the model has no home for are ignored either way.