Skip to content

0004 String answers, slots and three scoring rules

  • Status: accepted (2026-10-29)
  • Answers on the wire are Record<slotId, string>; flags are "true". Any language can store and grade them.
  • Components produce slots of registered kinds (text, number, choice, flag, or your own); each graded component is one scoring group with rule all-correct, per-slot or proportional (exact, not rounded).
  • all-correct groups with several slots report only the group verdict, so feedback cannot be used to probe which part is wrong. Unselected flags get no verdict; a group with nothing selected is empty.
  • Text comparison profiles are stored inside each key, so a published key grades the same forever.

The grading contract is small enough to port (about 200 lines) and is pinned by conformance fixtures.

  • Amended 2026-10-30: a definition may grade its component in parts (groups(), a crossword's words), one group per part with the component's rule and points, where a slot may sit in several groups; keys keep their format, so any engine grades them. The built-in letter kind (one letter, in capitals of the content language) joins the slot kinds.