Partial update of a persona — only supplied fields change. behavior_config, when supplied, fully replaces the existing config (no deep merge).
Explicit null is rejected for non-nullable columns (name, body, is_active, traits, behavior_config) — omit the field instead. description is the only nullable column, so it accepts null as a clear-the-column signal. This mirrors the voice-config update API and prevents client bugs ("forgot to fill in name") from looking like successful no-ops.
Advanced simulation knobs attached to a persona. Stored as JSONB on personas.behavior_config; per-run overrides will reuse this shape on SimulationRun (ENG-474).
Successful Response