CREATE TABLE IF NOT EXISTS races ( id INTEGER GENERATED ALWAYS AS IDENTITY, name TEXT NOT NULL, size TEXT NOT NULL, source TEXT NOT NULL, data JSON NOT NULL ); CREATE TABLE IF NOT EXISTS classes ( id INTEGER GENERATED ALWAYS AS IDENTITY ); CREATE TABLE IF NOT EXISTS feats ( id INTEGER GENERATED ALWAYS AS IDENTITY ); CREATE TABLE IF NOT EXISTS options_features ( id INTEGER GENERATED ALWAYS AS IDENTITY ); CREATE TABLE IF NOT EXISTS backgrounds ( id INTEGER GENERATED ALWAYS AS IDENTITY ); CREATE TABLE IF NOT EXISTS items ( id INTEGER GENERATED ALWAYS AS IDENTITY ); 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, concentration BOOLEAN DEFAULT FALSE, classes TEXT[] NOT NULL, damage_inflict TEXT[] NOT NULL, damage_resist TEXT[] NOT NULL, conditions TEXT[] NOT NULL, saving_throw TEXT[] NOT NULL, attack_type TEXT, data JSONB NOT NULL ); CREATE TABLE IF NOT EXISTS conditions ( id INTEGER GENERATED ALWAYS AS IDENTITY ); CREATE TABLE IF NOT EXISTS bestiary ( id INTEGER GENERATED ALWAYS AS IDENTITY );