Model Attribute does not apply to every scenario

Given the following statement




    const SCENARIO_SPECIAL = 'scenario_special';


    public function rules()

    {

        return [

            ['id', 'required'],

        ];

    }

    

    public function scenarios()

    {

        return [

            self::SCENARIO_SPECIAL => []

        ];

    }



If attribute ‘id’ applies to every scenario, and ‘SCENARIO_SPECIAL’ is declared with no particular attributes attached to it. Why doesn’t ‘id’ apply to ‘SCENARIO_SPECIAL’?

I see now, the parent takes care of everything. First it finds the value of either "on" or "except" in every rule, and makes it an scenario. Second it finds rules that have no declared "on" or "except", and adds them to every scenario it just made. There is no catch-all scenario.