As an example, lets build a simple custom structure:
[[internal structures][data1][data2][data3][data4]]
I want that that head
corresponds to data1
, and index?
returns1 when positioned there.
If you have an internal action called "reposition" and "get-position" belonging to that datatype, Ren-C should look at the block if it carries an additional management object. If it contains "reposition" and "get-position" it should use this custom functions to override the standard ones for the datatype. You code them so that they do not move before data1, and you have a special structure which acts transparently to the standard Ren-C working.
Now lets take:
sound: [[header] size: 5000 modified-by: "HF" sound: #A45ACF... [tail-data]]
It is your structure to store a sound.
you want that at set operation using ':' will be written raster-image:
content, so that
sound: load %mysong.wav
You add a custom management object with overwrites the set operation and also all the others regarding pick/length?/poke...
and so on, so that your Ren-C script works with the usual syntax, which is internally manage by from you replacement actions, translating everything to the new coordinates and operation system
Obviously, you could have additional action to be available to the developers which do not replace the internal actions but they could be called with syntax like:
do-custom data 'method [parameter parameter]
or having a special path like sound/#/fourier-trasform