Improve a plot done with AoG and Makie

I have used the following function to make the plot below:

"""Plot splus stars in the streams footprints"""
function plot_splus_streams(df::DataFrame, file::String)
    df.anotta = df.track
    unicos = unique(df.track)
    lu = length(unicos)
    ra = zeros(lu)
    dec = zeros(lu)
    for i in 1:lu
        bool_st = (df.track .== unicos[i])
        ra[i] = df.RA[bool_st][1]
        dec[i] = df.DEC[bool_st][1]
        df.anotta[bool_st] = repeat(["$i = $(unicos[i])"],sum(bool_st))
    df_text = DataFrame(ra=ra, dec=dec, id=string.(eachindex(unicos)))

    size_inches = (8*3, 6*3)
    size_pt = 72 .* size_inches
    fig = Figure(resolution = size_pt, fontsize = 24)
    plt = data(df)*visual(markersize=2)*mapping(:RA=>L"RA [$°$]", :DEC=>L"Dec [$°$]", color=:anotta)
    plt_text = data(df_text)*mapping(:ra, :dec, text=:id=>verbatim)*visual(Makie.Text)
    f=draw!(fig[1,1], plt+plt_text, axis=(; xgridvisible=false, ygridvisible=false))
    legend!(fig[2,1], f; tellwidth=true, patchsize=(8*3,3*3), nbanks=5, alignmode=Outside())
    save(file, fig, pt_per_unit=5)

I would like to modify two things: a) having the legend closer to the figure and b) the numbers in order. I think that using fig[2,1] in the legend line is not right but if I use fig[1,1] I obtain the legend inside the figure, which is something I do not want.

By the way, how is the logic of fig[i,j]? When are they created and which is the size of fig?
Thank you very much.