Internal module guide. This module is now part of
@astrology/western; use the public package README for application setup.
directions module
Implements directions@1/solar-arc-naibod, a solar arc direction that moves every point by the same arc. calculateSolarArc({ reference, targetInstant }, rules) advances bodies, ASC (Ascendant) and MC (Midheaven) by 0.9856473590852142 × elapsedTropicalYears degrees. The tropical year is exactly 31,556,925,216 milliseconds. Targets must follow the reference instant; no astronomy is acquired at the target.
validateDirectionRules requires { arc: 'naibod', yearLength: 'tropical-2000', angles: 'advanced', contacts: 'directed-to-natal', houses: 'none', excludeSelfPairs: true }. Primary directions, true/progressed-Sun arc, converse motion and alternate house/contact conventions are rejected.
All directed points carry the source hash and derived origin. Speeds are null and no natal cusps are attached. evaluateDirectedContacts(directed, reference, geometry, rules) compares directed points to natal points under unknown motion, then excludes self-pairs by ID. Missing source angles or geometry are explicit factor gaps.
createDirectionFeature(admitted) supports engine.chart with requests: { directions: { targetInstant } }, or engine.operation with a supplied snapshot. Position/house acquisition is required for the angle-aware feature; cross-chart geometry is optional. Results retain the unrounded arc, target and reference, and derived provenance.