{"openapi":"3.1.0","info":{"title":"Accretive Thinking local study API","version":"1.0.0","description":"Local-only interview practice. Candidate prompts omit direct answer fields. Numeric checks are not prose grading or hiring assessments."},"servers":[{"url":"http://127.0.0.1:8767","description":"Owner-run loopback preview; not a public hosted service"}],"paths":{"/api/questions":{"get":{"operationId":"listQuestions","summary":"List original practice questions","responses":{"200":{"description":"Question IDs, topics, titles and levels"}}}},"/api/questions/{id}":{"get":{"operationId":"getQuestion","summary":"Get a prompt without direct expected-answer fields","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Original question prompt and metadata"},"404":{"description":"Unknown question"}}}},"/api/check":{"post":{"operationId":"checkAnswer","summary":"Check only supplied numerical answers","description":"Local server requires an Origin header equal to its local host and port. Do not infer numbers or score prose. Candidate data stays local for this endpoint.","parameters":[{"name":"Origin","in":"header","required":true,"schema":{"type":"string","example":"http://127.0.0.1:8767"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["question_id","attempt","answers"],"properties":{"question_id":{"type":"string"},"attempt":{"type":"string","enum":["first","retry"]},"answers":{"type":"object","additionalProperties":{"type":"number"}}}},"example":{"question_id":"dcf-ufcf","attempt":"first","answers":{"ufcf":47.5}}}}},"responses":{"200":{"description":"Field-level checks, expected values, diagnoses, unanswered fields and limits"},"400":{"description":"Invalid answer payload"},"403":{"description":"Origin mismatch"}}}}}}
