Lots of comments here debating what’s legacy, what’s modern. Here’s my take:
Never use objects with behavior. (Ban OOP.)
Prefer monadic types.
Functions should only take or return moved values or const references. (These form linear types when you need state and ensure immutable values for stateless types.)
Never use a template without a concept.
Prefer the stack and ban mutable memory.
You end up with a functional language which resembles Haskell and competes with C. Not even rust has that level of generality.