TravelTarget

interface TravelTarget

A place the player can be sent, as a row of a listing.

devtools/src/travel.ts:47

Members

addressreadonly

address: string

Text address — the same string generation, saves and logs key off.

bodyKindreadonly

bodyKind: BodyKind | null

The body's own class, or null on a system row.

Structured rather than left inside detail, because two readers now branch on it and both were reduced to parsing a sentence: the catalog draws a glyph per class — a comet is not a circle — and its filter chips select by it. detail is a line of prose for a human and must stay free to be rewritten.

childrenreadonly

children: number

How many bodies go round this one. Planets for a star, moons for a planet.

colorreadonly

color: { b: number; g: number; r: number } | null

The star's own color, linear sRGB, or null on a body row.

A measurement rather than decoration: docs/design/art.md puts a star's color on the list of things the game may not invent, because it follows from the effective temperature. A K dwarf is orange and does not get to be a nicer orange. Carried here rather than looked up from the class letter, so the glyph in the catalog and the disk in the sky are the same number.

depthreadonly

depth: number

0 for a system, 1 for a planet, 2 for a moon: the tree depth to indent by.

detailreadonly

detail: string

Kind, size and orbit, already formatted for display.

distancereadonly

distance: number

Distance from wherever the listing was taken.

From the sweep that produced the row, which is not always the last one: sameTargets keeps a listing whose every text is unchanged, so a subscriber holding rows through a hover holds this number from whenever the text last moved. It is wrong by less than distanceText's own resolution and by no more; anything that needs the meter wants UV.distance against a fresh pose rather than a row of a listing.

distanceTextreadonly

distanceText: string

kindreadonly

kind: 'system' | 'body'

landablereadonly

landable: boolean

Whether land will work: solid ground and big enough to be a place.

loadedreadonly

loaded: boolean

Whether the system is generated and its frames installed.

namereadonly

name: string

parentreadonly

parent: string | null

The row this one hangs off — a body's primary, a system's own address.

What makes the flat listing a tree the panel can fold. Sol is 129 bodies and a list that cannot be collapsed is a list nobody scrolls twice.

provenancereadonly

provenance: BodyProvenance

Whether this is a place somebody has actually seen, or one this generator expects to be there.

The epistemic fact, and it is the one the interface promises to state (PRODUCT.md). It is not loaded: loaded is a streaming fact about this session, and a real star is real whether or not its frames are installed. The projection used to drop this, so Alpha Centauri and an invented star four light years the other way rendered identically.

radiusreadonly

radius: number

Equatorial radius, meters. A star's own on a system row.

semiMajorAxisreadonly

semiMajorAxis: number

Semi-major axis about its primary, meters. 0 on a system row.

spectralTypereadonly

spectralType: string | null

Spectral type on a system row, null on a body.

systemreadonly

system: string

The system this row belongs to, so a listing can be grouped or filtered.