Though the product technically had just three primary screens, each carried its own cluster of possible states. Take the uploader alone: idle, uploading, parsing, generating, canceling, error handling, success—and variations within each. And that was before we considered what happens once the system interprets user input or an unpredictable AI prompt.