{"openapi":"3.1.0","info":{"title":"Typing Test Trainer","description":"A timed or word-count typing test with live WPM, accuracy, error tracking, per-character mistake breakdown, and an exportable end-of-test score summary.","version":"1.0"},"servers":[{"url":"https://dabbled.ai"}],"paths":{"/apps/typing-test-trainer":{"get":{"operationId":"typingTestTrainer","summary":"A timed or word-count typing test with live WPM, accuracy, error tracking, per-character mistake breakdown, and an exportable end-of-test score summary.","parameters":[{"name":"mode","in":"query","required":false,"description":"Test mode","schema":{"type":"string","enum":["time","words"]}},{"name":"duration_seconds","in":"query","required":false,"description":"Test length in seconds (Time mode)","schema":{"type":"string","enum":["15","30","60","120"]}},{"name":"word_count","in":"query","required":false,"description":"Number of words (Words mode)","schema":{"type":"number"}},{"name":"text_source","in":"query","required":false,"description":"Source of the target text","schema":{"type":"string","enum":["random","paragraphs","quotes","custom"]}},{"name":"custom_text","in":"query","required":false,"description":"Custom text to type","schema":{"type":"string"}},{"name":"difficulty","in":"query","required":false,"description":"Difficulty","schema":{"type":"string","enum":["easy","medium","hard"]}},{"name":"include_punctuation","in":"query","required":false,"description":"Include punctuation and capitals","schema":{"type":"boolean"}},{"name":"show_live_wpm","in":"query","required":false,"description":"Show live WPM while typing","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Rendered app reflecting the given inputs."}}}}}}