SELECT 'native:' || CAST(gift.rowid AS TEXT) || ':' || COALESCE(CAST(gift.user_profile_id AS TEXT), 'unknown') || ':' || COALESCE(CAST(gift.map_id AS TEXT), 'unknown') || ':' || COALESCE(CAST(gift.spawn_time AS TEXT), 'unknown') AS timedGiftId, CAST(gift.user_profile_id AS TEXT) AS userProfileId, CAST(gift.map_id AS TEXT) AS mapId, gift.spawn_time AS spawnTime, strftime('%Y-%m-%dT%H:%M:%SZ', gift.spawn_time, 'unixepoch') AS spawnAt FROM finished_timed_gift_spawner gift WHERE (:userProfileId IS NULL OR CAST(gift.user_profile_id AS TEXT) = :userProfileId) ORDER BY gift.spawn_time DESC LIMIT COALESCE(:limit, 500)