Just a quick note that we’re going to migrate the local Material Entity description out of userData and into its own materialData field. This is because (currently) there is a limit to how big userData can get before we can’t send it over the wire. We hope separating the two fields will help you avoid this issue.
This change will ship in Beta Release 67 in a few weeks. All old content will be automatically migrated to the new format, but you’ll have to update any scripts to use materialData instead of userData (and use materialURL “materialData” instead of “userData”). Sorry for the hassle!
Also, just a note that if your materials don’t need to be dynamically edited at runtime, you should be using an actual link for your material URL. Externally defined materials don’t have a limit on how big their descriptions can get.
Also, we support URL redirects on the individual image URLs, so you can use link shorteners to save characters! We also support relative paths if you are hosting both the material JSON and the images in the same place.
Let me know if you have any questions.