string, 'label' => string, 'apply' => callable( array $state, array $action ): array ]. */ public static function register( array $definition ) { if ( empty( $definition['id'] ) || ! is_callable( $definition['apply'] ?? null ) ) { throw new \InvalidArgumentException( 'Action_Registry::register() requires an id and an apply callable.' ); } self::$actions[ $definition['id'] ] = $definition; } public static function get( $id ) { return self::$actions[ $id ] ?? null; } public static function all() { return array_values( self::$actions ); } }