GameJolt API (unnofficial) (WIP)

I thought this would be useful:

class_name GameJoltApi
var Game_ID: int = 0
var Access_Token: String = "TOKEN_ID"
var Username: String = "USERNAME"
var anchor: Node = Node.new()

func assign_keys(ID: int, Token: String):
	Access_Token = Token
	Game_ID = ID
	return

func set_user_name(name: String):
	Username = name

# HTTPRequest node
var http_request: HTTPRequest

func _ready() -> void:
	http_request = HTTPRequest.new()
	anchor.add_child(http_request)
	# Example: submit a score of 123
	submit_score(123)

# Submit a score to Game Jolt
func submit_score(score: int) -> void:
	var base_url: String = "https://api.gamejolt.com/api/game/v1/scores/add/"
	var params: Dictionary = {
		"game_id": Game_ID,
		"username": Username,
		"user_token": Access_Token,
		"score": score
	}

	# Build query string
	var query_list: Array = []
	for key in params.keys():
		query_list.append(key + "=" + str(params[key]))
	var full_url: String = base_url + "?" + "&".join(query_list)

	# Make the request
	http_request.connect("request_completed", Callable(self, "_on_request_completed"))
	http_request.request(full_url)

# Handle the response
func _on_request_completed(result: int, response_code: int, headers: Array, body: PackedByteArray) -> void:
	var response_text: String = body.get_string_from_utf8()
	if response_code == 200:
		print("[SUCCESS] Score submitted!")
		print("Response:", response_text)
	else:
		print("[ERROR] Failed to submit score. Code:", response_code)
		print("Response:", response_text)