Question
#668 settled the shape of this decision for OpenRouter and its rules carry over:
- exact ids, never aliases — restated there as generation, never family, because the bare
gpt-5.6 alias silently routes across a 50× price range;
- membership requires a behavioural screen, not capability flags;
- the list is hardcoded and shipped, because the property it selects on is not in any catalogue that could be fetched;
- a stale entry must fail loudly.
Decide, with the probe results in hand: which ids, how many, which is the default, and what the rule is for revisiting the list. Sonnet won the last screen on measurement rather than price — 16/16 against haiku's 12/16 on hard photos — so cost alone is not the argument here either.
Also settle what AiModelCatalogue.forProvider returns for OpenAI and whether the direct-Anthropic path's single-entry precedent (no choice offered, because changing which model an existing user's requests go to is a silent behaviour change) applies to a provider nobody is using yet.
Question
#668 settled the shape of this decision for OpenRouter and its rules carry over:
gpt-5.6alias silently routes across a 50× price range;Decide, with the probe results in hand: which ids, how many, which is the default, and what the rule is for revisiting the list. Sonnet won the last screen on measurement rather than price — 16/16 against haiku's 12/16 on hard photos — so cost alone is not the argument here either.
Also settle what
AiModelCatalogue.forProviderreturns for OpenAI and whether the direct-Anthropic path's single-entry precedent (no choice offered, because changing which model an existing user's requests go to is a silent behaviour change) applies to a provider nobody is using yet.