That's Ilira, the player character from my SCI game project.
It might actually not be too difficult to make an SCI-style standalone Lisp dialect. I feel like the most difficult thing for me could be array notation, the whole [] thing.
To elaborate: in Lisp you basically have lists and atoms (everything that's not a list). A list is usually saved as a chain of cons cells, like a linked list in other environments. So the expression (1 2 3) is stored in memory as a cons with car 1 and the cdr a pointer to a cons with car 2, pointing to a cons with car 3, cdr null. You have your forms, which are lists where the first element is a symbol naming a function. And finally, you have the functions car and cdr, which return the first item in a list and the rest of the list respectively. So (car '(1 2 3)) returns 1 and (cdr '(1 2 3)) returns (2 3). Logically then you can have a cadr function, which is basically (car (cdr X)).
Also, code is data and data can be code. That's what the ' in those examples was for, to suppress the attempt to read (1 2 3) as a function call. Well, close enough to that.
There are no arrays in this definition, you might notice. Each dialect has its own take on how those work, if they have arrays at all. Common Lisp has #(1 2 3) indicate an array literal, while Clojure and Emacs Lisp use [1 2 3]. And you don't look up values the way you would in other languages: assuming we have a variable A that's an array with 1 2 and 3, you'd get the second item with (elt A 1) in CL and Emacs, but with (nth A 1) in Clojure, and with (vector-ref A 1) in Racket. And that's ignoring the array operations that they simply don't all support!
So yeah, allowing an array lookup with [A 1] like in SCI might be tricky.
Actually, now that I've typed that, I'm thinking reader macros. The ' character doesn't mean "don't evaluate the next bit", it means "pretend the next bit is in a (quote ?) form" -- '(1 2 3) is parsed as (quote (1 2 3)), and quote basically just returns its arguments untouched. As such, you could have a reader macro for the [ character to parse as (elt ?). Now you just need a way to distinguish between lookups and definitions.