function p.main()
    -- ga_command("foo")
    -- ga_save(true)
    -- ga_load()
    -- ga_exit()
    -- ga_exit_error()
    -- ga_print("hello")
    -- ga_flush()
    -- ga_console_print("hello")
    -- ga_dump_lua_env()

    -- ga_return_b("sdf", true)

    -- ga_get_game_time()
    -- ga_get_level_time(12)

    -- ga_srand(12)
    -- ga_rand()
    -- ga_randf()
    -- ga_randf_range(1.0, 2.0)
    -- ga_randi(1,2)

    -- ga_exists("foo")
    -- ga_create_b("foo")
    -- ga_create_i("foo")
    -- ga_create_f("foo")
    -- ga_create_s("foo")
    -- ga_create_v("foo")
    -- ga_init_b("foo", true)
    -- ga_init_i("foo", 12)
    -- ga_init_f("foo", 2.0)
    -- ga_init_s("foo", "bar")
    -- ga_init_v("foo", std.vec(1,2,3))
    -- ga_get_b("foo")
    -- ga_get_i("foo")
    -- ga_get_f("foo")
    -- ga_get_s("foo")
    -- ga_get_v("foo")
    -- ga_set_b("foo", true)
    -- ga_set_i("foo", 12)
    -- ga_set_f("foo", 3.14)
    -- ga_set_s("foo", "bar")
    -- ga_set_v("foo", std.vec(1,2,3))
    -- ga_toggle_b("foo")
    -- ga_get_sys_b("foo")
    -- ga_get_sys_i("foo")
    -- ga_get_sys_f("foo")
    -- ga_get_sys_s("foo")
    -- ga_get_sys_v("foo")
    -- ga_set_sys_b("foo", true)
    -- ga_set_sys_i("foo", 12)
    -- ga_set_sys_f("foo", 3.14)
    -- ga_set_sys_v("foo", std.vec(1,2,3))
    -- ga_set_sys_s("foo", "bar")
    -- ga_init_package_b("foo", true)
    -- ga_get_package_b("foo")
    -- ga_set_package_b("dingle", true)

    -- ga_dyn_exists("foo")
    -- ga_dyn_create_b("dyn.foo")
    -- ga_dyn_create_i("dyn.foo")
    -- ga_dyn_create_f("dyn.foo")
    -- ga_dyn_create_v("dyn.foo")
    -- ga_dyn_create_s("dyn.foo")
    -- ga_dyn_init_b("dyn.foo", true)
    -- ga_dyn_init_i("dyn.foo", 12)
    -- ga_dyn_init_f("dyn.foo", 3.14)
    -- ga_dyn_init_v("dyn.foo", std.vec(1,2,3))
    -- ga_dyn_init_s("dyn.foo", "bar")
    -- ga_dyn_get_b("foo")
    -- ga_dyn_get_i("foo")
    -- ga_dyn_get_f("foo")
    -- ga_dyn_get_v("foo")
    -- ga_dyn_get_s("foo")
    -- ga_dyn_set_b("foo", true)
    -- ga_dyn_set_i("foo", 12)
    -- ga_dyn_set_f("foo", 3.14)
    -- ga_dyn_set_v("foo", std.vec(1,2,3))
    -- ga_dyn_set_s("foo", "bar")
    -- ga_dyn_remove("foo")
    -- ga_dyn_node_itr_start("foo")
    -- ga_dyn_node_itr_next()
    -- ga_dyn_leaf_itr_start("foo")
    -- ga_dyn_leaf_itr_next()
    -- ga_dyn_dump()

    -- ga_play_sound("foo")
    -- ga_play_sound_menu("foo")
    -- ga_play_music("foo")
    -- ga_stop_music()

    -- ga_genesis()
    -- ga_kill_player()
    -- ga_use_object_exists()

    -- ga_hud_msg("foo", 3.14)
    -- ga_hud_reg_damage_from_dir(42, std.vec(1,2,3))
    -- ga_hud_reg_damage_from_dir_color(42, std.vec(1,2,3), std.vec(1,2,3))
    -- ga_hud_reg_dir_tex("foo", "bar", std.vec(1,2,3), 3.14)

    -- ga_shrink()
    -- ga_shrink2(std.vec(1,2,3))
    -- ga_grow()
    -- ga_grow2(std.vec(1,2,3))
    -- ga_tele("333", std.vec(1,2,3))
    -- ga_tele_pink()
    -- ga_tele_pink2(std.vec(1,2,3))
    -- ga_tele_blue()
    -- ga_tele_blue2(std.vec(1,2,3))
    -- ga_tele_same_level(std.vec(1,2,3))

    -- ga_window_push("foo")
    -- ga_window_pop()
    -- ga_window_pop_all()
    -- ga_main_menu_push("foo")
    -- ga_main_menu_pop()
    -- ga_main_menu_pop_all(true)
    -- ga_hud_window_add("foo", 12)
    -- ga_hud_window_remove("foo")

    -- ga_get_viewer_chunk_id()
    -- ga_get_viewer_level()
    -- ga_get_viewer_offset()
    -- ga_get_viewer_lp(42)
    -- ga_get_viewer_bp(42)
    -- ga_get_viewer_path()
    -- ga_get_viewer_path_ext()
    -- ga_get_vec_to_viewer(42, std.vec(1,2,3))
    -- ga_lbp_dist_to_viewer(5, 12)
    -- ga_block_dist_to_viewer(42, std.bp(1,2,3))
    -- ga_ment_get_var_special_vec_to_viewer(5)
    -- ga_ment_get_var_special_dist_to_viewer(5)

    -- ga_bent_get_type(42, std.bp(1,2,3))
    -- ga_bent_add(42, std.bp(1,2,3), "foo", 100.0)
    -- ga_bent_add_i(42, std.bp(1,2,3), "foo", 12, 100.0)
    -- ga_bent_add_s(42, std.bp(1,2,3), "foo", "bar", 100.0)
    -- ga_bent_set_param_i(42, std.bp(1,2,3), 12, 100.0)
    -- ga_bent_set_param_s(42, std.bp(1,2,3), "bar", 100.0)
    -- ga_bent_get_param_s(42, std.bp(1,2,3))
    -- ga_bent_get_param_i(42, std.bp(1,2,3))
    -- ga_bent_remove_temp(42, std.bp(1,2,3), 12)
    -- ga_bent_remove_perm(42, std.bp(1,2,3))
    -- ga_bent_sphere_query(42, std.vec(1,2,3), 3.14)

    -- ga_ment_var_exists("foo", "var")
    -- ga_ment_get_static_b("foo", "var")
    -- ga_ment_get_static_i("foo", "var")
    -- ga_ment_get_static_f("foo", "var")
    -- ga_ment_get_static_v("foo", "var")
    -- ga_ment_get_static_s("foo", "var")
    -- ga_ment_static_b_exists_and_true("foo", "var")

    -- ga_ment_start(42, std.vec(1,2,3), "ment_type")
    -- ga_ment_end()
    -- ga_ment_init_set_b("var", true)
    -- ga_ment_init_set_i("var", 12)
    -- ga_ment_init_set_f("var", 3.14)
    -- ga_ment_init_set_v("var", std.vec(1,2,3))
    -- ga_ment_init_set_s("var", "foo")
    -- ga_ment_var_exists2(4000, "var")
    -- ga_ment_get_b(4000, "var")
    -- ga_ment_get_i(4000, "var")
    -- ga_ment_get_f(4000, "var")
    -- ga_ment_get_v(4000, "var")
    -- ga_ment_get_s(4000, "var")
    -- ga_ment_f_exists(4000, "var")
    -- ga_ment_b_exists_and_true(4000, "var")
    -- ga_ment_set_var_rt_only(4000, "var", 12)
    -- ga_ment_set_b(4000, "var", true)
    -- ga_ment_set_i(4000, "var", 12)
    -- ga_ment_set_f(4000, "var", 3.14)
    -- ga_ment_set_v(4000, "var", std.vec(1,2,3))
    -- ga_ment_set_s(4000, "var", "bar")
    -- ga_ment_inst_id_to_code_id(4000)
    -- ga_ment_code_id_to_inst_id(4000)
    -- ga_ment_exists(4000)
    -- ga_ment_remove(4000)
    -- ga_ment_get_type(4000)
    -- ga_ment_get_lp(4000)
    -- ga_ment_get_sllp(4000)
    -- ga_ment_get_level(4000)
    -- ga_ment_dump(4000)
    -- ga_ment_sphere_query(42, 42, 42, std.vec(1,2,3), 3.14)
    -- ga_ment_set_alarm(4000, 100.0, "alarm");
    -- ga_ment_set_alarm_on_level(4000, 42, 100.0, "alarm")
    -- ga_ment_all_dump()

    -- -- I trust these.
    -- ga_particle_add()
    -- ga_particle_explosion()
    -- ga_particle_trail()
    -- ga_particle_ring()

    -- ga_lbp_seed_pos(42,12)
    -- ga_block_seed_pos(42, std.bp(1,2,3))
    -- ga_block_get(42, std.bp(1,2,3))
    -- ga_get_cocoon_block_of_chunk(42, std.bp(1,2,3))
    -- ga_block_change_rl(42, std.bp(1,2,3), "grass", 100.0)
    -- ga_block_change_rl_default(42, std.bp(1,2,3), "grass")
    -- ga_block_change_perm(42, std.bp(1,2,3), "grass")
    -- ga_block_get_b(42, std.bp(1,2,3), "var")
    -- ga_block_get_i(42, std.bp(1,2,3), "var")
    -- ga_block_get_f(42, std.bp(1,2,3), "var")
    -- ga_block_get_v(42, std.bp(1,2,3), "var")
    -- ga_block_get_s(42, std.bp(1,2,3), "var")
    -- ga_block_set_b(42, std.bp(1,2,3), "var", true)
    -- ga_block_set_i(42, std.bp(1,2,3), "var", 12)
    -- ga_block_set_f(42, std.bp(1,2,3), "var", 3.14)
    -- ga_block_set_v(42, std.bp(1,2,3), "var", std.vec(1,2,3))
    -- ga_block_set_s(42, std.bp(1,2,3), "var", "bar")
    -- ga_bt_get_physically_solid("grass")

    -- ga_set_respawn_point("EMPTY_PATH", std.bp(1,2,3))
    -- ga_add_waypoint_sloppy("EMPTY_PATH", "name")
    -- ga_add_waypoint_sloppy_in_only("EMPTY_PATH", "name")

    -- ga_chunk_id_to_level(4000)
    -- ga_chunk_id_to_vcp(4000)
    -- ga_chunk_id_to_path(4000)
    -- ga_vcp_to_chunk_id(100, std.bp(1,2,3))
    -- ga_path_to_chunk_id("EMPTY_PATH")
    -- ga_level_scale_factor(12,13)
    -- ga_convert_lp(12,13, std.vec(1,2,3))
    -- ga_vcp_to_bp(10, std.bp(1,2,3))
    -- ga_bp_to_path(12, std.bp(1,2,3))
    -- ga_bp_to_parent_bp(12, std.bp(1,2,3))

    -- ga_path_diff("EMPTY_PATH", "EMPTY_PATH")

    -- ga_move_set_desired_travel(std.vec(1,2,3))
    -- ga_move_set_spin(3.14)
    -- ga_move_get_on_sure_footing()
    -- ga_move_set_ledge_guards(true)
    -- ga_move_set_body_spirit()
    -- ga_move_set_body_ground(std.vec(1,2,3), 3.14, 10.0, 5.0)
    -- ga_move_set_body_fly(std.vec(1,2,3), 3.14, false)
    -- ga_player_model_set_look()
    -- ga_player_model_q2md2_set_cmd("foo")
    -- ga_player_model_q2md2_set_state("bar")

    -- ga_vis_test_level(12, std.vec(1,2,3), std.vec(1,2,3))

    -- --It complains about a null pointer.
    -- ga_reboot_dyn_itr_get()
    -- ga_reboot_dyn_itr_next()
    -- ga_reboot_dyn_itr_at_end()
    -- ga_reboot_dyn_itr_save()

    -- ga_debug1()
    -- ga_debug2()
end
