How come we have to break `external_id` out and treat it specially?