@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        } else if (!(o instanceof TypedPropertiesBag)) {
            return false;
        } else {
            return properties.equals(((TypedPropertiesBag) o).properties);
        }
    }
Get a property and throw if it isn't present.

@param property property key to get by exact reference identity.
@param <T> value type of the property.
@throws IllegalArgumentException if the property isn't found.
smithy-codegen-core/src/main/java/software/amazon/smithy/codegen/core/TypedPropertiesBag.java