How to `counter.display-at(location)` or get remote context?

Finally, I get rid of show ref.

#import "@preview/headcount:0.1.0": dependent-numbering

#set heading(numbering: "1.1")

#let neo-figure = figure.where(kind: "neo")
#let neo(body) = figure(
  kind: "neo",
  supplement: none,
  {
    [Neo ]
    context counter(neo-figure).display(dependent-numbering("1.1.1", levels: 2))
    [: ]
    body
    [ ]
    context counter(neo-figure).display()
  },
)
#show neo-figure: set figure(
  numbering: dependent-numbering("{1.1.1}", levels: 2),
)
#show neo-figure: set align(start)
#show heading: it => it + counter(neo-figure).update(0)

= First

#neo(lorem(5)) <1>
#neo(lorem(5)) <2>

== First first

#neo(lorem(5)) <3>

#counter(neo-figure).update(9)
#neo(lorem(5)) <3.5>

#counter(heading).update(2)
= Second

#neo(lorem(5)) <4>

@1, @2, @3, @3.5, @4.