def generate_maximum_value_stat_property(name):
    """
    Generate a property instance that can be used to represent an entity's
    maximum value stat.

    Arguments
    ---------
        name : str
            The name of the entity value to represent the maximum stat ofS.

    Returns
    -------
    property
        The generated property.

    """

    @property
    def maximum_value_stat_property(entity):
        return getattr(entity, "_maximum_" + name)

    @maximum_value_stat_property.setter
    def maximum_value_stat_property(entity, value):
        setattr(entity, "_maximum_" + name, value)

        if not hasattr(entity, name) or value < getattr(entity, name):
            setattr(entity, name, value)

    return maximum_value_stat_property