yeah, I agree, the second option does seem more useful.
And eh, the behavior is pretty much what you said for the 2nd option, except I would not apply the effect to non-customized part. Not sure if I'm interpreting it wrong,
Pretty much what I'm expecting is that you can create multiple custom property libraries and have an object point at it by reference.
Similar to the way custom properties work with tile sets.
Lets imagine this tile is water and the custom properties block collision
<property name="density" value="1"/>
Lets say you have an area where water isn't deep so density gets turned off to value of 0 and the players can walk on it.
Only problem is that if you change the value, it will affect every other ones placed.
As you mentioned, the work around would be to add another tile in the tile sheet and set its custom properties to the different value.
Objects solve this problem pretty well since you can have distinct properties on the same tile but if you want an area to have no density, you would have to edit all of the property of tiles manually.
Sorry for the pointless example if you got what I mean already.
I'll elaborate more in the future when this becomes a big problem in a project I'm working on. ope to be working with you soon. Keep up the great work!