#ifndef DECK_READING_H
#define DECK_READING_H

#include <stdio.h>
#include <time.h>

#include "astro.h"
#include "tarot.h"

typedef struct {
  NatalChart natal;
  DailyTransits transits;
  CelticCrossSpread spread;
} DailyReading;

/* The real API: this is the only function the watchapp needs to call.
 * It walks the returned struct directly to lay out its own screens. */
void reading_generate(const char *tarot_seed, const BirthData *birth,
                       time_t utc_moment, DailyReading *out);

/* Desktop-only output formats for inspecting a reading before any watch
 * UI exists. Not used by (and not needed by) the watchapp. */
void reading_print_text(const DailyReading *r, FILE *out);
void reading_print_html(const DailyReading *r, FILE *out);

/* Machine-readable serialization of the full struct, using the
 * language-independent *_slug() accessors (never astro_*_name()/
 * tarot_*_name()) so the output is identical regardless of --lang. This
 * is the interchange format interpreter/ reads - see its json.c. */
void reading_print_json(const DailyReading *r, FILE *out);

#endif
