OptionalProviderDeclares that this slot is provider-internal scaffolding: the provider doing the write is its only consumer, and the rows are transient input to that provider's own assembly step rather than data served to arbitrary callers.
Such slots are exempt from the defensive deep-freeze. The freeze exists to stop consumers from corrupting shared rows they were handed; it buys nothing for rows with a single owner, and it would break owners that legitimately use those rows as scratch space.
The motivating case is metadata bootstrap: GetDatasetByName caches each dataset item
through this cache, and PostProcessEntityMetadata then hydrates a graph by sorting the
row array in place and attaching child collections onto each entity/field row. Freezing
those rows makes GetAllMetadata() throw and the process boots with no metadata at all.
Do not set this to avoid fixing a mutation. If the rows reach anything other than
the writing provider, the correct fix is for the mutator to copy first. Defaults to
false — caller-facing results are always frozen.
Per-write options for the cache write methods.