{"schema":"neuro.selection.v1","protocolVersion":"1.0","methods":["SendMessage","GetTask","ListTasks","CancelTask"],"input":{"type":"object","additionalProperties":false,"required":["schema","action","answers"],"properties":{"schema":{"const":"neuro.selection.v1"},"action":{"enum":["match","prepare"]},"answers":{"type":"object","additionalProperties":false,"properties":{"goal":{"enum":["diagnosis","agent_readiness","visibility_program","neuro_pf","unsure"],"description":"The outcome explicitly requested by the user, not an inferred service. If the user has not chosen an outcome, omit goal or use unsure. A general problem or uncertainty does not establish diagnosis. First ask what outcome they want; use their answer on the next call. An explicitly requested audit or diagnostic plan can use diagnosis without asking the same question again."},"requirements":{"enum":["standard","integration","guarantee"]},"domains":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]},"html_pages":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]},"offers":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]},"existing_contact_routes":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]},"regions":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]},"directions":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]},"priority_clusters":{"anyOf":[{"type":"integer","minimum":1,"maximum":1000000},{"const":"unknown"}]}}}}},"instructions":["Provide only user-known answers. Unknown goal: omit or use unsure; ask the returned question before selecting a goal.","Continue with a fresh messageId on the returned taskId/contextId; answers are merged. A changed goal resets prior scope.","When draft_status=review_required, review returned terms before action=prepare. Preparation does not send an inquiry.","For an input question on a count, unknown is allowed; never invent a value.","Terminal tasks cannot be reopened. A new task may reuse an owned, unexpired contextId.","Same messageId/content is replayed without mutation and returns current task state. Changed content with the same ID is rejected.","Only one JSON DataPart is accepted. No text interpretation, files, callbacks or arbitrary URL fetching."],"storage":{"memoryOnly":false,"restartRecovery":true,"absoluteTtlSeconds":1800,"maxTasks":100,"maxTasksPerClient":30,"maxMessagesPerTask":32},"limits":{"bodyBytes":8192,"requestsPerMinutePerClient":120},"example":{"message":{"messageId":"unique-message-1","role":"ROLE_USER","parts":[{"data":{"schema":"neuro.selection.v1","action":"match","answers":{}},"mediaType":"application/json"}]}}}