Pubstrate, predecessor to Spritely (and the test implementation of ActivityPub for the standards process) used special linked-data-aware generic functions and through that could handle a variety of activity and object types. But let's face it, the most fun one was the Tombstone object: https://gitlab.com/dustyweb/pubstrate/blob/master/pubstrate/webapp/templates.scm#L324