/* We could try, for instance, an 'inheritance' model borrowed from class-based OO programming */

// Containers
/* Containers are entities that can contain one or more objects, including other containers. They can also be empty. */

Container
Container::Book
Container::Page
Container::Word
Container::Sentence
Container::Paragraph
Container::Box
Container::Box::Figure
Container::Hyphenated::Pre
Container::Hyphenated::Post
Container::Frame
Container::Frame::Edge

// Components

Component
Component::Character
Component::Hyphen
Component::Image
Component::TextStreamComponent::Line/shape

// Alternative
Component::Text:Character
Component::Text::Stream
Component::Text::Hyphen


/* Containers can be visible or invisible (e.g. contour on text boxes) */
/* We should distinguish between text as a stream (source text) and text as an image (rendered text). */

// List of 'objects'