What is the best way to parse all the editable fields on an object?

Is there some sort of global schema I can reference? For instance, for these two examples, can I extract at runtime:

THREE.AmbientLight

  • intensity
  • color

THREE.Mesh

  • position
  • rotation
  • scale
  • material
    • the specific material’s properties…
  • geometry
    • the geometry’s properties…
    • bonus points for info about how to apply changes to certain fields on the geometry since maybe require manually setting a crazy specific flag to apply

edit: Right now I am simply manually maintaining some code in which I have specified which fields can be changed and how.

there’s GitHub - three-types/three-ts-types: TS type library for the popular webgl library threejs which could be used to create a dynamic map of editable properties.