Behaviour for terminal scroll region buffer.
@callback get_region(any()) :: {integer(), integer()}
@callback new() :: any()
@callback set_region( any(), {integer(), integer()} ) :: any()