Usar uma função em action exige um formulário POST com
application/x-www-form-urlencoded. A função precisa declarar @action,
que publica seu endpoint. Cada parâmetro deve declarar explicitamente
str, int, float ou bool.
Parâmetros opcionais, variádicos, desestruturados, coleções e registros precisam de outro formato de envio neste primeiro contrato. Actions chamadas por JSON mantêm seus contratos Wire existentes.
Omita method e enctype para usar os valores gerados. method="post" e
enctype="application/x-www-form-urlencoded" explícitos são aceitos.
method="get", multipart e valores dinâmicos de transporte conflitam com
esse contrato. Use uma URL comum em action para os demais formatos HTML.
return_to precisa ser um caminho local absoluto iniciado por /, sem
começar por // nem conter barras invertidas. O servidor também verifica o
destino enviado.
Campos numéricos ausentes continuam sendo erros mesmo quando o parâmetro
declara um valor padrão. Valores padrão não substituem entradas inválidas ou
ausentes. Um checkbox booleano desmarcado vira false.
Veja também TE776 e Formulários progressivos tipados.