private void defaultValidation(Shape shape, Node value, Emitter emitter) {
        // If no timestampFormat trait is present, then the shape is validated by checking
        // that the value is either a number or a string that matches the date-time format.
        if (!value.isNumberNode()) {
            if (value.isStringNode()) {
                validateDatetime(shape, value, emitter);
            } else {
                emitter.accept(value,
                        "Invalid " + value.getType() + " value provided for timestamp, `"
                                + shape.getId() + "`. Expected a number that contains epoch seconds with "
                                + "optional millisecond precision, or a string that contains an RFC 3339 "
                                + "formatted timestamp (e.g., \"1985-04-12T23:20:50.52Z\")");
            }
        }
    }
Validates that timestamp shapes contain values that are compatible with their
timestampFormat traits or contain values that are numbers or an RFC 3339
date-time production.
smithy-model/src/main/java/software/amazon/smithy/model/validation/node/TimestampFormatPlugin.java