title: Construct Runtime V2 - An outer macro approach to define the runtime doc: - audience: Runtime Dev description: | Introduces `#[frame_support::runtime]` that can be attached to a mod to define a runtime. The items in this mod can be attached to the following attributes to define the key components of the runtime. 1. `#[runtime::runtime]` attached to a struct defines the main runtime 2. `#[runtime::derive]` attached to the runtime struct defines the types generated by the runtime 3. `#[runtime::pallet_index]` must be attached to a pallet to define its index 4. `#[runtime::disable_call]` can be optionally attached to a pallet to disable its calls 5. `#[runtime::disable_unsigned]` can be optionally attached to a pallet to disable unsigned calls 6. A pallet instance can be defined as `TemplateModule: pallet_template` An optional attribute can be defined as `#[frame_support::runtime(legacy_ordering)]` to ensure that the order of hooks is same as the order of pallets (and not based on the pallet_index). This is to support legacy runtimes and should be avoided for new ones. migrations: db: [] runtime: [] crates: - name: frame-support - name: frame-support-procedural host_functions: []