@Override
    public Schema listShape(ListShape shape) {
        MemberShape collectionMember = shape.getMember();
        Shape collectionTarget = context.getModel().expectShape(collectionMember.getTarget());
        // Recursively change the items schema and its targets as needed.
        Schema refSchema = context.inlineOrReferenceSchema(collectionMember);
        Schema itemsSchema = collectionTarget.accept(
                new HeaderSchemaVisitor<>(context, refSchema, collectionMember));
        // Copy the collection schema, remove any $ref, and change the items.
        return schema.toBuilder()
                .ref(null)
                .type("array")
                .items(itemsSchema)
                .build();
    }
Creates an appropriate Schema for an input/output header parameters.

@param <T> Type of protocol trait to convert.
smithy-openapi/src/main/java/software/amazon/smithy/openapi/fromsmithy/protocols/HeaderSchemaVisitor.java