-- A dialogue step is meaningless without its speaker. Cascade deletes from npcs
-- so that removing an NPC (or dropping a whole mystery, which cascades to its
-- cast) also removes the steps that reference it, rather than failing on the
-- non-cascading foreign key.
ALTER TABLE osint.dialogue_steps DROP CONSTRAINT dialogue_steps_npc_id_fkey;
ALTER TABLE osint.dialogue_steps ADD CONSTRAINT dialogue_steps_npc_id_fkey
  FOREIGN KEY (npc_id) REFERENCES osint.npcs(id) ON DELETE CASCADE;
