# TODO ````ts interface EventDescription { /** * Entity/process/system responsible of the event occurring in the request cycle */ originator: [Enum, EventOriginators[Enum]]; /** * The Gateway event which triggered this request cycle/the subscription event name */ event: keyof ClientEvents; /** * Simple breakdown of the events' payload * * examples: * - { content: string, mentions: number, attachments: number, is_reply: boolean } */ body: Record>; /** * The source, target or location of the event */ callPoint: [Enum, EventCallpoints[Enum]]; } function parse( event: T, context: ClientEvents[T], ): EventDescription {} /** * ```ts * ${originator} ・ ${event} ${callPoint} λ ${signature} ・ ${status} ・ ${body} * ``` * * examples: * - deruntergeher ・ messageCreate /guildId/channelId λ LookaheadController#moderateFlood(2) ・ process :200 ・ { content: 'hi there', mentions: 0, attachments: 0, is_reply: true } */ interface LogObject { /** * Entity/process/system responsible of the event occurring in the request cycle * * examples: * - deruntergeher (id) * - client */ originator: string; /** * The Gateway event which triggered this request cycle/the subscription event name */ event: keyof ClientEvents; /** * A string representing `Record>` */ body: string; /** * The source, target or location of the event * * examples: * - /${guildId}/roles ${roleId} * - /${guildId}/${channelId} ${messageId} * - /application/client/cache MEMBERS */ callPoint: string; /** * Controller class & method * * examples: * - OnboardingController#onGuildMemberAdd(!{args.size}) */ signature: string; /** * request cycle scope (process, result, error) & numerical code from the http status convention representing the outcome of this request cycle * * examples: * - process :200 * - result :403 * - error :500 */ status: string; } function format( event: EventDescription, status: [RequestCyclePoint, number], controller: Controller, ): LogObject {} ````