Create, update, or delete areas (categories / groups / colour-coded labels) and activity types (tags / fill patterns) — one or many in a single call. Pass `areas` and/or `activityTypes`, each an array of ops: `{op:"create", name, color?}` / `{op:"update", id, name?, color?}` / `{op:"delete", id, reassignTo?}` for areas; `pattern` instead of `color` for activity types (valid patterns: solid, hatch-r, hatch-l, cross, horizontal, vertical, grid, dots, waves, chevron). Colours are 6-digit hex; omit to auto-pick. Editing a shared global default forks it into your own copy, so the returned id may differ — each result reports the effective id (and `forkedFrom`). Delete only your own (non-global) entries; if events still use one, pass `reassignTo` (another id) to move them first. Names are deduplicated case- and whitespace-insensitively: creating one that matches an existing area/type is rejected (reuse the existing id instead). A delete returns an `undoToken`. Atomic by default: if any op is invalid nothing is written; pass `partial: true` for best-effort. Create areas/types here first, then reference the returned ids in write_events.