Currently the engine must know about all available frameworks, to expose a list via the RuntimeFrameworkService to a runner, and validate the RequestedRuntimeFramework option.
This is a source of technical debt and a maintenance requirement for a number of legacy runtimes, and new runtimes that become available. We need to decide what this functionality would look like in a world of dynamic runtime availability and pluggable agents. Should the agent be responsible for announcing what frameworks it can run on?