Is there any particular reason why the property isAccessibleForFree is used on the class PublicationEvent only? It seems to me that this is a reasonable and (if true) important property for any kind of event, so I would strongly suggest to move it to Event.