Skip to content

Accept any value in Boolean parameters in canonical validation #285

Description

@e54-bot

Parent: #283. Decision: ADR-0014 (#284).

Goal

Canonical validation accepts any value in a Boolean parameter, as ADR-0014 decides for the Boolean family.

Context

validate_canonical_ids rejects non-Boolean values in Boolean parameters (for example Wait Until(Position Of(Event Player), 3)), which blocks programs that pinned OverPy 9.7.10 writes. OverPy's First Of wrapping is keyed on the Boolean parameter type, and the fix for Zezombye/overpy#182 states that every value can be put in a Boolean field. Under ADR-0014 this is type-scoped acceptance evidence, so it belongs in typed Rust, not in per-parameter catalog data.

Scope

  • A typed rule in value validation: a parameter whose declared type includes Boolean accepts any value. Structural checks (identity, arity, enum domain, reference category) are unchanged.
  • Remove per-parameter widenings that only existed to admit non-Boolean values in a Boolean position and are now subsumed, if any.
  • Record the evidence in docs/source-attribution/catalog.md and the language-support docs where they describe parameter typing.

Non-goals

  • Modelling the values the client rejects in a Boolean position (possible later with rejection evidence).
  • Arrays in Object parameters or numbers in Vector parameters (they stay rejected).

Acceptance criteria

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions