public static function get_fragment_parameters() {
        return new external_function_parameters(
            array(
                'component' => new external_value(PARAM_COMPONENT, 'Component for the callback e.g. mod_assign'),
                'callback' => new external_value(PARAM_ALPHANUMEXT, 'Name of the callback to execute'),
                'contextid' => new external_value(PARAM_INT, 'Context ID that the fragment is from'),
                'args' => new external_multiple_structure(
                    new external_single_structure(
                        array(
                            'name' => new external_value(PARAM_ALPHANUMEXT, 'param name'),
                            'value' => new external_value(PARAM_RAW, 'param value')
                        )
                    ), 'args for the callback are optional', VALUE_OPTIONAL
                )
            )
        );
    }