| 
Form 
 
Formwstring Name
 wstring Description
 0:A stanzas
 M:M Locale
 byte How flexible is form (what percentage of broken rules to total rules before form itself broken)
 M:0 Help
 enum Special Nature (none, acrostic, alphabetical acrostic, prose, concrete (& go no further!))
 0:A Repeat
 0:A Rhyme Pattern
 0:A Syllable Stress Pattern
 
StanzaM:1 Form
 bool Repeatable
 bool Optional
 wstring comment (e.g. chorus, strophe, antistrophe, epode, etc..)
 1:A lines
 bool Is line count fixed
 0:A Repeat
 0:A Rhyme Pattern
 0:A Syllable Stress Pattern
 
Repeatlineno Line repeated
 byte Repeat count
 enum Nature of repeat count (absolute, relative, at least n, at most n, ad nauseum)
 
Rhyme Patternlineno Line rhymed
 enum Nature (end of line, specific word, specific syllable, neighbouring word)
 uint Word / Syllable number
 
Syllable Stress Patternuint Stressed syllable number
 
LineM:1 Stanza
 bool Is start of stanza
 M:0 Metre (0 for irrelevant, e.g. clerihew)
 0:M Effects
 
EffectM:1 Line
 enum Position Type (syllable number, word number, "Beginning", "End", "Middle", "Anywhere")
 ushort Position value
 bool Is effect optional
 enum Type of effect (rhyme, pararhyme, alliteration, ...) [effects need more study for word manipulation]
 
Metrewstring Name
 ushort Syllable count
 enum Stress scheme (enum, one of basic, sprung, or none)
 enum Stress pattern (must fit standard names in somewhere, e.g. trochee, iamb, blah blah blah)
 |  
 data
 
 arts & ego
 dish dosh
 © & licence
 
 Files
 Context
 Poem
 Dictionary
 Form
 Phoneme
 Effect
 Option
 Configuration
 Notes
 
 |