I am going into considerable detail designing a magic language for a game system. The world is a classical high fantasy type world, with most of the tropes that might be expected from old school D&D. The magic system is somewhat unique in that I am designing it around effects, functions, and operators. I have developed what I believe to be a pretty comprehensive list of effects that can be combined in different ways to produce most of the classic "spells" that exist in classical fantasy literature.
Effects will have associated costs in energy (which will boil down to a points system which is not too relevant to this question). A "spell" will consist of one or more "Effects" which can be combined using functions. There is no upper limit to how many effects can be combined into one "spell", but there should be an exponentially increasing point cost as more and more effects are added to a single spell.
My question is: in order to achieve a flexible "language" that can be used to develop many different types of spells with (as of now) 26 "Effects", what operators and functions do I need? Also, I need to ensure that the point cost becomes prohibitive after 4-5 "Effects", and I think I need to associate a cost to the function, which would increase by a multiple of how many functions there are.
I've looked into symbolic logic, but there is a lot of focus on true/false statements, which is not necessarily what I am going after. I am thinking of something more along the lines of a very simple programming language. I do not want something massive and complicated, so what would be the minimum number and type of functions to be useful and flexible?
[Edit] In response to queastions: I am looking for some specific things as far as operators. I need to the ability to "add" an effect to a "spell". I need the ability to designate that one effect comes before another one. Conditional behavior would be a good thing. "If this, then X, if something else, then Y". I want to limit the amount of conditional elements embedded in a single spell because I don't want someone to be able to just hit the "this does everything spell" which has basically all effects embedded, so embedding conditions should have a cost. I want the ability to delay an effect: "wait X time before doing Z". I think there are some other basics that I should include just for completeness sake.
[Edit II] In response to comments. Here is what I envision as a use case more or less: "I am a cool adventuring wizard guy in an online game, I found this scroll that has a "Burning fingers of flame" spell on it, I am going to take it to my magic workshop and edit it to create a custom spell. I am going to remove the "burning" component by using a visual scripting type editor in the UI. In it's place, I'll put in a "cold" effect, add a timer function to delay the effect for 3 seconds, and add a "darkness" effect that takes place immediately. Now my custom spell will cause darkness, and then drop a cold frost effect on a target when cast. I'll rename it "Cold Dark Hands" and save it to a scroll.
For reference, my list of "Effects" (these will each represent a "spectrum" from very minor to very major, with point costs calculated on that basis):
1.Force
2.Flame
3.Cold
4.Darkness
5.Change Weather
6.Water
7.Energy Bolt
8.Lightning
9.Transform Caster
10.Transform Target
11.Invisibility
12.Change Size
13.Levitate Target
14.Drain Life
15.Flight
16.Conjure
17.Teleport
18.Curse/Bless
19.Alteration
20.Illusion
21.Conjure Stuff
Mind Control
Force Field
Lore/object read
Dispel Magic
Light