def _decode_parameters_list(raw_parameters_list: list) -> List[ParameterSemantics]:
    parameters_list = []
    if (not raw_parameters_list):
        return parameters_list
    for raw_parameter_semantics in raw_parameters_list:
        if ('indexed' in raw_parameter_semantics):
            indexed = raw_parameter_semantics['indexed']
        else:
            indexed = False
        if ('dynamic' in raw_parameter_semantics):
            dynamic = raw_parameter_semantics['dynamic']
        else:
            dynamic = False
        if (raw_parameter_semantics['type'] == 'tuple'):
            components = _decode_parameters_list(raw_parameter_semantics['components'])
        else:
            components = []
        parameters_list.append(ParameterSemantics(raw_parameter_semantics['name'], raw_parameter_semantics['type'], components, indexed, dynamic))
    return parameters_list
def _decode_parameters_list(raw_parameters_list: list) -> List[ParameterSemantics]:
    parameters_list = []
    if (not raw_parameters_list):
        return parameters_list
    for raw_parameter_semantics in raw_parameters_list:
        if ('indexed' in raw_parameter_semantics):
            indexed = raw_parameter_semantics['indexed']
        else:
            indexed = False
        if ('dynamic' in raw_parameter_semantics):
            dynamic = raw_parameter_semantics['dynamic']
        else:
            dynamic = False
        if (raw_parameter_semantics['type'] == 'tuple'):
            components = _decode_parameters_list(raw_parameter_semantics['components'])
        else:
            components = []
        parameters_list.append(ParameterSemantics(raw_parameter_semantics['name'], raw_parameter_semantics['type'], components, indexed, dynamic))
    return parameters_list