Show HN: Compile-time model-id validation with declared capability A new Rust crate, `openrouter_toolkit`, introduces a compile-time macro `model_supports!` that validates OpenRouter model IDs and their declared capabilities against a vendored index. The macro catches unknown or unsupported capabilities—such as `param::toolz` or `input::image` on incompatible models—as compiler errors, preventing runtime failures. This tool enables developers to enforce model capability requirements at build time, reducing debugging time and ensuring only valid model configurations are deployed. Compile-time checked OpenRouter model ids. model supports validates a model id and its required capabilities against a vendored OpenRouter index, then expands to the model id string. js use openrouter toolkit::model supports; const MODEL: &str = model supports "openai/gpt-5.4", param::tools, input::image, output::text, ; Dynamic variants work too: js const MODEL: &str = model supports "moonshotai/kimi-k2-0905:exacto", param::tools ; param:: — request parameters e.g. param::tools input:: — input modalities e.g. input::image output:: — output modalities e.g. output::text Unknown capability: js const MODEL: &str = model supports "qwen/qwen3.7-max", param::toolz ; error: unknown OpenRouter capability param::toolz ; did you mean param::tools ? Capability not supported by the model: js const MODEL: &str = model supports "qwen/qwen3.7-max", input::image ; error: OpenRouter model qwen/qwen3.7-max does not support required capability s : input::image