Add narrative text and a day-significance rank to the interpreter
Each of the day's top significant transits now gets a short sentence describing what it classically means and which area of life its house governs, condensed from Sepharial's Transits and Planetary Periods (1920, public domain) plus a small table of traditional house significations. The day-level line also shows its rank out of the 4 defined levels, e.g. "Notable (2/4)". Docs (CLAUDE.md, README, docs/input-output-format.md, docs/reading.md) updated to match, including a full worked example in docs/reading.md.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#ifndef DECK_NARRATIVE_H
|
||||
#define DECK_NARRATIVE_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* Header-only dependency on the engine, same policy as significance.h -
|
||||
* see its comment for why. */
|
||||
#include "../../engine/src/astro.h"
|
||||
|
||||
/* Condensed, public-domain descriptions of what each transiting planet
|
||||
* classically signifies, sourced from Sepharial's "Transits and
|
||||
* Planetary Periods" (1920, public domain - res/Transits_and_Planetary_
|
||||
* Periods.pdf), Chapter VIII "Effects of Transits" (pp. 60-61). The
|
||||
* chapter's own structure - a base description of the planet's transit,
|
||||
* plus a "well aspected"/"badly aspected" addendum - maps directly onto
|
||||
* transiting-planet + aspect-type, our existing Aspect fields, so no new
|
||||
* engine data is needed to use it.
|
||||
*
|
||||
* The Moon and Pluto aren't covered by that chapter (fast lunar transits
|
||||
* were outside a year-ahead-forecasting book's scope; Pluto wasn't
|
||||
* discovered until 1930, a decade after this book) - their text in
|
||||
* narrative.c is original, written for this project in a matching
|
||||
* voice, not drawn from Sepharial.
|
||||
*
|
||||
* Prints a narrative sentence for `aspect`'s transiting planet to `out`,
|
||||
* indented with `indent` and followed by a newline - or prints nothing
|
||||
* if the source material has no text applicable to this planet/aspect
|
||||
* combination (e.g. an exactly neutral conjunction to a planet whose
|
||||
* only text is a "well/badly aspected" addendum, like the Sun). A
|
||||
* conjunction is treated as neutral - neither the "harmonious" nor the
|
||||
* "discordant" addendum is shown for it - since Sepharial's own text
|
||||
* says a conjunction "takes the nature of what it conjoins," something
|
||||
* this data doesn't model.
|
||||
*
|
||||
* `transiting_house` is the whole-sign house (1-12) the transiting
|
||||
* planet currently occupies in the natal chart - i.e.
|
||||
* reading->transits.bodies[aspect->transiting_planet].house - and names
|
||||
* *which area of life* the transit is playing out in, the standard,
|
||||
* personalized way transits are read (see astro.h's own house-field
|
||||
* comment). Pass a value outside 1-12 (e.g. the "no data" sentinel `0`
|
||||
* used elsewhere - see reading_io.c's parse_bodies()) to omit that
|
||||
* framing and print the planet's narrative on its own. */
|
||||
void narrative_print(FILE *out, const char *indent, const Aspect *aspect,
|
||||
int transiting_house);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user