export type PlanetModelBody = { /** * - the observed sidereal period input, SI days (the scaffold period of the no-chain bodies; the chain planets ride the artifact's elements) */ solarYearInput: number; invPlaneInclinationJ2000?: number | undefined; longitudePerihelion?: number | undefined; /** * - carriers: the chain's g-mode beat (input since Phase 7 commit 2) */ wobblePeriodYears?: number | undefined; /** * - carriers: the derived J2000 obliquity (input since Phase 7 commit 2) */ obliquityMeanDeg?: number | undefined; axialTiltJ2000?: number | undefined; orbitalEccentricityJ2000?: number | undefined; ascendingNode?: number | undefined; rotationPeriodDays?: number | undefined; /** * - minor bodies: JSON input; * carriers: ignored (the K law derives it) */ orbitalEccentricityBase?: number | undefined; orbitDistanceOverride?: number | undefined; }; export type PlanetModelEnv = { /** * - the governed engine-D chain artifact (CHAIN_ARTIFACT): the seven chain planets' scaffold a and period ride its J2000 elements (plan 09 step 7b) */ chainArtifact?: any; meanSolarYearDays: number; balancedYear: number; systemResetN: number; currentAUDistanceKm: number; earthEccentricityJ2000: number; earthPerihelionLongitudeJ2000Deg: number; }; export type PlanetModelRecord = { wobblePeriodYears?: number | undefined; obliquityMeanDeg?: number | undefined; geometry: ReturnType; }; /** * @typedef {Object} PlanetModelBody * @property {number} solarYearInput - the observed sidereal period input, SI days (the scaffold period of the no-chain bodies; the chain planets ride the artifact's elements) * @property {number} [invPlaneInclinationJ2000] * @property {number} [longitudePerihelion] * @property {number} [wobblePeriodYears] - carriers: the chain's g-mode beat (input since Phase 7 commit 2) * @property {number} [obliquityMeanDeg] - carriers: the derived J2000 obliquity (input since Phase 7 commit 2) * @property {number} [axialTiltJ2000] * @property {number} [orbitalEccentricityJ2000] * @property {number} [ascendingNode] * @property {number} [rotationPeriodDays] * @property {number} [orbitalEccentricityBase] - minor bodies: JSON input; * carriers: ignored (the K law derives it) * @property {number} [orbitDistanceOverride] */ /** * @typedef {Object} PlanetModelEnv * @property {any} [chainArtifact] - the governed engine-D chain artifact (CHAIN_ARTIFACT): the seven chain planets' scaffold a and period ride its J2000 elements (plan 09 step 7b) * @property {number} meanSolarYearDays * @property {number} balancedYear * @property {number} systemResetN * @property {number} currentAUDistanceKm * @property {number} earthEccentricityJ2000 * @property {number} earthPerihelionLongitudeJ2000Deg */ /** * @typedef {Object} PlanetModelRecord * @property {number} [wobblePeriodYears] * @property {number} [obliquityMeanDeg] * @property {ReturnType} geometry */ /** * Run the full derivation chain over a set of body records. * * @param {PlanetModelEnv} env * @param {Record} bodies - keyed by body name * (the key selects the body-unique geometry branches: mercury, pluto, * halleys, ceres) * @returns {{ bodies: Record }} */ export function createPlanetModel(env: PlanetModelEnv, bodies: Record): { bodies: Record; }; import { derivePlanetGeometry } from "./geometry.cjs";