make FUNCTIONs like so
    function {FORMULA (<parameters>) }
  map{[<1Dval>, <XDmapentry>][<2Dval>, <XDmapentry>][<XDval>, <XDmapentry>]...}// this maps a function from a 1D var to a colour, normal etc & others.
  FORMULA = ( ["dll-name"] func-name) | macro-name | formula
   if dll-name is not used pov functions are used
and revamp textures, normals, etc to be able to use these
eg I could use this to have a different pattern for each rgbft channel by adding the values ...

allow the type of a variable to be obtainable eg gettype(myvar)

Drop "#declare" for non-new variables

"extendable objects, finishes, media, etc"
    #declare myobjtype = new object{ intersections FUNCTION, surfacehandler FUNCTION, interiorhandler FUNCTION...}
so that you can make custom shaped objects, do freaky stuff to the ray when it leaves a surface, do freaky stuff to the ray as it goes through an interior

make POV an object oriented program so the above is possible
    #declare myobj = struct {...}

get the PolyRay author to add a tesselate object modifier

line lights - interpolate between the ends somehow??
with spline stuff
and go from there to triangle lights and then to object lights (maybe using photons)

displacement  mapping, mapping of any and all texture parameters using images

have the struct that determines syntax highlighting in the POV-Ray src (instead of the CodeMax support code) so that
patches can use proper syntax highlighting for their new keywords etc.