Added Character Age Document
This commit is contained in:
parent
0ffe678d87
commit
42325ab738
@ -0,0 +1,255 @@
|
|||||||
|
# PlotDirector Feature Specification: Character Age and Story Date Management
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
PlotDirector should support both precise age calculations and
|
||||||
|
approximate author-supplied ages without forcing authors into
|
||||||
|
unnecessary data entry.
|
||||||
|
|
||||||
|
The primary goal is to assist authors with continuity and timeline
|
||||||
|
management while respecting the fact that not every character requires
|
||||||
|
an exact birth date.
|
||||||
|
|
||||||
|
The system should only perform calculations when sufficient information
|
||||||
|
has been explicitly provided by the author.
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
### 1. Only Calculate What the Author Defines
|
||||||
|
|
||||||
|
PlotDirector should never invent information.
|
||||||
|
|
||||||
|
If an author provides:
|
||||||
|
|
||||||
|
- A Date of Birth
|
||||||
|
- A scene with a resolvable date
|
||||||
|
|
||||||
|
Then PlotDirector should calculate exact ages.
|
||||||
|
|
||||||
|
If an author only provides:
|
||||||
|
|
||||||
|
- "45 years old"
|
||||||
|
- "Mid forties"
|
||||||
|
- "About 30"
|
||||||
|
|
||||||
|
Then PlotDirector should preserve that approximate information without
|
||||||
|
attempting to generate birthdays or age progression.
|
||||||
|
|
||||||
|
### 2. Precision Should Match Author Intent
|
||||||
|
|
||||||
|
Authors intentionally vary the precision of character information.
|
||||||
|
|
||||||
|
Characters with known birthdays should benefit from automatic age
|
||||||
|
calculation. Characters with approximate ages should remain descriptive
|
||||||
|
only.
|
||||||
|
|
||||||
|
## Story Calendar Model
|
||||||
|
|
||||||
|
### Project Story Start Date
|
||||||
|
|
||||||
|
Projects may optionally define a Story Start Date that acts as a default
|
||||||
|
reference point.
|
||||||
|
|
||||||
|
### Book Story Start Date
|
||||||
|
|
||||||
|
Each book may optionally override the project start date. If specified,
|
||||||
|
the book start date takes precedence.
|
||||||
|
|
||||||
|
## Scene Date Resolution
|
||||||
|
|
||||||
|
Scenes may have varying levels of temporal precision.
|
||||||
|
|
||||||
|
Supported modes:
|
||||||
|
|
||||||
|
- Exact Date
|
||||||
|
- Exact Date and Time
|
||||||
|
- Relative Day Offset
|
||||||
|
- Relative Sequence Only
|
||||||
|
- Unknown
|
||||||
|
|
||||||
|
## Effective Scene Date
|
||||||
|
|
||||||
|
The system should derive an EffectiveSceneDate used for calculations.
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
|
||||||
|
1. Use exact scene date if specified.
|
||||||
|
2. Use relative day calculations if possible.
|
||||||
|
3. Use inherited dates only where the author has explicitly enabled
|
||||||
|
such behaviour.
|
||||||
|
4. Otherwise, leave unresolved.
|
||||||
|
|
||||||
|
The system should avoid silently making assumptions.
|
||||||
|
|
||||||
|
## Character Age Model
|
||||||
|
|
||||||
|
### Exact Age Tracking
|
||||||
|
|
||||||
|
Characters with a Date of Birth participate in automatic age
|
||||||
|
calculations.
|
||||||
|
|
||||||
|
Required Data:
|
||||||
|
|
||||||
|
``` csharp
|
||||||
|
DateTime? DateOfBirth
|
||||||
|
```
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
|
||||||
|
- Maggie Grant: 17 years, 8 months
|
||||||
|
- Beth MacDonald: 18 years, 0 months
|
||||||
|
|
||||||
|
### Approximate Age Tracking
|
||||||
|
|
||||||
|
Characters without a Date of Birth may store an approximate age.
|
||||||
|
|
||||||
|
Required Data:
|
||||||
|
|
||||||
|
``` csharp
|
||||||
|
int? ApproximateAge
|
||||||
|
```
|
||||||
|
|
||||||
|
Optional:
|
||||||
|
|
||||||
|
``` csharp
|
||||||
|
DateTime? ApproximateAgeAsOfDate
|
||||||
|
```
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
- Mary Grant: Approximately 45 years old
|
||||||
|
|
||||||
|
No further calculations occur.
|
||||||
|
|
||||||
|
## Age Calculation Rules
|
||||||
|
|
||||||
|
### Exact Ages
|
||||||
|
|
||||||
|
Calculate only when:
|
||||||
|
|
||||||
|
- Date of Birth exists
|
||||||
|
- Effective Scene Date exists
|
||||||
|
|
||||||
|
Formula:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
Scene Date - Date of Birth
|
||||||
|
```
|
||||||
|
|
||||||
|
Display:
|
||||||
|
|
||||||
|
- 17 years, 8 months
|
||||||
|
- 18 years, 0 months
|
||||||
|
- 22 years, 3 months
|
||||||
|
|
||||||
|
### Approximate Ages
|
||||||
|
|
||||||
|
Display author-entered values unchanged.
|
||||||
|
|
||||||
|
No progression occurs.
|
||||||
|
|
||||||
|
No birthdays are inferred.
|
||||||
|
|
||||||
|
No calculations are performed.
|
||||||
|
|
||||||
|
### Unknown Ages
|
||||||
|
|
||||||
|
If neither Date of Birth nor Approximate Age exists:
|
||||||
|
|
||||||
|
Display:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
Unknown
|
||||||
|
```
|
||||||
|
|
||||||
|
## Continuity Assistance Features
|
||||||
|
|
||||||
|
These features should only apply to characters with exact birth dates.
|
||||||
|
|
||||||
|
### Birthday Transition Warnings
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
- Beth turns 18 between Scene 14 and Scene 15.
|
||||||
|
|
||||||
|
### Incorrect Age References
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
- Character notes describe Maggie as 17 years old.
|
||||||
|
- However, in this scene she is actually 18 years old.
|
||||||
|
|
||||||
|
### Timeline Insights
|
||||||
|
|
||||||
|
Possible reporting:
|
||||||
|
|
||||||
|
- Character age at start of book.
|
||||||
|
- Character age at end of book.
|
||||||
|
- Character age range throughout series.
|
||||||
|
|
||||||
|
## User Interface Recommendations
|
||||||
|
|
||||||
|
### Character Editor
|
||||||
|
|
||||||
|
#### Exact Age Section
|
||||||
|
|
||||||
|
- Date of Birth: \[Date Picker\]
|
||||||
|
- Enable automatic age calculation.
|
||||||
|
|
||||||
|
#### Approximate Age Section
|
||||||
|
|
||||||
|
- Approximate Age: \[45\]
|
||||||
|
- As of: \[Book Start\]
|
||||||
|
|
||||||
|
Help text:
|
||||||
|
|
||||||
|
> Use this when the exact birth date is unknown or unimportant to the
|
||||||
|
> story.
|
||||||
|
|
||||||
|
### Scene Inspector
|
||||||
|
|
||||||
|
Display age contextually.
|
||||||
|
|
||||||
|
Exact age example:
|
||||||
|
|
||||||
|
- Maggie Grant
|
||||||
|
- Date of Birth: 1 September 1965
|
||||||
|
- Age in this Scene: 17 years, 8 months
|
||||||
|
|
||||||
|
Approximate age example:
|
||||||
|
|
||||||
|
- Mary Grant
|
||||||
|
- Approximate Age: 45
|
||||||
|
- Age in this Scene: Approximately 45
|
||||||
|
|
||||||
|
Unknown example:
|
||||||
|
|
||||||
|
- Barbara Jones
|
||||||
|
- Age: Unknown
|
||||||
|
|
||||||
|
## System Behaviour Summary
|
||||||
|
|
||||||
|
Character Data Scene Date Available Result
|
||||||
|
----------------- ---------------------- -----------------------------------
|
||||||
|
DOB Yes Calculate exact age
|
||||||
|
DOB No Display DOB only
|
||||||
|
Approximate Age Yes Display approximate age unchanged
|
||||||
|
Approximate Age No Display approximate age unchanged
|
||||||
|
No age data Any Display unknown
|
||||||
|
|
||||||
|
## Key Philosophy
|
||||||
|
|
||||||
|
PlotDirector should function as an intelligent continuity assistant
|
||||||
|
rather than an automated co-author.
|
||||||
|
|
||||||
|
The system should:
|
||||||
|
|
||||||
|
- Calculate exact information when sufficient data exists.
|
||||||
|
- Preserve ambiguity when the author intentionally provides
|
||||||
|
approximate information.
|
||||||
|
- Never invent birthdays or age progression.
|
||||||
|
- Never assume precision beyond the information supplied.
|
||||||
|
|
||||||
|
This approach provides powerful continuity support for plot-critical
|
||||||
|
characters while remaining lightweight and flexible for secondary
|
||||||
|
characters.
|
||||||
Loading…
x
Reference in New Issue
Block a user