CREATE TABLE IF NOT EXISTS spells (
  id INTEGER GENERATED ALWAYS AS IDENTITY,
  name TEXT NOT NULL,
  school TEXT NOT NULL,
  level INTEGER NOT NULL,
  ritual BOOLEAN DEFAULT FALSE,
  casting_time TEXT NOT NULL,
  range TEXT NOT NULL,
  components_verbal BOOLEAN DEFAULT FALSE,
  components_somatic BOOLEAN DEFAULT FALSE,
  components_material BOOLEAN DEFAULT FALSE,
  components_materials_needed TEXT,
  duration TEXT NOT NULL,
  classes TEXT[] NOT NULL,
  sources TEXT[] NOT NULL,
  tags TEXT[],
  description TEXT NOT NULL
);