We may want to provide a number of options for allocating and managing context types, but making them impossible to use without the runtime<N> type seems a bit too restrictive. The benefit of the runtime<N> is that it technically reduces the memory cost of a context by sharing the core information across N context types. Runtime contains the transition_handler that is accessible via the runtime_base type.