Contract to define a 'Arrayable' object that can be converted to an array.

Fossabot channel context data model. Contains informationa bout the channel in which the custom API was invoked in.

Fossabot API context data model. Contains additional context about the Fossabot custom API request for more rich integrations.

Base Fossabot custom API data model.

Fossabot message context data model. This is only present when the custom API request was invoked from a chat message or command. When dispatched from an automated action, such as a timer, this will be null.

Fossabot role context data model. Defines the ID, name and type of role associated to the user.

Fossabot user context data model. Contains information about the user that invoked the custom API request.

Class to define a response for a Fossabot custom API request. This class is only tasked with returning the response string back to Fossabot, and can use any of the additional context information to make its response.

Contract to define a "Jsonable" object that can be converted to a JSON string.

Defines a "stringable" class which is one that can be converted to a string or cast to a string.

The Stringable interface denotes a class as having a toString() method. Unlike most interfaces, Stringable is implicitly present on any class that has the magic toString() method defined, although it can and should be declared explicitly.