For example, I have no idea why you are serializing to JSON textual format in your C code and not just passing (little or big endian) binary data that is compatible with C structs. And please don't write another long explanation that I can't really understand your descriptions well. You try to say too many things at the same time, and it is ends up not being that comprehensible.
Yet you still wrote another wall of text. Can't you make your point more concisely? Shouldn't you think more carefully about what you want to write?
You don't put care and attention into writing English. Communication is a very important skill. You may be the most talented coder in the universe, but being able communicate efficiently is very important.
For example, I have no idea why you are serializing to JSON textual format in your C code and not just passing (little or big endian) binary data that is compatible with C structs. And please don't write another long explanation that I can't really understand your descriptions well. You try to say too many things at the same time, and it is ends up not being that comprehensible.
There is two format for the "json data".
There is the "text form" , coming from json/RPC (from javascript app)
And there is the "binary form", a tree of referenced objects, constructed from a text json, or manually with the API. ( or eventually from a script)
The idea is to allow to completely abstract function calling and parameters passing using a format that can be converted to/from json transparently, automatically, with object reference counting, and stored internally as binary data aligned on 128 bits for fast SIMD operations.
There is reference counting, thread safety for arrays manipulation, etc, Internally , it use native C type to store/read the data, keyname hash, and the tree structure itself (list of named/typed children references etc) , direct memory pointers, etc.
The memory holding the native C type, and direct pointer to it is never accessed from the application directly. ( or it can be explicitly if you want raw pointer to the binary data, equivalent of rust unsafe code).
When a C function make the call
the caller create the tree manually in the binary form, from the binary data, instead of using a structure . ( it can be transformed to/from textual json with a generic function for the json/rpc interface ).
it pass a C pointer to the reference of this object stored in binary form to the callee function. (And another C pointer to an object reference for the output result if needed.)
The function can access all the tree, add or remove element to it, add an array to it, add element in a child array, copy object reference in local permanent internal list, etc
On return either if the function is just supposed to modify content of the passed object, or add/remove element to/from it, all can be tested and accessed via the tree interface from the caller ( and it just passed a C pointer, with total binary compatibility, useful also for logging or many things instead of vargs / stdio).
If the function return something to the caller ( eg from http/json/rpc request), then this result can be converted to textual json automatically and sent back to the javascript caller from the http server.
The same function prototype in C can be used to declare different functions with different input parameters.
Like a generic function type who can be implemented with different type of data format for arguments, and to define the json/rpc API from the C side.
And in the same time, it's also the C internal API , used by C programs like a regular dll API, but using the json binary form representation of the arguments, instead of C style argument passing ( the C style argument passing are only used for simple native C type and pointers).
It can be confusing from your perspective, because it's made in sort that high level concept are manipulated and implemented from the C language, and can use all the C language on local C variable with the native C type ( int , pointer, etc) , and also in the same time to manipulate high level object.
But i already have a full API, and i did not make this framework for blockchain specially, even if for application yes i have blockchain ecosystem in mind specifically, but the frame work can handle all kind of things ( ray tracing, manipulation of graphic object, manipulation of blockchain objects, private key, signature, in browser staking etc.
All the API is documented in the white papper , and in other places. All the code source is on the git. There are working example running.
You have all the low level code and explanation in the PMs.
Now if you can't understand my grammar, don't have time to read my code, and your idea is to start to program a blockchain and api for distributed application alone from scratch including high level OO interfacing, good luck with that
I'll see where you get lol
If you are not interested to work on collaboration again ok, i can have idea how to handle most of the issue you rise on the git discussion, with local stack frame, circular references, multi threading, no mem leak, and simple expression evaluator, cross language interface and object definition compatible with json/rpc and javascript, etc.
I don't really know what you have in mind either
But i already have, API, interface, documentation, code, working example, test net, demo app in html5 for the raytracer in webGL. Etc
I already have this.
If you are not interested to look at it, or read the code, or read my answer, i don't know what to say to you. I have read most of the thing on the git discussion, and i think i solved those problem, and posted all the code, and explanation to you in private messages.
If you want to go alone from scratch developping an high level language to make blockchain node, and cross language interface, with portable code, and high level API for web application, go ahead. I already have this.
Otherwise you're just talking in the wind.