Thin every trace in the loaded systems down to the ones that are context.
A pure function, and that is the point rather than tidiness. It lived inside
GameEngine.#maybeTraceOrbits, reachable only through the frame loop, so the
one thing it does — turn a hundred and twenty-nine lines into eight — had no
test at all, and neither did the rebuild key that decides whether it is
re-run. Both failures are silent: drop the scope from the key and the View
panel's switch appears dead until the reader navigates away and back, and
lint, typecheck and the whole suite stay green.
The rule itself: a subject's siblings and the things going round it, and rubble is not context. That was unambiguous when a star's children were eight planets. Sol has sixty-seven, fifty-nine of them asteroids and comets, and drawn together they are a cage with the subject somewhere behind it — measured by looking at Bennu, which was a dark shape inside a wireframe. So a small body's orbit is drawn when it is the subject or goes round it, and not merely because it shares a primary.
The nine dwarf planets stay: isDebris is asteroids and comets only, and
hiding Pluto costs the one trace a planetarium is most often opened for —
with Neptune selected, where the two orbits cross.
scope: 'all' is the deliberate way to ask for the cage. From outside a
system it is the picture, the whole architecture of the place at once; from
inside it is a fan of edge-on lines. Which is why it is a switch a reader
throws rather than the default.
- allreadonly OrbitPath[]
- Undocumented
- contextOrbitScopeContext
- Undocumented