public static Parameter fromNode(StringNode name, ObjectNode objectNode) throws RuleError {
        return RuleError.context("while parsing the parameter `" + name + "`", objectNode, () -> {
            Builder builder = new Builder(objectNode.getSourceLocation()).name(Identifier.of(name));
            objectNode.expectNoAdditionalProperties(PROPERTIES);

            builder.required(objectNode.getBooleanMemberOrDefault(REQUIRED, false));
            objectNode.getStringMember(BUILT_IN, builder::builtIn);
            objectNode.getStringMember(DOCUMENTATION, builder::documentation);
            objectNode.getObjectMember(DEPRECATED, node -> builder.deprecated(Deprecated.fromNode(node)));

            objectNode.getMember(DEFAULT).map(Value::fromNode).ifPresent(builder::defaultValue);
            builder.type(RuleError.context("while parsing the parameter type",
                    objectNode,
                    () -> ParameterType.fromNode(objectNode.expectStringMember(TYPE))));
            return builder.build();
        });
    }
Creates a {@link Parameter} instance from the given Node information.

@param name the name of the parameter being deserialized.
@param objectNode the node to deserialize.
@return the created Parameter.
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/syntax/parameters/Parameter.java