You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adapted from ../traveller/render/character_timeline.go (246 lines): a chronological life-event bio reconstructed from Career/Term data — per-event ages derived from term lengths, listing entry/commission/promotion/skills/awards/muster per year.
The transferable pattern is reconstruct-and-disclose: the derived view prints its known limitations as an unconditional footnote rather than silently smoothing (theirs: failed Begin/Retry attempts cost a year the reconstruction cannot see; education consumes no modeled years). Emit what the model actually says happened.
Scope
A timeline renderer over chargen.Character (t5 owns richer per-term data than traveller did — education years ARE modeled here, so our footnote list will differ; derive it honestly from what our term engine records vs discards).
If any desired line needs data the term engine currently discards (e.g. skill origin per term), note it here rather than widening the struct speculatively — the traveller lesson: once skills aggregate into one bag, the book's homeworld/career split is unreconstructable; the tag must survive aggregation if we ever want it.
Book: B1 pp.60-66 (the worked example's narrative format is the model). Relates: #360, #361.
Adapted from
../traveller/render/character_timeline.go(246 lines): a chronological life-event bio reconstructed from Career/Term data — per-event ages derived from term lengths, listing entry/commission/promotion/skills/awards/muster per year.The transferable pattern is reconstruct-and-disclose: the derived view prints its known limitations as an unconditional footnote rather than silently smoothing (theirs: failed Begin/Retry attempts cost a year the reconstruction cannot see; education consumes no modeled years). Emit what the model actually says happened.
Scope
chargen.Character(t5 owns richer per-term data than traveller did — education years ARE modeled here, so our footnote list will differ; derive it honestly from what our term engine records vs discards).cmd/chargen(records-on-stdout contract untouched), or a-formatvariant if cli — JSON output format for generator CLIs #360 lands first.Book: B1 pp.60-66 (the worked example's narrative format is the model). Relates: #360, #361.