-StartActivityStart: starting the output for a notice activity <event>
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$attrs: <entry> attributes (mostly namespace declarations, if any)
-
-EndActivityStart: end the opening tag for an activity <event>
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $attrs: <entry> attributes (mostly namespace declarations, if any)
-
-StartActivitySource: before outputting the <source> element for a notice activity
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-
-EndActivitySource: after outputting the <source> element for a notice activity
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-
-StartActivityTitle: before outputting notice activity title
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$title: title of the notice, mutable
-
-EndActivityTitle: after outputting notice activity title
-- $notice: notice being output
-- &$xs: XMLStringer for output
-- $title: title of the notice
-
-StartActivityAuthor: before outputting atom author
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$atomAuthor: string for XML representing atom author
-
-EndActivityAuthor: after outputting atom author
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$atomAuthor: string for XML representing atom author
-
-StartActivityActor: before outputting activity actor element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$actor: string for XML representing activity actor
-
-EndActivityActor: after outputting activity actor element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$actor: string for XML representing activity actor
-
-StartActivityLink: before outputting activity HTML link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$url: URL for activity HTML link element for a notice activity entry
-
-EndActivityLink: before outputting activity HTML link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $url: URL for activity HTML link element for a notice activity entry
-
-StartActivityId: before outputting atom:id element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$id: atom:id (notice URI by default)
-
-EndActivityId: after outputting atom:id element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $id: atom:id (notice URI by default)
-
-StartActivityPublished: before outputting atom:published element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$published: atom:published value (notice created by default)
-
-EndActivityPublished: before outputting atom:published element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $published: atom:published value (notice created by default)
-
-StartActivityUpdated: before outputting atom:updated element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$updated: atom:updated value (same as atom:published by default)
-
-EndActivityUpdated: after outputting atom:updated element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $updated: atom:updated value (same as atom:published by default)
-
-StartActivityContent: before outputting atom:content element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$content: atom:content value (notice rendered HTML by default)
-
-EndActivityContent: after outputting atom:content element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $content: atom:content value (notice rendered HTML by default)
-
-StartActivityVerb: before outputting activity:verb element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default)
-
-EndActivityVerb: after outputting activity:verb element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default)
-
-StartActivityDefaultObjectType: before outputting activity:object-type element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default)
-
-EndActivityDefaultObjectType: after outputting activity:verb element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default)
-
-StartActivityObjects: before outputting activity:object elements for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$objects: array of ActivityObject objects to output (empty by default)
-
-EndActivityObjects: after outputting activity:object elements for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $objects: array of ActivityObject objects to output (empty by default)
-
-StartActivityNoticeInfo: before outputting statusnet:notice-info element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$noticeInfoAttr: array of attributes for notice info element
-
-EndActivityNoticeInfo: after outputting statusnet:notice-info element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $noticeInfoAttr: array of attributes for notice info element
-
-StartActivityInReplyTo: before outputting thr:in-reply-to element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$replyNotice: Notice object the main notice is in-reply-to
-
-EndActivityInReplyTo: after outputting thr:in-reply-to element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $replyNotice: Notice object the main notice is in-reply-to
-
-StartActivityConversation: before outputting ostatus:conversation link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$conv: Conversation object
-
-EndActivityConversation: after outputting ostatus:conversation link element for a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $conv: Conversation object
-
-StartActivityAttentionProfiles: before outputting ostatus:attention link element for people in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$replyProfiles: array of profiles of people being replied to
-
-EndActivityAttentionProfiles: after outputting ostatus:attention link element for people in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $replyProfiles: array of Profile object of people being replied to
-
-StartActivityAttentionGroups: before outputting ostatus:attention link element for groups in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$groups: array of Group objects of groups being addressed
-
-EndActivityAttentionGroups: after outputting ostatus:attention link element for groups in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $groups: array of Group objects of groups being addressed
-
-StartActivityForward: before outputting ostatus:forward link element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$repeat: Notice that was repeated
-
-EndActivityForward: after outputting ostatus:forward link element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $repeat: Notice that was repeated
-
-StartActivityCategories: before outputting atom:category elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$tags: array of strings for tags on the notice (used for categories)
-
-EndActivityCategories: after outputting atom:category elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $tags: array of strings for tags on the notice (used for categories)
-
-StartActivityEnclosures: before outputting enclosure link elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$enclosures: array of enclosure objects (see File::getEnclosure() for details)
-
-EndActivityEnclosures: after outputting enclosure link elements in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $enclosures: array of enclosure objects (see File::getEnclosure() for details)
-
-StartActivityGeo: before outputting geo:rss element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- &$lat: latitude
-- &$lon: longitude
-
-EndActivityGeo: after outputting geo:rss element in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-- $lat: latitude
-- $lon: longitude
-
-StartActivityEnd: before the closing </entry> in a notice activity entry (last chance for data!)
-- &$notice: notice being output
-- &$xs: XMLStringer for output
-
-EndActivityEnd: after the closing </entry> in a notice activity entry
-- &$notice: notice being output
-- &$xs: XMLStringer for output
+StartNoticeAsActivity: before converting a notice to an activity
+- $notice: notice being converted
+- &$activity: initially empty activity
+
+EndNoticeAsActivity: after converting a notice to an activity (good time to customize!)
+- $notice: notice being converted
+- &$activity: activity, now more-or-less full
+
+StartNoticeSaveWeb: before saving a notice through the Web interface
+- $action: action being executed (instance of NewNoticeAction)
+- &$authorId: integer ID of the author
+- &$text: text of the notice
+- &$options: additional options (location, replies, etc.)
+
+EndNoticeSaveWeb: after saving a notice through the Web interface
+- $action: action being executed (instance of NewNoticeAction)
+- $notice: notice that was saved
+
+StartRssEntryArray: at the start of copying a notice to an array
+- $notice: the notice being copied
+- &$entry: the entry (empty at beginning)
+
+EndRssEntryArray: at the end of copying a notice to an array
+- $notice: the notice being copied
+- &$entry: the entry, with all the fields filled up
+
+NoticeDeleteRelated: at the beginning of deleting related fields to a notice
+- $notice: notice being deleted
+
+StartShowHeadTitle: when beginning to show the <title> element
+- $action: action being shown
+
+EndShowHeadTitle: when done showing the <title>
+- $action: action being shown
+
+StartShowPageTitle: when beginning to show the page title <h1>
+- $action: action being shown
+
+EndShowPageTitle: when done showing the page title <h1>
+- $action: action being shown
+
+StartDeleteOwnNotice: when a user starts to delete their own notice
+- $user: the user doing the delete
+- $notice: the notice being deleted
+
+EndDeleteOwnNotice: when a user has deleted their own notice
+- $user: the user doing the delete
+- $notice: the notice being deleted
+
+StartShowFeedLinkList: before showing the feed list in the sidebar
+- $action: action being executed
+- $feeds: list of feeds to show
+
+EndShowFeedLinkList: after showing the feed list in the sidebar
+- $action: action being executed
+- $feeds: list of feeds shown
+
+StartShowFeedLink: before showing an individual feed item
+- $action: action being executed
+- $feed: feed to show
+
+EndShowFeedLink: after showing an individual feed
+- $action: action being executed
+- $feed: feed to show
+
+StartShowNoticeForm: before showing the notice form (before <form>)
+- $action: action being executed
+
+EndShowNoticeForm: after showing the notice form (after <form>)
+- $action: action being executed
+
+StartGrantRole: when a role is being assigned
+- $profile: profile that will have the role
+- $role: string name of the role
+
+EndGrantRole: when a role has been successfully assigned
+- $profile: profile that will have the role
+- $role: string name of the role
+
+StartRevokeRole: when a role is being revoked
+- $profile: profile that will lose the role
+- $role: string name of the role
+
+EndRevokeRole: when a role has been revoked
+- $profile: profile that lost the role
+- $role: string name of the role
+
+StartAtomPubNewActivity: When a new activity comes in through Atom Pub API
+- &$activity: received activity
+- $user: user publishing the entry
+- &$notice: notice created; initially null, can be set
+
+EndAtomPubNewActivity: When a new activity comes in through Atom Pub API
+- $activity: received activity
+- $user: user publishing the entry
+- $notice: notice that was created
+
+StartXrdActionAliases: About to set aliases for the XRD object for a user
+- &$xrd: XRD object being shown
+- $user: User being shown
+
+EndXrdActionAliases: Done with aliases for the XRD object for a user
+- &$xrd: XRD object being shown
+- $user: User being shown
+
+StartXrdActionLinks: About to set links for the XRD object for a user
+- &$xrd: XRD object being shown
+- $user: User being shown
+
+EndXrdActionLinks: Done with links for the XRD object for a user
+- &$xrd: XRD object being shown
+- $user: User being shown
+
+AdminPanelCheck: When checking whether the current user can access a given admin panel
+- $name: Name of the admin panel
+- &$isOK: Boolean whether the user is allowed to use the panel
+
+StartAdminPanelNav: Before displaying the first item in the list of admin panels
+- $nav The AdminPanelNav widget
+
+EndAdminPanelNav: After displaying the last item in the list of admin panels
+- $nav The AdminPanelNav widget
+
+StartActivityObjectFromNotice: When converting a notice to an activity:object
+- $notice: The notice being converted
+- &$object: The resulting object. Fill this and return false to override defaults.
+
+EndActivityObjectFromNotice: After converting a notice to an activity:object
+- $notice: The notice being converted
+- &$object: The resulting object. Can be edited
+
+StartActivityObjectFromProfile: When converting a profile to an activity:object
+- $profile: The profile being converted
+- &$object: The (empty) object. Fill it up and return false to override defaults.
+
+EndActivityObjectFromProfile: After converting a profile to an activity:object
+- $profile: The profile being converted
+- &$object: The finished object. Can be tweaked
+
+StartActivityObjectFromGroup: When converting a group to an activity:object
+- $group: The group being converted
+- &$object: The (empty) object. Fill and return false to override.
+
+EndActivityObjectFromGroup: After converting a group to an activity:object
+- $group: The group being converted
+- &$object: The finished object. Tweak as needed.
+
+StartImportActivity: when we start to import an activity
+- $user: User to make the author import
+- $author: Author of the feed; good for comparisons
+- $activity: The current activity
+- $trusted: How "trusted" the process is
+- &$done: Return value; whether to continue
+
+EndImportActivity: when we finish importing an activity
+- $user: User to make the author import
+- $author: Author of the feed; good for comparisons
+- $activity: The current activity
+- $trusted: How "trusted" the process is
+
+StartProfileSettingsActions: when we're showing account-management action list
+- $action: Action being shown (use for output)
+
+EndProfileSettingsActions: when we're showing account-management action list
+- $action: Action being shown (use for output)
+
+StartOpenNoticeListItemElement: Before the opening <li> of a notice list element
+- $nli: The notice list item being shown
+
+EndOpenNoticeListItemElement: After the opening <li> of a notice list element
+- $nli: The notice list item being shown
+
+StartCloseNoticeListItemElement: Before the closing </li> of a notice list element
+- $nli: The notice list item being shown
+
+EndCloseNoticeListItemElement: After the closing </li> of a notice list element
+- $nli: The notice list item being shown
+
+StartGroupEditFormData: Beginning the group edit form entries
+- $form: The form widget being shown
+
+EndGroupEditFormData: Ending the group edit form entries
+- $form: The form widget being shown
+
+StartGroupSave: After initializing but before saving a group
+- &$group: group about to be saved
+
+EndGroupSave: After saving a group, aliases, and first member
+- $group: group that was saved
+
+StartInterpretCommand: Before running a command
+- $cmd: First word in the string, 'foo' in 'foo argument'
+- $arg: Argument, if any, like 'argument' in 'foo argument'
+- $user: User who issued the command
+- &$result: Resulting command; you can set this!
+
+EndInterpretCommand: Before running a command
+- $cmd: First word in the string, 'foo' in 'foo argument'
+- $arg: Argument, if any, like 'argument' in 'foo argument'
+- $user: User who issued the command
+- $result: Resulting command
+
+StartGroupActionsList: Start the list of actions on a group profile page (after <ul>, before first <li>)
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+EndGroupActionsList: End the list of actions on a group profile page (before </ul>, after last </li>)
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+StartGroupProfileElements: Start showing stuff about the group on its profile page
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+EndGroupProfileElements: Start showing stuff about the group on its profile page
+- $action: action being executed (for output and params)
+- $group: group for the page
+
+StartActivityObjectOutputAtom: Called at start of Atom XML output generation for ActivityObject chunks, just inside the <activity:object>. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so)
+- $obj: ActivityObject
+- $out: XMLOutputter to append custom output
+
+EndActivityObjectOutputAtom: Called at end of Atom XML output generation for ActivityObject chunks, just inside the </activity:object>
+- $obj: ActivityObject
+- $out: XMLOutputter to append custom output
+
+StartActivityObjectOutputJson: Called at start of JSON output generation for ActivityObject chunks: the array has not yet been filled out. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so)
+- $obj ActivityObject
+- &$out: array to be serialized; you're free to modify it
+
+EndActivityObjectOutputJson: Called at end of JSON output generation for ActivityObject chunks: the array has not yet been filled out.
+- $obj ActivityObject
+- &$out: array to be serialized; you're free to modify it
+
+StartNoticeWhoGets: Called at start of inbox delivery prep; plugins can schedule notices to go to particular profiles that would otherwise not have reached them. Canceling will take over the entire addressing operation. Be aware that output can be cached or used several times, so should remain idempotent.
+- $notice Notice
+- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc
+
+EndNoticeWhoGets: Called at end of inbox delivery prep; plugins can filter out profiles from receiving inbox delivery here. Be aware that output can be cached or used several times, so should remain idempotent.
+- $notice Notice
+- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc