<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Roy, read this.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Grrr.   What if all I have left over from the big crash of 2018 is binary code, X3DUOM and some X3D JSON files and the abstract specification is lost?   How do I reconstruct a JSON schema in that case?   Things should be made explicit and self-documenting for archival purposes.   We can't have stuff floating in people heads.</p><div><div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Yes, I have a disability.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>If we have a class of nodes that goes everywhere, then let's give them an interface and I will hard code it in the JSON schema generator.  I don't like it though.  I believe I'm already hardcoding several statements.  Instead of putting the logic in the object model where it belongs, we’re putting it in ALL our tools.</p></div></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Perhaps I should have been plainer.  I actually am not adding ProtoInstance to -material, I am adding it to</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    "-X3DMaterialNodeSFNode": {</p><p class=MsoNormal>      "type": "object",</p><p class=MsoNormal>      "properties": {</p><p class=MsoNormal>        "Material": {</p><p class=MsoNormal>          "$ref": "#/definitions/Material"</p><p class=MsoNormal>        },</p><p class=MsoNormal>        "TwoSidedMaterial": {</p><p class=MsoNormal>          "$ref": "#/definitions/TwoSidedMaterial"</p><p class=MsoNormal><span style='color:red'>        },<o:p></o:p></span></p><p class=MsoNormal><span style='color:red'>        "ProtoInstance": {<o:p></o:p></span></p><p class=MsoNormal><span style='color:red'>          "$ref": "#/definitions/ProtoInstance"<o:p></o:p></span></p><p class=MsoNormal>        }</p><p class=MsoNormal>      },</p><p class=MsoNormal>      "additionalProperties": false</p><p class=MsoNormal>    },</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>For the time being.   I would like to add it to:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    "-X3DMaterialNode|X3DAnyNodeThatGoesAnywhereSFNode": {<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Instead, which would actually be acceptableNodeTypes=”X3DMaterialNode|X3DAnyNodeThatGoesAnywhere” on the field named “material” in X3DUOM.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I can certainly hardcode “X3DAnyNodeThatGoesAnywhere” in the JSON schema generator, no problem.  It will go on ALL acceptableNodeTypes and appear on most if not all -SFNodes and -MFNodes.   For the time being.   Is that acceptable?  Alternatively, I may get a list of nodes that go anywhere, and add them to all -SFNode and -MFNode fields, without adding the long and unwieldy “X3DAnyNodeThatGoesAnywhere.” I still don’t know why I’m coding Object Model-like stuff in the JSON schema generator though.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I thought we already had an interface that went everywhere, and we discarded it????  Roy?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>