// Validate the keys regardless of their order: every key must be known
// and at least one type-defining key must be present. "secret" is a
// modifier, not a type, so it can appear in any position.
hasType:=false
fori:=0;i+1<len(node.Content);i+=2{
switchnode.Content[i].Value{
case"sh","ref","map","value":
hasType=true
case"secret":
// modifier, not a type
default:
returnerrors.NewTaskfileDecodeError(nil,node).WithMessage(`%q is not a valid variable type. Try "sh", "ref", "map", "value" or using a scalar value`,node.Content[i].Value)