Adds @classytic/repo-core/update subpath (Update IR — the write-side
counterpart to the filter IR). Types: UpdateSpec, UpdateInput. Builders:
update({ set, unset, setOnInsert, inc }), setFields, unsetFields,
incFields, setOnInsertFields, combineUpdates. Guards: isUpdateSpec,
isUpdatePipeline. Compilers: compileUpdateSpecToMongo emits Mongo
$-operator records; compileUpdateSpecToSql emits a SqlUpdatePlan with
data / unset / inc / insertDefaults buckets.
StandardRepo.findOneAndUpdate and updateMany widen their update/data
parameter to UpdateInput (UpdateSpec | Record | Record[]). Existing
calls pass through unchanged; the widening is additive for consumers.
Implementer-side break — third-party kits declaring Record-only must
widen to satisfy the contract under strict contravariance.
StandardRepo.updateMany and deleteMany promoted from optional to
required. Every supported kit already ships both (mongokit 3.11+,
sqlitekit 0.1.1+), and arc's RepositoryLike preserves optionality via
Partial<StandardRepo> for feature detection. bulkWrite stays optional
(mongoose-shaped, no clean SQL analogue).
UpdateInput naming collision with mongokit documented in CHANGELOG —
mongokit 3.11 renames its local UpdateInput<TDoc> to UpdatePatch<TDoc>
and keeps UpdateInput as a @deprecated alias for one release.
230 tests pass (baseline 193 + 37 new for update/).