Update session
Partial update of mutable session fields. Accepts title, synopsis, project_context, npc_ids, encounter_ids. Each field is independently optional; an omitted field is left unchanged. session_number is set once at create and is not patchable.
Path Parameters
Body
PATCH /v1/projects/{project_id}/sessions/{session_id}
Partial update of mutable session fields. Each field is independently
optional; None means "leave unchanged" (not "set to NULL").
session_number is intentionally absent - it is set once at create.
title cannot be cleared (NOT NULL since migration 094); when
present it must be non-empty.
Response
Session updated
Session resource representation.
Carries the full mutable field set so the create response and the
detail GET both round-trip what the edit form needs. project_context
/ npc_ids / encounter_ids were added 2026-05-14 - before that the
response omitted them and the dashboard edit form had nothing to read.
Human-readable slug for the URL (/projects/<slug>/sessions/<external_id>). Derived from title (or session-<N> fallback) at create time and immutable. May be null on legacy rows pre-migration 102.