Package khipu is about encoding text into typesetting items.
“Khipu were recording devices fashioned from strings historically used by a number of cultures in the region of Andean South America. Khipu is the word for »knot« in Cusco Quechua. A khipu usually consisted of cotton or camelid fiber strings. The Inca people used them for collecting data and keeping records, monitoring tax obligations, properly collecting census records, calendrical information, and for military organization. The cords stored numeric and other values encoded as knots, often in a base ten positional system. A khipu could have only a few or thousands of cords.” ––Excerpt from a Wikipedia article about khipus
The Khipukamayuq (Quechua for “knot-makers”) were the scribes of those times, tasked with encoding tax figures and other administrative information in knots. We will use this analogy to call typesetting items “khipus” or “knots,” and objects which produce khipus will be “Khipukamayuq”s (I admit this is a tough one). Knots implement items for typesetting paragraphs.
A Khipukamayuq is part of a typsetting pipeline and will transform text into khipus. Khipus are the input for linebreakers. The overall process of creating them and the interaction with line breaking is fairly complicated, especially if one considers international scripts.
We will use a box-and-glue model and the various knot types more or less implement the corresponding node types from the TeX typesetting system. The diagram below depicts an approximation of the overall task flow for typesetting a single paragraph.