-- Every account owns exactly one built-in full-screen gift-effect component. -- Existing accounts are backfilled from the validated Rust defaults during -- startup; the partial index keeps concurrent starts idempotent. CREATE UNIQUE INDEX IF NOT EXISTS component_instances_single_gift_effect ON component_instances(owner_user_id, kind) WHERE kind = 'gift_effect';