@Override
    public List<ValidationEvent> validate(Model model) {
        List<ValidationEvent> events = new ArrayList<>();
        for (MemberShape member : model.getMemberShapesWithTrait(EventPayloadTrait.class)) {
            model.getShape(member.getContainer())
                    .flatMap(Shape::asStructureShape)
                    .flatMap(structure -> validateEvent(structure, member))
                    .ifPresent(events::add);
        }

        return events;
    }
Ensures that when an event structure contains an eventPayload member,
that all other members are bound to headers.

<p>Only a single member can be marked with the eventPayload trait, and
this is validated using {@link ExclusiveStructureMemberTraitValidator}.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/EventPayloadTraitValidator.java