fix: has_license()