### Godot version

3.5.1.stable, v4.0.beta.custom_build [0a87ead64]

### System information

Ubuntu 22.04.1

### Issue description

For example, if project has name "300spartans", we can't enter the "org.godotengine.300spartans" to "Unique Name" field. We get the error "Invalid package name: A digit cannot be the first character in a package segment". But , if we enter "org.godotengine.$genname", there will be no error message. When exporting, the name will be set as "org.godotengine.spartans" without "300" in beginning, but user will not be informed about it. I think, it is not very good. It may not be worth making changes to the source code, but mention it in the documentation.

### Steps to reproduce

See issue description.

### Minimal reproduction project

N/A
print_verbose("Removing previously installed libraries...");
	Error error;
	String libs_json = FileAccess::get_file_as_string(GDEXTENSION_LIBS_PATH, &error);
	if (error || libs_json.is_empty()) {
		print_verbose("No previously installed libraries found");
		return;
	}
	JSON json;
	error = json.parse(libs_json);
	ERR_FAIL_COND_MSG(error, "Error parsing \"" + libs_json + "\" on line " + itos(json.get_error_line()) + ": " + json.get_error_message());
	Vector<String> libs = json.get_data();
	Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
	for (int i = 0; i < libs.size(); i++) {
		print_verbose("Removing previously installed library " + libs[i]);
		da->remove(libs[i]);
	}
	da->remove(GDEXTENSION_LIBS_PATH);
}
String EditorExportPlatformAndroid::join_list(const List<String> &p_parts, const String &p_separator) {
	String ret;
	for (int i = 0; i < p_parts.size(); ++i) {
		if (i > 0) {
			ret += p_separator;
		}
		ret += p_parts[i];
	}
	return ret;
}
String EditorExportPlatformAndroid::join_abis(const Vector<EditorExportPlatformAndroid::ABI> &p_parts, const String &p_separator, bool p_use_arch) {