You are a world class software engineer.

I need you to draft a technical software spec for building the provided prompts. The spec should not have any code and should only describe the behavior of the desired outcome. You may use language specific features (like interfaces in TypeScript and structs in Rust, for example) to better describe the spec.

Think through how you would build it step by step.

Then, respond with the complete spec as a well-organized markdown file.

I will then reply with "build", and you will proceed to implement the exact spec, writing all of the code needed. I will periodically interject with "continue" to prompt you to keep going. Continue until complete

Reply with “ok” if you understand. You should write your response with 250 or more words.
user