Is `Terminal / static` needed or not?
When updating models in #1110 I noticed that I can run a model with a Terminal node with or without the 'Terminal / static' table. Then I realized, especially with the new API, there is no real information in that table that isn't already in the Node table. We should look into if that is true, and if it is, perhaps we should just remove Terminal / static.
https://deltares.github.io/Ribasim/core/usage.html#sec-terminal
Indeed in terms of information the Terminal / static table is not needed, since the only information associated with terminal nodes is their node ID which can also be found in the Node table.
Regarding the fact that you could run your model without this table: a quick search trough the core code showed that currently the terminal node data is only used in the corresponding formulate_flow! for interpreting the flow to a terminal node as a boundary flow. There being no data in the terminal object doesn't throw an error.
In conclusion: I think indeed the Terminal / static table can be removed, and for consistency in the core I think the Terminal constructor should read from the Node table (instead of not reading any data about terminal nodes at all).
I would advise against removing the table, as it would break the current generic code patterns, for just a small gain in lines removed. I would argue it increases complexity.
The table already doesn't appear in any of our test models. In the add API it becomes obvious.
model.terminal.add(Node(14, Point(3.0, -2.0)))
model.terminal.add(Node(14, Point(3.0, -2.0)), [terminal.Static()])