Handling hyperlinks.
This gist describes an escape sequence for explicitly managing hyperlinks:
https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
We use that as the foundation of our hyperlink support, and the game
plan is to then implicitly enable the hyperlink attribute for a cell
as we recognize linkable input text during print() processing.
The Surface type represents the contents of a terminal screen.
It is not directly connected to a terminal device.
It consists of a buffer and a log of changes. You can accumulate
updates to the screen by adding instances of the Change enum
that describe the updates.
Position holds 0-based positioning information, where
Absolute(0) is the start of the line or column,
Relative(0) is the current position in the line or
column and EndRelative(0) is the end position in the
line or column.