Editing axis labels in Makie recipe errors

Hi, I came up with the following process for plotting a type of plot I want to include in a new package as a recipe:

heights = cumsum(KmerAnalysis._find_plottable_subset(spec); dims = 2)
s = barplot([Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,7])], color = :orange)
barplot!(s, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,6])], color = :yellow)
barplot!(s, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,5])], color = :blue)
barplot!(s, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,4])], color = :green)
barplot!(s, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,3])], color = :purple)
barplot!(s, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,2])], color = :red)
barplot!(s, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,1])], color = :black)
xlabel!(s, "K-mer multiplicity")
ylabel!(s, "Number of distinct k-mers")

This works when given a KmerFrequencySpectra{2} struct and currently produces something like:

However I tried to turn it into a simple recipe, with a view to adding keyword parameters and making stuff reactive with “lift” in the recipe later if it works.

@recipe(SpectraCN, spectra) do scene
    default_theme(scene, BarPlot)
end

function AbstractPlotting.plot!(plot::SpectraCN)
    # lower to potentially multiple barplots/plots here
    spct = to_value(plot[:spectra])
    heights = cumsum(KmerAnalysis._find_plottable_subset(spct); dims = 2)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,7])], color = :orange)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,6])], color = :yellow)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,5])], color = :blue)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,4])], color = :green)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,3])], color = :purple)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,2])], color = :red)
    barplot!(plot, [Point2f0(i - 1, j) for (i, j) in enumerate(heights[:,1])], color = :black)
    xlabel!(plot, "K-mer multiplicity")
    ylabel!(plot, "Number of distinct k-mers")
    return plot
end

However this does not work as something is up when xlabel! and ylabel! is called:

julia> p = spectracn(spec)
ERROR: MethodError: no method matching getindex(::SpectraCN{...}, ::Type{Axis})
Closest candidates are:
  getindex(::AbstractPlot, ::Integer) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/types.jl:314
  getindex(::AbstractPlot, ::UnitRange{#s55} where #s55<:Integer) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/types.jl:315
  getindex(::AbstractPlot, ::Symbol) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/types.jl:321
  ...
Stacktrace:
 [1] xlabel!(::SpectraCN{...}, ::String) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/shorthands.jl:8
 [2] plot!(::SpectraCN{...}) at ./REPL[129]:6
 [3] plot!(::Scene, ::Type{SpectraCN{...}}, ::Attributes, ::Tuple{Observable{KmerAnalysis.KmerFrequencySpectra{2}}}, ::Observable{Tuple{KmerAnalysis.KmerFrequencySpectra{2}}}) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/interfaces.jl:641
 [4] #plot!#217(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(plot!), ::Scene, ::Type{SpectraCN{...}}, ::Attributes, ::KmerAnalysis.KmerFrequencySpectra{2}) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/interfaces.jl:571
 [5] plot! at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/interfaces.jl:540 [inlined]
 [6] #spectracn#45(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(spectracn), ::KmerAnalysis.KmerFrequencySpectra{2}) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/recipes.jl:15
 [7] spectracn(::KmerAnalysis.KmerFrequencySpectra{2}) at /Users/bward/.julia/packages/AbstractPlotting/jOgYQ/src/recipes.jl:13
 [8] top-level scope at REPL[130]:1

How do I change the X and Y labels?