Skip to main content

Critical Requirements

Precise Element Identification

User Story

As someone reading or creating tatting patterns using TatML, I want every ring and chain to have a unique identifier so that complex patterns don't fall victim to the ambiguity introduced by a volume of multiple rings and chains across a large pattern.

Example

ring1, chain1, ring2

All numbering starts at 1 for craft user accessibility, instead of 0 as would be typical of programming languages. 

Explicit Picot Addressing

User Story

As someone reading or creating tatting patterns using TatML, I want each picot to be individually addressable so that I can indicate explicitly where a join must occur in order to resolve the potential for ambiguity in describing which picot to use when joining elements together within a pattern.

Example

ring1.picot1, ring1.picot2, chain1.picot1

Picot numbering starts at 1 and follows stitch order

Clear Join Syntax

User Story

As someone reading or creating tatting patterns using TatML, I want joins to include notation indicating exactly where the join must go to so that the structural composition of the pattern can be checked for possible errors.

Example

join(ring1.picot2), join(prev.picot1)

Thread Continuity Tracking

User Story

As someone reading or creating tatting patterns using TatML, I want to be sure that the pattern being analyzed guarantees continuity of the thread so that I know the construction of the piece depicted isn't impossible. 

Indexing Convention

User Story

As someone reading or creating tatting patterns using TatML, and who is not a computer programmer, I want TatML to begin counting with the number 1 so that it matches the natural counting I am used to in my life and in tatting patterns.