Earlier quoted context omitted.
Scratch also has variables, lists, if/else and looping control flow structures, and procedures (the main limitation, imho, being that procedures don't have scoped local variables and cannot return a value) It also has event-based concurrency.
Are they all available as tiles to be dragged and dropped? Or can I type it out too with a keyboard?
If you really want to use a keyboard, Tosh exists, effectively acting as an alternative front-end for Scratch https://tosh.blob.codes/
If even using a keyboard is too much effort, I have a Python library for doing Scratch metaprogramming and code generation, with optional vscode integration: https://github.com/davidBuchanan314/boiga
I've used it to write non-trivial Scratch programs, such as X25519 key exchange with ChaCha20-Poly1305 authenticated encryption https://scratch.mit.edu/projects/714773326/