{
  "code": "S109",
  "name": "Local choice",
  "shape": "local-choice",
  "family": "Inputs and interaction",
  "fits": "A compact question above four full-width selection rows and a local confirmation.",
  "use_when": "Which option should I choose or prioritize?",
  "slots": [
    {
      "name": "question",
      "holds": "A real question with a finite valid answer set",
      "budget": "one sentence"
    },
    {
      "name": "choices",
      "holds": "Distinct options with accurate labels; optional explanations",
      "budget": "4 choices"
    },
    {
      "name": "selection",
      "holds": "Only the current user selection or priority order",
      "budget": "local state"
    }
  ],
  "columns": 1,
  "density": "standard",
  "surface": "paper",
  "works_on": [
    "page",
    "deck"
  ],
  "library": "Cult UI",
  "dir": "S109-local-choice",
  "semantic": {
    "audience_question": "Which one of these four choices best answers this question?",
    "intent": "Make a finite local selection and see its current confirmation.",
    "reasoning_relation": "choice and local confirmation",
    "message_pattern": "A compact question above four full-width selection rows and a local confirmation.",
    "required_content": [
      "One unambiguous question with a clear choice criterion.",
      "Four meaningful alternatives at the same level; use distinct labels and values.",
      "Truthful local status before and after confirmation, derived from the selected choice."
    ],
    "narrative_positions": [
      "utility interaction",
      "reference"
    ],
    "requires_before": [
      "Explain the objective and constraints for the choice."
    ],
    "enables_after": [
      "Discuss the reason for the selected option or record it through a real workflow."
    ],
    "slot_roles": {
      "question": "One unambiguous question with a clear choice criterion.",
      "choices": "Four meaningful alternatives at the same level; use distinct labels and values.",
      "selection": "Truthful local status before and after confirmation, derived from the selected choice."
    },
    "avoid_when": [
      "An audience vote without collection infrastructure.",
      "A multi-select or ranked decision presented as one choice."
    ],
    "layout_specific_contract": "A compact question above four full-width selection rows and a local confirmation.",
    "variation_rule": "Read the selected markup and option source before adapting; maintain honest state and keyboard equivalents.",
    "provenance": {
      "basis": "Captured source arrangement and independent native adaptation",
      "review": "Facet model-authored guidance for Nic-authorized catalogue intake, 2026-10-10",
      "corpus_evidence_status": "not established",
      "guide": "../SEMANTICS.md"
    },
    "reader_outcome": "Make a finite local selection and see its current confirmation.",
    "matching": {
      "audience_question": "Which one of these four choices best answers this question?",
      "reader_outcome": "Make a finite local selection and see its current confirmation.",
      "reasoning_relation": "choice and local confirmation",
      "content_shape": {
        "composition": "A compact question above four full-width selection rows and a local confirmation.",
        "selected_state": "A compact question above four full-width selection rows and a local confirmation.",
        "density": "standard",
        "columns": 1,
        "column_note": "Base metadata only; selected option can replace the base geometry."
      },
      "required_slots": [
        {
          "name": "question",
          "reader_question": "What does the question contribute to this page’s reader outcome?",
          "semantic_role": "One unambiguous question with a clear choice criterion.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · question · A real question with a finite valid answer set]",
          "layout_budget": {
            "authored": "one sentence",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "question",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              5
            ]
          }
        },
        {
          "name": "choices",
          "reader_question": "What does the choices contribute to this page’s reader outcome?",
          "semantic_role": "Four meaningful alternatives at the same level; use distinct labels and values.",
          "content_unit_count": {
            "min": 4,
            "max": 4,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · choices · Distinct options with accurate labels; optional explanations]",
          "layout_budget": {
            "authored": "4 choices",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "choices",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              11
            ]
          }
        },
        {
          "name": "selection",
          "reader_question": "What action is actually available, and what does taking it change?",
          "semantic_role": "Truthful local status before and after confirmation, derived from the selected choice.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · selection · Only the current user selection or priority order]",
          "layout_budget": {
            "authored": "local state",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "selection",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              3
            ]
          }
        }
      ],
      "rejection_constraints": [
        "Local selection represented as a sent vote, invented totals or choices that are not mutually distinct.",
        "Fabricating vote totals, percentages or submission success."
      ],
      "option_guidance": {
        "option": "default",
        "composition_delta": "A compact question above four full-width selection rows and a local confirmation.",
        "semantic_change": "retains base content relationship; changes presentation or disclosure",
        "matching_instruction": "Select S109 default when the supplied material answers “Which one of these four choices best answers this question?” through choice and local confirmation. Respect this state: A compact question above four full-width selection rows and a local confirmation."
      },
      "provenance": {
        "status": "inferred composition evidence",
        "author_intent": "not independently confirmed",
        "basis": [
          "retained source composition where available",
          "authored layout and slot contracts",
          "static implementation inspection"
        ],
        "source_visual_count": 2,
        "source_visual_sha256": [
          "c7c51191c1a0e97e3fc25a51c5a151a912597e1af899953889a6427272c2ea37",
          "b75fd027558ffc2d2c47c80826303ca8c6bfea5c628ade1f826460bdddd8b84e"
        ],
        "source_export": "private source images remain outside this draft site",
        "markup_sha256": "39859b31b35efca4d1a39ff095a1da53177c24312a82fcffef921460addfc300",
        "limits": [
          "Static parsing inventories authored nodes; it does not certify rendered visibility, responsive fit or interactive state.",
          "Budgets are authored layout guidance, not a content-writing limit or proof of fit.",
          "Matching guidance is a draft inference; it does not establish facts, endorsement, causation or source author intent."
        ]
      },
      "adaptation_rules": [
        "Choose by audience question, reasoning relation and required content before aesthetic preference.",
        "Supply every required semantic role; retain visible unknowns as labelled real-content placeholders.",
        "A number needs source, scope and units; a quotation needs faithful wording and attribution.",
        "Do not infer importance from area, colour, depth or movement unless the content explicitly defines that encoding.",
        "Keep colour token roles, structural objects, licences and source records; changing content does not authorize changing them."
      ]
    },
    "rejection_constraints": [
      "Local selection represented as a sent vote, invented totals or choices that are not mutually distinct.",
      "Fabricating vote totals, percentages or submission success."
    ],
    "markup_inventory": {
      "file": "spread.html",
      "sha256": "39859b31b35efca4d1a39ff095a1da53177c24312a82fcffef921460addfc300",
      "method": "static lxml markup plus authored option description; no rendered-visibility claim",
      "all_markup_slot_counts": {
        "question": 1,
        "choices": 1,
        "selection": 1
      },
      "slot_evidence": {
        "question": [
          {
            "tag": "h2",
            "classes": "",
            "sample_word_count": 5,
            "repeated_children": 0
          }
        ],
        "choices": [
          {
            "tag": "fieldset",
            "classes": "",
            "sample_word_count": 11,
            "repeated_children": 5
          }
        ],
        "selection": [
          {
            "tag": "p",
            "classes": "cult-status",
            "sample_word_count": 3,
            "repeated_children": 0
          }
        ]
      },
      "option_selectors": [],
      "linked_implementation": [
        {
          "file": "../spreads.css",
          "sha256": "32da94472b0c9131e4d5dae7d5bf0498b09202a9e66294b4e4f23e6ddfbf37ba"
        },
        {
          "file": "../cult-compositions.css",
          "sha256": "60b8f53285fa1744a3d11eed0ebdeeaea517f5da2b8789cc799a943f21cb3012"
        },
        {
          "file": "../spread.js",
          "sha256": "3d99948b83f750bd4ae95dac08e3e50a395de7c149c90a6f1a1c0ea36a2634a4"
        },
        {
          "file": "../cult-compositions.js",
          "sha256": "45b2e1a623a2e1eb56f5aa8cd1b295c9765a0965117852e5dd3cb585f3437d4c"
        }
      ]
    },
    "variations": {
      "ranked-list": {
        "audience_question": "What priority order do I assign to this finite set?",
        "intent": "Arrange local priorities while keeping every item accessible.",
        "reader_outcome": "Arrange local priorities while keeping every item accessible.",
        "reasoning_relation": "local ordinal prioritization",
        "slot_roles": {
          "question": "One unambiguous question with a clear choice criterion.",
          "choices": "Four ranked-panel items in their current order, not the hidden radio choices or the source’s five vote-tally rows.",
          "selection": "Truthful local status before and after confirmation, derived from the selected choice."
        },
        "matching": {
          "audience_question": "What priority order do I assign to this finite set?",
          "reader_outcome": "Arrange local priorities while keeping every item accessible.",
          "reasoning_relation": "local ordinal prioritization",
          "content_shape": {
            "composition": "A compact question above four full-width selection rows and a local confirmation.",
            "selected_state": "Source-supported tally row arrangement adapted to local priority ordering with drag and explicit Up/Down controls; no vote counts.",
            "density": "standard",
            "columns": 1,
            "column_note": "Base metadata only; selected option can replace the base geometry."
          },
          "required_slots": [
            {
              "name": "question",
              "reader_question": "What does the question contribute to this page’s reader outcome?",
              "semantic_role": "One unambiguous question with a clear choice criterion.",
              "content_unit_count": {
                "min": 1,
                "max": 1,
                "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
              },
              "placeholder": "[REAL CONTENT · question · A real question with a finite valid answer set]",
              "layout_budget": {
                "authored": "one sentence",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "question",
                "occurrences": 1,
                "annotation_status": "Semantic role explicitly mapped to authored selector; do not infer a data-slot with this name.",
                "visibility_status": "Selected-state structure inspected; conditional or decorative regions can be absent in narrow/complete states.",
                "sample_word_counts": [
                  5
                ],
                "selector": ".ranked-panel h2"
              }
            },
            {
              "name": "choices",
              "reader_question": "What does the choices contribute to this page’s reader outcome?",
              "semantic_role": "Four ranked-panel items in their current order, not the hidden radio choices or the source’s five vote-tally rows.",
              "content_unit_count": {
                "min": 4,
                "max": 4,
                "basis": "Authored visible members in the selected arrangement; annotation occurrences can differ."
              },
              "placeholder": "[REAL CONTENT · choices · Five distinct priority items, each with an accurate short label and explanation.]",
              "layout_budget": {
                "authored": "5 items; one current local order",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "choices",
                "occurrences": 1,
                "annotation_status": "Semantic role explicitly mapped to authored selector; do not infer a data-slot with this name.",
                "visibility_status": "Selected-state structure inspected; conditional or decorative regions can be absent in narrow/complete states.",
                "sample_word_counts": [
                  11
                ],
                "selector": ".ranked-panel ol"
              }
            },
            {
              "name": "selection",
              "reader_question": "What action is actually available, and what does taking it change?",
              "semantic_role": "Truthful local status before and after confirmation, derived from the selected choice.",
              "content_unit_count": {
                "min": 1,
                "max": 1,
                "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
              },
              "placeholder": "[REAL CONTENT · selection · Only the current user selection or priority order]",
              "layout_budget": {
                "authored": "local state",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "selection",
                "occurrences": 1,
                "annotation_status": "Semantic role explicitly mapped to authored selector; do not infer a data-slot with this name.",
                "visibility_status": "Selected-state structure inspected; conditional or decorative regions can be absent in narrow/complete states.",
                "sample_word_counts": [
                  3
                ],
                "selector": "[data-rank-status]"
              }
            }
          ],
          "rejection_constraints": [
            "Order treated as public votes, aggregated popularity or persisted shared ranking.",
            "Fabricating vote totals, percentages or submission success."
          ],
          "option_guidance": {
            "option": "ranked-list",
            "composition_delta": "Source-supported tally row arrangement adapted to local priority ordering with drag and explicit Up/Down controls; no vote counts.",
            "semantic_change": "changes content relationship",
            "matching_instruction": "Select S109 ranked-list when the supplied material answers “What priority order do I assign to this finite set?” through local ordinal prioritization. Respect this state: Source-supported tally row arrangement adapted to local priority ordering with drag and explicit Up/Down controls; no vote counts."
          },
          "provenance": {
            "status": "inferred composition evidence",
            "author_intent": "not independently confirmed",
            "basis": [
              "retained source composition where available",
              "authored layout and slot contracts",
              "static implementation inspection"
            ],
            "source_visual_count": 2,
            "source_visual_sha256": [
              "c7c51191c1a0e97e3fc25a51c5a151a912597e1af899953889a6427272c2ea37",
              "b75fd027558ffc2d2c47c80826303ca8c6bfea5c628ade1f826460bdddd8b84e"
            ],
            "source_export": "private source images remain outside this draft site",
            "markup_sha256": "39859b31b35efca4d1a39ff095a1da53177c24312a82fcffef921460addfc300",
            "limits": [
              "Static parsing inventories authored nodes; it does not certify rendered visibility, responsive fit or interactive state.",
              "Budgets are authored layout guidance, not a content-writing limit or proof of fit.",
              "Matching guidance is a draft inference; it does not establish facts, endorsement, causation or source author intent."
            ]
          },
          "adaptation_rules": [
            "Choose by audience question, reasoning relation and required content before aesthetic preference.",
            "Supply every required semantic role; retain visible unknowns as labelled real-content placeholders.",
            "A number needs source, scope and units; a quotation needs faithful wording and attribution.",
            "Do not infer importance from area, colour, depth or movement unless the content explicitly defines that encoding.",
            "Keep colour token roles, structural objects, licences and source records; changing content does not authorize changing them."
          ],
          "previous_required_slots": [
            {
              "name": "question",
              "reader_question": "What does the question contribute to this page’s reader outcome?",
              "semantic_role": "A real question with a finite valid answer set",
              "content_unit_count": {
                "min": 1,
                "max": 1,
                "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
              },
              "placeholder": "[REAL CONTENT · question · A real question with a finite valid answer set]",
              "layout_budget": {
                "authored": "one sentence",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "question",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  5
                ]
              }
            },
            {
              "name": "choices",
              "reader_question": "What does the choices contribute to this page’s reader outcome?",
              "semantic_role": "Five distinct priority items, each with an accurate short label and explanation.",
              "content_unit_count": {
                "min": 5,
                "max": 5,
                "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
              },
              "placeholder": "[REAL CONTENT · choices · Five distinct priority items, each with an accurate short label and explanation.]",
              "layout_budget": {
                "authored": "5 items; one current local order",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "choices",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  11
                ]
              }
            },
            {
              "name": "selection",
              "reader_question": "What action is actually available, and what does taking it change?",
              "semantic_role": "Only the current user selection or priority order",
              "content_unit_count": {
                "min": 1,
                "max": 1,
                "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
              },
              "placeholder": "[REAL CONTENT · selection · Only the current user selection or priority order]",
              "layout_budget": {
                "authored": "local state",
                "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
              },
              "markup": {
                "slot": "selection",
                "occurrences": 1,
                "annotation_status": "present",
                "visibility_status": "not asserted from static parsing",
                "sample_word_counts": [
                  3
                ]
              }
            }
          ],
          "contract_correction": {
            "date": "2026-10-13",
            "basis": "Actual selected HTML/CSS inspection; previous required slots retained for review.",
            "records": [
              {
                "code": "S109",
                "option": "ranked-list",
                "counts": {
                  "choices": 4
                },
                "selectors": {
                  "question": ".ranked-panel h2",
                  "choices": ".ranked-panel ol",
                  "selection": "[data-rank-status]"
                }
              }
            ]
          }
        },
        "narrative_profile": {
          "central_point": "A finite set can be ordered by a declared priority criterion without inventing vote totals.",
          "communication_job": "Arrange four priorities into a local ordinal order using drag or Up/Down controls.",
          "audience_value": "Offers a way to express an ordinal preference across a finite set. It addresses “What comes before what under this criterion?” without measuring strength of preference or audience consensus.",
          "reading_path": [
            "Read the ranking criterion.",
            "Review all four items.",
            "Move items into the desired priority order.",
            "Read rank labels as ordinal positions, not votes or strength of preference."
          ],
          "adaptation": {
            "required_inputs": [
              "One unambiguous question with a clear choice criterion.",
              "Four meaningful alternatives at the same level; use distinct labels and values.",
              "Truthful local status before and after confirmation, derived from the selected choice."
            ],
            "slot_guidance": {
              "question": "One unambiguous question with a clear choice criterion.",
              "choices": "Four ranked-panel items in their current order, not the hidden radio choices or the source’s five vote-tally rows.",
              "selection": "Truthful local status before and after confirmation, derived from the selected choice."
            },
            "can_change": [
              "Replace the fictional subject and its supported content while retaining the roles and relationship described here."
            ],
            "must_survive": [
              "Keep options comparable and the criterion explicit.",
              "Local confirmation is not transmission or durable storage.",
              "No aggregate percentages, votes or popularity claims should appear."
            ]
          },
          "worked_example": {
            "fictional": true,
            "scenario": "Fictional Cedar uses a workshop discussion to elicit one person’s immediate priority.",
            "slot_fills": {
              "question": "Arrange Cedar’s preparation priorities",
              "choices": [
                "Clarify the safety checklist",
                "Rehearse volunteer intake",
                "Label the tool storage",
                "Improve referral information"
              ],
              "selection": "Initial fictional priority order; changes are local and reset with the page."
            },
            "reasoning": "The four items are ordered by preparation urgency. Position expresses this local preference only; moving an item does not generate a vote total or prove that the order is optimal.",
            "qualification": "Fictional teaching example. Replace invented details with authorised content and keep any source, scope, status or uncertainty that affects interpretation."
          },
          "narrative_fit": {
            "before": "Define the criterion and whether ties or dependencies matter.",
            "after": "Discuss the tradeoff behind the order or record the chosen priorities in a real workflow.",
            "good_uses": [
              "A local prioritisation exercise."
            ],
            "poor_fits": [
              "A vote tally.",
              "A dependency plan or cardinal scoring model."
            ]
          },
          "evidence": {
            "observations": [
              "Viewed source: one question, four radio choices and a submit-vote action.",
              "Current adaptation confirms only local choice and explicitly states no aggregate results are shown or sent.",
              "Current option markup/CSS: Arrange four priorities into a local ordinal order using drag or Up/Down controls.",
              "Viewed source-opt-ranked-list.webp: five rows have vote tallies. Current adaptation instead has four rows, ordinal priority labels and no votes; its ranked-panel has no data-slot annotations.",
              "Corrected ranked-list matching explicitly targets .ranked-panel h2, .ranked-panel ol and [data-rank-status], with four priority items."
            ],
            "interpretations": [
              "One local selection records which of four alternatives best answers a clearly posed question. This is an interpretation of the inspected composition, not a verified claim of author intent."
            ],
            "not_verified": [
              "Original author intent, historical claims, persuasion and archive-wide frequency have not been independently verified."
            ],
            "references": [
              "02_product/spreads/S109-local-choice/source.webp",
              "02_product/spreads-semantics-2026-10-13/dist/S109-local-choice/spread.html",
              "02_product/spreads-semantics-2026-10-13/dist/S109-local-choice/spread.json",
              "https://www.cult-ui.com/docs/components/choice-poll",
              "02_product/spreads/S109-local-choice/source-opt-ranked-list.webp"
            ]
          },
          "review": {
            "status": "reviewed",
            "basis": "Viewed the base source capture and inspected this option’s current markup, CSS and matching contract. No distinct option-source capture was reviewed unless explicitly stated in observations. Rechecked integrated matching on 2026-10-13: required roles, example fills and repeated-item counts agree. Previously provisional because matching targeted the hidden choice panel and claimed five items. Explicit ranked-panel selectors now map the question, four ordered choices and local status; this remains a local priority ordering, not a source vote tally. Historical issue details remain in contract-issues-reading.json. This review does not establish original author intent or verify playback."
          },
          "variation_relationship": "different-job"
        },
        "required_content": [
          "One unambiguous question with a clear choice criterion.",
          "Four meaningful alternatives at the same level; use distinct labels and values.",
          "Truthful local status before and after confirmation, derived from the selected choice."
        ],
        "requires_before": [
          "Define the criterion and whether ties or dependencies matter."
        ],
        "enables_after": [
          "Discuss the tradeoff behind the order or record the chosen priorities in a real workflow."
        ],
        "avoid_when": [
          "A vote tally.",
          "A dependency plan or cardinal scoring model."
        ]
      }
    },
    "narrative_profile": {
      "central_point": "One local selection records which of four alternatives best answers a clearly posed question.",
      "communication_job": "Let a reader express a single preference and see the state they selected.",
      "audience_value": "Offers reflection and clarification. It answers “Which option fits my need?” without inventing a poll result, consensus or recommendation.",
      "reading_path": [
        "Read the question and its selection criterion.",
        "Compare the four labelled choices under that criterion.",
        "Select one and confirm locally.",
        "Read the confirmation as this browser’s state, not a submitted audience vote."
      ],
      "adaptation": {
        "required_inputs": [
          "One unambiguous question with a clear choice criterion.",
          "Four meaningful alternatives at the same level; use distinct labels and values.",
          "Truthful local status before and after confirmation, derived from the selected choice."
        ],
        "slot_guidance": {
          "question": "One unambiguous question with a clear choice criterion.",
          "choices": "Four meaningful alternatives at the same level; use distinct labels and values.",
          "selection": "Truthful local status before and after confirmation, derived from the selected choice."
        },
        "can_change": [
          "Replace the fictional subject and its supported content while retaining the roles and relationship described here."
        ],
        "must_survive": [
          "Keep options comparable and the criterion explicit.",
          "Local confirmation is not transmission or durable storage.",
          "No aggregate percentages, votes or popularity claims should appear."
        ]
      },
      "worked_example": {
        "fictional": true,
        "scenario": "Fictional Cedar uses a workshop discussion to elicit one person’s immediate priority.",
        "slot_fills": {
          "question": "Which workshop preparation issue should Cedar address first?",
          "choices": [
            "Clarify the safety checklist",
            "Label the tool storage",
            "Rehearse volunteer intake",
            "Improve referral information"
          ],
          "selection": "No choice confirmed; after selection: “Confirmed locally: Rehearse volunteer intake”."
        },
        "reasoning": "The question asks for one first priority. The local answer is a preference under that question, not evidence about all participants.",
        "qualification": "Fictional teaching example. Replace invented details with authorised content and keep any source, scope, status or uncertainty that affects interpretation."
      },
      "narrative_fit": {
        "before": "Explain the objective and constraints for the choice.",
        "after": "Discuss the reason for the selected option or record it through a real workflow.",
        "good_uses": [
          "A local preference exercise.",
          "A prototype of a one-choice interaction."
        ],
        "poor_fits": [
          "An audience vote without collection infrastructure.",
          "A multi-select or ranked decision presented as one choice."
        ]
      },
      "evidence": {
        "observations": [
          "Viewed source: one question, four radio choices and a submit-vote action.",
          "Current adaptation confirms only local choice and explicitly states no aggregate results are shown or sent."
        ],
        "interpretations": [
          "One local selection records which of four alternatives best answers a clearly posed question. This is an interpretation of the inspected composition, not a verified claim of author intent."
        ],
        "not_verified": [
          "Original author intent, historical claims, persuasion and archive-wide frequency have not been independently verified."
        ],
        "references": [
          "02_product/spreads/S109-local-choice/source.webp",
          "02_product/spreads-semantics-2026-10-13/dist/S109-local-choice/spread.html",
          "02_product/spreads-semantics-2026-10-13/dist/S109-local-choice/spread.json",
          "https://www.cult-ui.com/docs/components/choice-poll"
        ]
      },
      "review": {
        "status": "reviewed",
        "basis": "Viewed the retained base source capture and inspected current HTML and matching slots; reviewed the fictional adaptation at layout-contract level."
      },
      "variation_relationship": "base"
    }
  },
  "behaviour": {
    "script": "../cult-compositions.js",
    "record": "motion-native.json",
    "reduced_motion": "Complete readable content, local controls retained; optional terminal typing skipped.",
    "no_script": "Complete authored content; native radio/input/select controls remain. No local confirmation, movement, tabs or playback without script.",
    "network": "Local preview only. No submission, command execution or file transmission.",
    "limits": "Volatile browser state; reload restores authored examples."
  },
  "options": [
    {
      "id": "ranked-list",
      "what": "Source-supported tally row arrangement adapted to local priority ordering with drag and explicit Up/Down controls; no vote counts.",
      "sources": [
        {
          "ref": "Cult UI Vote Tally",
          "url": "https://www.cult-ui.com/docs/components/vote-tally"
        }
      ]
    }
  ],
  "also_seen_in": [],
  "source": {
    "ref": "Cult UI Choice Poll",
    "url": "https://www.cult-ui.com/docs/components/choice-poll"
  }
}
