Choice vs Score vs Noul
TypeSafe exposes three primitives. You can mix them in a single questions map. Every question is evaluated in parallel against the same state.
| Type | Question you are asking | Returns |
|---|---|---|
| Choice | Which of these options? | choice, probabilities, confidence |
| Score | Which level on this ordered rubric? | score, legend, probabilities, confidence |
| Noul | Is this true? | noul from 0 to 1 |
How to pick
Official guidance:
- Choice when the answer is one of a known, unordered set: department, document type, language. Add
otherornone of the aboveif the list might not cover every input. Maximum 255 options. - Score when the answer sits on a spectrum you can describe: severity, frustration, skill. At least two levels, at most 10.
- Noul for a clean yes/no where the probability itself is the signal: refund requested, PII present, resume mentions distributed systems.
Do not use a Noul of 0.5 as “medium skill.” That value means yes and no are equally likely, not that the candidate is intermediate. Measure skill with a Score whose levels you define.
If two types both fit, pick the one your code can act on directly: Choice → code paths, Score → threshold, Noul → if.
Shared request fields
Every question has an ID, type, and instructions. Choice and Score require criteria. Noul accepts optional criteria that describe what yes and no mean.
instructions may be a string, object, or array. Structured instructions put the question in one field and supporting data in others; refer to those fields with backticks.
Independence
Answers are constrained to the options you supplied. They are also independent: adding or removing a question does not become hidden context for the others. That is why batching is the default and second requests are the exception.
Sources
Public TypeSafe or adjacent documentation only. No private claims.