private static void AddParameters()

in src/Core/Compiling/Policy/ValidateParametersCompiler.cs [203:245]


    private static void AddParameters(ICompilationContext context, InitializerValue parametersValue,
        XElement parentElement, string policyPath)
    {
        foreach (var paramValue in parametersValue.UnnamedValues ?? [])
        {
            if (!paramValue.TryGetValues<ValidateParameter>(out var paramValues))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.PolicyArgumentIsNotOfRequiredType,
                    paramValue.Node.GetLocation(),
                    $"{policyPath}.parameter",
                    nameof(ValidateParameter)
                ));
                continue;
            }

            XElement paramElement = new("parameter");

            if (!paramElement.AddAttribute(paramValues, nameof(ValidateParameter.Name), "name"))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.RequiredParameterNotDefined,
                    paramValue.Node.GetLocation(),
                    $"{policyPath}.parameter",
                    nameof(ValidateParameter.Name)
                ));
                continue;
            }

            if (!paramElement.AddAttribute(paramValues, nameof(ValidateParameter.Action), "action"))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.RequiredParameterNotDefined,
                    paramValue.Node.GetLocation(),
                    $"{policyPath}.parameter",
                    nameof(ValidateParameter.Action)
                ));
                continue;
            }

            parentElement.Add(paramElement);
        }
    }