// Contract: this behavior owns only the homepage example, never saved progress. // Choosing clears stale feedback. Checking distinguishes a missing, correct, // or incorrect choice. Native disclosure remains if the runtime cannot mount. #try-a-question !as(sample) { selected: ''; enhanced: false; fallback: true; needsChoice: false; correct: false; incorrect: false; answered: false; construct { sample.enhanced = true; sample.fallback = false; } choose(choice) { sample.selected = choice; sample.needsChoice = false; sample.correct = false; sample.incorrect = false; sample.answered = false; } checkAnswer() { sample.needsChoice = sample.selected == ''; sample.correct = sample.selected == 'b'; sample.incorrect = sample.selected != '' && sample.selected != 'b'; sample.answered = sample.correct || sample.incorrect; } }