Shared model facts live in typed capability, limits, and pricing objects. Provider-specific behavior is queried with typed operation values and S7 dispatch, avoiding a lowest-common-denominator boolean map.
Details
Provider turns are independent of byte transport. rho_stream() always
returns normalized assistant events whether an implementation uses SSE,
WebSocket, an embedded model, or a remote evaluator. ProviderTransport
values describe executable strategies. AutomaticTransport is a selection
policy rather than a model capability. rho_select_provider_transport()
records the selected strategy and reason; rho_open_provider_transport()
is the provider-open execution point.