Give the interpreter real Celtic Cross meanings and --format/--lang support
- guidance.c now prints last, after the full spread; both it and main.c's new Celtic Cross readout pull real Waite card meanings via tarot_data.c instead of just naming cards. - interpreter-cli gains --format text|html|json and --lang en|de, matching deck-engine - required linking engine/src/tarot_data.c and i18n.c into the interpreter binary (a narrow, documented exception to its earlier "no engine .c files" policy) and writing German translations for narrative.c's/guidance.c's own text.
This commit is contained in:
@@ -16,9 +16,8 @@ know before changing the engine. This document is the visual overview.
|
||||
(MIT), pinned to a specific commit — see its `VENDORED.md`.
|
||||
- **`engine/src/`** is the core engine. Everything except `main.c`,
|
||||
`reading.c`'s `reading_print_text`/`reading_print_html` functions, and
|
||||
`i18n.c`'s file-loading half is free of `stdio`/CLI assumptions,
|
||||
specifically so it can be linked into the Pebble watchapp later without
|
||||
rework.
|
||||
`i18n.c`'s file-loading half is free of `stdio`/CLI assumptions, so it
|
||||
links straight into a Pebble watchapp without rework.
|
||||
- `rng.c` — deterministic string-seeded PRNG (FNV-1a + splitmix64).
|
||||
- `tarot.c` / `tarot_data.c` — the Celtic Cross draw and its content.
|
||||
- `astro.c` — natal chart + daily transits, built on the vendored
|
||||
@@ -41,9 +40,6 @@ know before changing the engine. This document is the visual overview.
|
||||
`engine/scripts/user.properties.local` (gitignored) once it's filled
|
||||
in, and restored from there if `dist/` is ever wiped — see
|
||||
`CLAUDE.md`'s "Build & run".
|
||||
- **The Pebble watchapp does not exist yet.** When it's built, it will
|
||||
call `reading_generate()` directly and walk the returned struct to lay
|
||||
out its own screens — it has no reason to touch `reading_print_*`.
|
||||
|
||||
## Dataflow
|
||||
|
||||
@@ -64,9 +60,10 @@ computations and combines their results:
|
||||
with position and upright/reversed orientation, fully determined by
|
||||
the seed string alone.
|
||||
|
||||
These three results are combined into one `DailyReading` struct, which is
|
||||
either rendered by `reading_print_text`/`reading_print_html` (used by the
|
||||
CLI) or, in the future, walked directly by watchapp UI code. See
|
||||
These three results are combined into one `DailyReading` struct — the
|
||||
real API surface. `reading_print_text`/`reading_print_html` (used by the
|
||||
CLI) are just one way of consuming it; any caller, including watch UI
|
||||
code, can walk the struct's fields directly. See
|
||||
[`input-output-format.md`](input-output-format.md) for the exact fields
|
||||
and output formats.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user