<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hedgedocs.com/index.php?action=history&amp;feed=atom&amp;title=HSON_Format</id>
	<title>HSON Format - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://hedgedocs.com/index.php?action=history&amp;feed=atom&amp;title=HSON_Format"/>
	<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;action=history"/>
	<updated>2026-05-19T08:07:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=1507&amp;oldid=prev</id>
		<title>Hyper at 21:16, 1 May 2026</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=1507&amp;oldid=prev"/>
		<updated>2026-05-01T21:16:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:16, 1 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l520&quot;&gt;Line 520:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 520:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• &amp;lt;code&amp;gt;&amp;quot;myCustomEditor/presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• &amp;lt;code&amp;gt;&amp;quot;myCustomEditor/presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• &amp;lt;code&amp;gt;&amp;quot;myCustomEditor/presetPlacementDistance&amp;quot;: 1.0&amp;lt;/code&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• &amp;lt;code&amp;gt;&amp;quot;myCustomEditor/presetPlacementDistance&amp;quot;: 1.0&amp;lt;/code&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:File Formats]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-770:rev-1507:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Hyper</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=770&amp;oldid=prev</id>
		<title>Hyper: Fixed hson-schema repository link</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=770&amp;oldid=prev"/>
		<updated>2025-07-13T00:16:44Z</updated>

		<summary type="html">&lt;p&gt;Fixed hson-schema repository link&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:16, 13 July 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot;&gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== JSON Schema ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== JSON Schema ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The official JSON Schema for the HSON Format can be found at the [https://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hedgedocs&lt;/del&gt;.com/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;docs/general&lt;/del&gt;/hson&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/ &lt;/del&gt;hson-schema GitHub repository].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The official JSON Schema for the HSON Format can be found at the [https://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;github&lt;/ins&gt;.com/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hedge-dev&lt;/ins&gt;/hson&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-schema &lt;/ins&gt;hson-schema GitHub repository].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It&amp;#039;s useful (but not necessary) to validate .hson files against this schema in editors which support this feature, as doing so allows you to have autocompletion, descriptions of each property, and data validation.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It&amp;#039;s useful (but not necessary) to validate .hson files against this schema in editors which support this feature, as doing so allows you to have autocompletion, descriptions of each property, and data validation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-64:rev-770:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Hyper</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=64&amp;oldid=prev</id>
		<title>PTKay: Undo revision 63 by PTKay (talk)</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=64&amp;oldid=prev"/>
		<updated>2025-02-14T11:23:19Z</updated>

		<summary type="html">&lt;p&gt;Undo revision &lt;a href=&quot;/index.php/Special:Diff/63&quot; title=&quot;Special:Diff/63&quot;&gt;63&lt;/a&gt; by &lt;a href=&quot;/index.php/Special:Contributions/PTKay&quot; title=&quot;Special:Contributions/PTKay&quot;&gt;PTKay&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:PTKay&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:PTKay (page does not exist)&quot;&gt;talk&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:23, 14 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l508&quot;&gt;Line 508:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 508:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/del&gt;Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &quot;position&quot;, but it has to be placed such that it does not collide with [[HSON Format#3.6. position|HSON&#039;s position property]]).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;• &lt;/ins&gt;Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &quot;position&quot;, but it has to be placed such that it does not collide with [[HSON Format#3.6. position|HSON&#039;s position property]]).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/del&gt;Empty strings&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;• &lt;/ins&gt;Empty strings&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/del&gt;Strings which contain forward slashes.}}{{Notice|type=info|content=The &quot;no forward slash&quot; rule allows tooling to access custom properties by &quot;path&quot;, like so:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;• &lt;/ins&gt;Strings which contain forward slashes.}}{{Notice|type=info|content=The &quot;no forward slash&quot; rule allows tooling to access custom properties by &quot;path&quot;, like so:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;myCustomEditor&amp;quot;: {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;myCustomEditor&amp;quot;: {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-63:rev-64:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=63&amp;oldid=prev</id>
		<title>PTKay at 11:22, 14 February 2025</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=63&amp;oldid=prev"/>
		<updated>2025-02-14T11:22:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:22, 14 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l508&quot;&gt;Line 508:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 508:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;• &lt;/del&gt;Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &quot;position&quot;, but it has to be placed such that it does not collide with [[HSON Format#3.6. position|HSON&#039;s position property]]).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &quot;position&quot;, but it has to be placed such that it does not collide with [[HSON Format#3.6. position|HSON&#039;s position property]]).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;• &lt;/del&gt;Empty strings&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Empty strings&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;• &lt;/del&gt;Strings which contain forward slashes.}}{{Notice|type=info|content=The &quot;no forward slash&quot; rule allows tooling to access custom properties by &quot;path&quot;, like so:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Strings which contain forward slashes.}}{{Notice|type=info|content=The &quot;no forward slash&quot; rule allows tooling to access custom properties by &quot;path&quot;, like so:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;myCustomEditor&amp;quot;: {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;myCustomEditor&amp;quot;: {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-58:rev-63:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=58&amp;oldid=prev</id>
		<title>PTKay at 11:12, 14 February 2025</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=58&amp;oldid=prev"/>
		<updated>2025-02-14T11:12:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:12, 14 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l310&quot;&gt;Line 310:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 310:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this snippet from the example file, the object has specified a position of &amp;lt;code&amp;gt;[ 0.0, 1.0, 0.0 ]&amp;lt;/code&amp;gt;, and a parentId of &amp;lt;code&amp;gt;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;lt;/code&amp;gt;, which means that its transform is local to the transform of the object which uses that UUID (not included in this snippet).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this snippet from &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#Example|&lt;/ins&gt;the example file&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;, the object has specified a position of &amp;lt;code&amp;gt;[ 0.0, 1.0, 0.0 ]&amp;lt;/code&amp;gt;, and a parentId of &amp;lt;code&amp;gt;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;lt;/code&amp;gt;, which means that its transform is local to the transform of the object which uses that UUID (not included in this snippet).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This parent object has a position of &amp;lt;code&amp;gt;[ 100.0, 0.0, 0.0 ]&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This parent object has a position of &amp;lt;code&amp;gt;[ 100.0, 0.0, 0.0 ]&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l322&quot;&gt;Line 322:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this snippet from the example file, the object has specified a parentId of &amp;lt;code&amp;gt;{00000000-0000-0000-0000-000000000000}&amp;lt;/code&amp;gt; (the special UUID null value), which is equivalent to not specifying a parentId. This means that this object has no parent.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this snippet from &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#Example|&lt;/ins&gt;the example file&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;, the object has specified a parentId of &amp;lt;code&amp;gt;{00000000-0000-0000-0000-000000000000}&amp;lt;/code&amp;gt; (the special UUID null value), which is equivalent to not specifying a parentId. This means that this object has no parent.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 3.4. instanceOf ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 3.4. instanceOf ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l358&quot;&gt;Line 358:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 358:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this snippet from the example file, the second listed object (UUID: &amp;lt;code&amp;gt;38285a58-9969-4c5f-a649-b91440962a71&amp;lt;/code&amp;gt;) is an instance of the first listed object (UUID: &amp;lt;code&amp;gt;2737e92f-4842-46cb-a590-e074f7b882f0&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this snippet from &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#Example|&lt;/ins&gt;the example file&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;, the second listed object (UUID: &amp;lt;code&amp;gt;38285a58-9969-4c5f-a649-b91440962a71&amp;lt;/code&amp;gt;) is an instance of the first listed object (UUID: &amp;lt;code&amp;gt;2737e92f-4842-46cb-a590-e074f7b882f0&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As such, it will inherit all of the unspecified properties from the first object, including the &amp;lt;code&amp;gt;parentId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt;, and &amp;lt;codemyCustomEditor&amp;lt;/code&amp;gt; properties, as well as the visibility parameter.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As such, it will inherit all of the unspecified properties from the first object, including the &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.3. &lt;/ins&gt;parentId&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|parentId]]&lt;/ins&gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.5. type|&lt;/ins&gt;type&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt;, and &amp;lt;codemyCustomEditor&amp;lt;/code&amp;gt; properties, as well as the visibility parameter.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It will &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt;, however, inherit the specified properties, including the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;instanceOf&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;position&amp;lt;/code&amp;gt; properties, as well as the &amp;lt;code&amp;gt;respawnTime&amp;lt;/code&amp;gt; parameter.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It will &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt;, however, inherit the specified properties, including the &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.1. &lt;/ins&gt;id&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|id]]&lt;/ins&gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.4. &lt;/ins&gt;instanceOf&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|instanceOf]]&lt;/ins&gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.6. position|&lt;/ins&gt;position&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/code&amp;gt; properties, as well as the &amp;lt;code&amp;gt;respawnTime&amp;lt;/code&amp;gt; parameter.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This means that the second object in the above snippet will be equivalent to the following object:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This means that the second object in the above snippet will be equivalent to the following object:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l395&quot;&gt;Line 395:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 395:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The second object listed in the above example will inherit all properties from the first object, &amp;lt;i&amp;gt;except&amp;lt;/i&amp;gt; for the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The second object listed in the above example will inherit all properties from the first object, &amp;lt;i&amp;gt;except&amp;lt;/i&amp;gt; for the &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.1. &lt;/ins&gt;id&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|id]]&lt;/ins&gt;&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is due to the fact that every valid object must have its own unique UUID.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is due to the fact that every valid object must have its own unique UUID.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l402&quot;&gt;Line 402:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 402:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This value is &amp;lt;b&amp;gt;REQUIRED&amp;lt;/b&amp;gt; to be present, &amp;lt;b&amp;gt;unless this object is an instance of another object&amp;lt;/b&amp;gt;, in which case, it is optional, as the type will just be taken from the instanced object.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This value is &amp;lt;b&amp;gt;REQUIRED&amp;lt;/b&amp;gt; to be present, &amp;lt;b&amp;gt;unless this object is an &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.4. instanceOf|&lt;/ins&gt;instance of&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;another object&amp;lt;/b&amp;gt;, in which case, it is optional, as the type will just be taken from the instanced object.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The type of the object&amp;#039;&amp;#039;&amp;#039; (e.g. &amp;quot;Spring&amp;quot;, &amp;quot;Ring&amp;quot;, etc.).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The type of the object&amp;#039;&amp;#039;&amp;#039; (e.g. &amp;quot;Spring&amp;quot;, &amp;quot;Ring&amp;quot;, etc.).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l508&quot;&gt;Line 508:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 508:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &quot;position&quot;, but it has to be placed such that it does not collide with HSON&#039;s position property).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &quot;position&quot;, but it has to be placed such that it does not collide with &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.6. position|&lt;/ins&gt;HSON&#039;s position property&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• Empty strings&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• Empty strings&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• Strings which contain forward slashes.}}{{Notice|type=info|content=The &amp;quot;no forward slash&amp;quot; rule allows tooling to access custom properties by &amp;quot;path&amp;quot;, like so:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;• Strings which contain forward slashes.}}{{Notice|type=info|content=The &amp;quot;no forward slash&amp;quot; rule allows tooling to access custom properties by &amp;quot;path&amp;quot;, like so:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-55:rev-58:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=55&amp;oldid=prev</id>
		<title>PTKay at 11:03, 14 February 2025</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=55&amp;oldid=prev"/>
		<updated>2025-02-14T11:03:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://hedgedocs.com/index.php?title=HSON_Format&amp;amp;diff=55&amp;amp;oldid=53&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=53&amp;oldid=prev</id>
		<title>PTKay at 10:59, 14 February 2025</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=53&amp;oldid=prev"/>
		<updated>2025-02-14T10:59:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:59, 14 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The following is an example file in the HSON Format, which represents a &amp;quot;project&amp;quot; called &amp;quot;Sample Project&amp;quot; that contains 5 objects.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The following is an example file in the HSON Format, which represents a &amp;quot;project&amp;quot; called &amp;quot;Sample Project&amp;quot; that contains 5 objects.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This example file will be referenced periodically throughout the format specification.&amp;lt;syntaxhighlight lang=&quot;json&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This example file will be referenced periodically throughout the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#Format Specification|&lt;/ins&gt;format specification&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;.&amp;lt;syntaxhighlight lang=&quot;json&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;$schema&amp;quot;: &amp;quot;https://raw.githubusercontent.com/hedge-dev/hson-schema/main/hson.schema.json&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;$schema&amp;quot;: &amp;quot;https://raw.githubusercontent.com/hedge-dev/hson-schema/main/hson.schema.json&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l172&quot;&gt;Line 172:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 172:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;C#&amp;lt;/b&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;C#&amp;lt;/b&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight lang=&quot;c#&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;public static string GetRFC3339Time()&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;public static string GetRFC3339Time()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l178&quot;&gt;Line 178:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 178:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         CultureInfo.InvariantCulture);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         CultureInfo.InvariantCulture);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;C++11&amp;lt;/b&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;C++11&amp;lt;/b&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight lang=&quot;c++&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;string&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;string&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;stdexcept&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;stdexcept&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l198&quot;&gt;Line 198:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 198:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return std::string(buf, len);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return std::string(buf, len);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;C&amp;lt;/b&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;C&amp;lt;/b&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight lang=&quot;c&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;time.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;time.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l212&quot;&gt;Line 212:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 212:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return strftime(buf, bufSize, &amp;quot;%FT%TZ&amp;quot;, gmtime(&amp;amp;time));&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return strftime(buf, bufSize, &amp;quot;%FT%TZ&amp;quot;, gmtime(&amp;amp;time));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 2.4. version ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 2.4. version ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-51:rev-53:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=51&amp;oldid=prev</id>
		<title>PTKay at 10:57, 14 February 2025</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=51&amp;oldid=prev"/>
		<updated>2025-02-14T10:57:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:57, 14 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To validate &amp;#039;&amp;#039;all&amp;#039;&amp;#039; .hson files against the schema in your editor of choice, refer to the instructions in the README from the above repository.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To validate &amp;#039;&amp;#039;all&amp;#039;&amp;#039; .hson files against the schema in your editor of choice, refer to the instructions in the README from the above repository.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To manually validate against the schema on a per-file basis, include the following line at the top-level of your HSON file(s), before the HSON file format version parameter.&amp;lt;syntaxhighlight lang=&quot;json&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To manually validate against the schema on a per-file basis, include the following line at the top-level of your HSON file(s), before the HSON file format &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#1. version|&lt;/ins&gt;version parameter&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;.&amp;lt;syntaxhighlight lang=&quot;json&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;$schema&amp;quot;: &amp;quot;https://raw.githubusercontent.com/hedge-dev/hson-schema/main/hson.schema.json&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;$schema&amp;quot;: &amp;quot;https://raw.githubusercontent.com/hedge-dev/hson-schema/main/hson.schema.json&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;If writing tooling that generates HSON, consider having your tooling write this line to generated files.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;If writing tooling that generates HSON, consider having your tooling write this line to generated files.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== C# ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== C# ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;libHSON:&#039;&#039;&#039; The official C# implementation of HSON. Allows for simple, efficient, feature-complete, two-way serialization of HSON data.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[https://github.com/hedge-dev/&lt;/ins&gt;libHSON&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-csharp libHSON]&lt;/ins&gt;:&#039;&#039;&#039; The official C# implementation of HSON. Allows for simple, efficient, feature-complete, two-way serialization of HSON data.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== C++ ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== C++ ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;HedgeLib:&#039;&#039;&#039; Radfordhound&#039;s open-source library and collection of tools that aims to makes modding games in the Sonic the Hedgehog franchise easier. It contains a feature-complete two-way HSON implementation, which is used in its level-editing tooling.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[https://github.com/Radfordhound/&lt;/ins&gt;HedgeLib &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HedgeLib]&lt;/ins&gt;:&#039;&#039;&#039; Radfordhound&#039;s open-source library and collection of tools that aims to makes modding games in the Sonic the Hedgehog franchise easier. It contains a feature-complete two-way HSON implementation, which is used in its level-editing tooling.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot;&gt;Line 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 164:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 2.3. date ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 2.3. date ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;The date/time the project was created at&#039;&#039;&#039;, represented as a string in the RFC 3339 format (a similar standard to ISO 8601).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;The date/time the project was created at&#039;&#039;&#039;, represented as a string in the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[https://www.rfc-editor.org/rfc/rfc3339 &lt;/ins&gt;RFC 3339 format&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] &lt;/ins&gt;(a similar standard to ISO 8601).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;It is invalid to represent the date using any other format.&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;It is invalid to represent the date using any other format.&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l287&quot;&gt;Line 287:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 287:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 3.3. parentId ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 3.3. parentId ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;The id of this object&#039;s parent object&#039;&#039;&#039;, or a null UUID.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;The &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.1. &lt;/ins&gt;id&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|id]] &lt;/ins&gt;of this object&#039;s parent object&#039;&#039;&#039;, or a null UUID.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If specified as a valid, non-null UUID, this object is a child of the object with the given UUID, meaning that the object&#039;s transform (represented via &amp;lt;code&amp;gt;position&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rotation&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;scale&amp;lt;/code&amp;gt;) is relative to the parent&#039;s transform (which is relative to its parent&#039;s transform, and so on).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If specified as a valid, non-null UUID, this object is a child of the object with the given UUID, meaning that the object&#039;s transform (represented via &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.6. &lt;/ins&gt;position&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|position]]&lt;/ins&gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.7. &lt;/ins&gt;rotation&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|rotation]]&lt;/ins&gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.8. scale|&lt;/ins&gt;scale&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/code&amp;gt;) is relative to the parent&#039;s transform (which is relative to its parent&#039;s transform, and so on).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Otherwise, if it is not specified, or is specified as a null UUID, this object has no parent object, and the transform is global.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Otherwise, if it is not specified, or is specified as a null UUID, this object has no parent object, and the transform is global.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l326&quot;&gt;Line 326:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 326:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 3.4. instanceOf ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 3.4. instanceOf ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;The id of the object to be instanced&#039;&#039;&#039;, or a null UUID.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;The &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.1. &lt;/ins&gt;id&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|id]] &lt;/ins&gt;of the object to be instanced&#039;&#039;&#039;, or a null UUID.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If specified as a valid, non-null UUID, this object is an instance of the object with the given UUID, meaning that it will inherit &#039;&#039;&#039;ALL&#039;&#039;&#039; &#039;&#039;unspecified properties&#039;&#039; from the instanced object, &#039;&#039;&#039;with the notable exception of the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; property&#039;&#039;&#039;, instead of falling back to the usual defaults.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If specified as a valid, non-null UUID, this object is an instance of the object with the given UUID, meaning that it will inherit &#039;&#039;&#039;ALL&#039;&#039;&#039; &#039;&#039;unspecified properties&#039;&#039; from the instanced object, &#039;&#039;&#039;with the notable exception of the &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#3.1. &lt;/ins&gt;id&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|id]]&lt;/ins&gt;&amp;lt;/code&amp;gt; property&#039;&#039;&#039;, instead of falling back to the usual defaults.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that it will &amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039; affect the object&amp;#039;s &amp;#039;&amp;#039;specified properties&amp;#039;&amp;#039;; these will effectively &amp;quot;override&amp;quot; any properties taken from the instanced object.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note that it will &amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039; affect the object&amp;#039;s &amp;#039;&amp;#039;specified properties&amp;#039;&amp;#039;; these will effectively &amp;quot;override&amp;quot; any properties taken from the instanced object.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l495&quot;&gt;Line 495:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 495:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Custom Properties ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Custom Properties ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In addition to all of the standard properties listed in the above specification, it is also completely valid to have your own custom properties which are not part of the specification, as demonstrated with the &amp;lt;code&amp;gt;myCustomEditor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt; properties shown in the example file.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In addition to all of the standard properties listed in the above specification, it is also completely valid to have your own custom properties which are not part of the specification, as demonstrated with the &amp;lt;code&amp;gt;myCustomEditor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt; properties shown in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[HSON Format#Example|&lt;/ins&gt;the example file&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you use custom properties, it&amp;#039;s highly recommended to place them in a property named after your tooling, as demonstrated with the &amp;lt;code&amp;gt;myCustomEditor&amp;lt;/code&amp;gt; properties in the example.&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you use custom properties, it&amp;#039;s highly recommended to place them in a property named after your tooling, as demonstrated with the &amp;lt;code&amp;gt;myCustomEditor&amp;lt;/code&amp;gt; properties in the example.&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-47:rev-51:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
	<entry>
		<id>https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=47&amp;oldid=prev</id>
		<title>PTKay: Created page with &quot;&#039;&#039;&#039;The Hedgehog Set Object Notation Format&#039;&#039;&#039; (&quot;HSON&quot;) is a custom JSON-based file format designed collaboratively by &#039;&#039;&#039;Darío&#039;&#039;&#039;, &#039;&#039;&#039;Radfordhound&#039;&#039;&#039;, &#039;&#039;&#039;ĐeäTh&#039;&#039;&#039;, &#039;&#039;&#039;Skyth&#039;&#039;&#039;, and &#039;&#039;&#039;Sajid&#039;&#039;&#039; to represent object placement in a &quot;universal&quot; (non-game/editor-specific) way.  It was designed with the following principles in-mind:  * &#039;&#039;&#039;Be universal.&#039;&#039;&#039; Specifically, it must be able to represent object placement data from &#039;&#039;at least&#039;&#039; any mainline 3D Sonic game in a non-ga...&quot;</title>
		<link rel="alternate" type="text/html" href="https://hedgedocs.com/index.php?title=HSON_Format&amp;diff=47&amp;oldid=prev"/>
		<updated>2025-02-14T10:51:03Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;The Hedgehog Set Object Notation Format&amp;#039;&amp;#039;&amp;#039; (&amp;quot;HSON&amp;quot;) is a custom JSON-based file format designed collaboratively by &amp;#039;&amp;#039;&amp;#039;Darío&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Radfordhound&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ĐeäTh&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Skyth&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Sajid&amp;#039;&amp;#039;&amp;#039; to represent object placement in a &amp;quot;universal&amp;quot; (non-game/editor-specific) way.  It was designed with the following principles in-mind:  * &amp;#039;&amp;#039;&amp;#039;Be universal.&amp;#039;&amp;#039;&amp;#039; Specifically, it must be able to represent object placement data from &amp;#039;&amp;#039;at least&amp;#039;&amp;#039; any mainline 3D Sonic game in a non-ga...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The Hedgehog Set Object Notation Format&amp;#039;&amp;#039;&amp;#039; (&amp;quot;HSON&amp;quot;) is a custom JSON-based file format designed collaboratively by &amp;#039;&amp;#039;&amp;#039;Darío&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Radfordhound&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ĐeäTh&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Skyth&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Sajid&amp;#039;&amp;#039;&amp;#039; to represent object placement in a &amp;quot;universal&amp;quot; (non-game/editor-specific) way.&lt;br /&gt;
&lt;br /&gt;
It was designed with the following principles in-mind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be universal.&amp;#039;&amp;#039;&amp;#039; Specifically, it must be able to represent object placement data from &amp;#039;&amp;#039;at least&amp;#039;&amp;#039; any mainline 3D Sonic game in a non-game/editor-specific way.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be simple.&amp;#039;&amp;#039;&amp;#039; Specifically, it must not be difficult to parse and to generate.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be flexible.&amp;#039;&amp;#039;&amp;#039; Specifically, it must be able to be adapted to do anything future games and tools may require.&lt;br /&gt;
&lt;br /&gt;
== JSON Schema ==&lt;br /&gt;
The official JSON Schema for the HSON Format can be found at the [https://hedgedocs.com/docs/general/hson/ hson-schema GitHub repository].&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s useful (but not necessary) to validate .hson files against this schema in editors which support this feature, as doing so allows you to have autocompletion, descriptions of each property, and data validation.&lt;br /&gt;
&lt;br /&gt;
To validate &amp;#039;&amp;#039;all&amp;#039;&amp;#039; .hson files against the schema in your editor of choice, refer to the instructions in the README from the above repository.&lt;br /&gt;
&lt;br /&gt;
To manually validate against the schema on a per-file basis, include the following line at the top-level of your HSON file(s), before the HSON file format version parameter.&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;$schema&amp;quot;: &amp;quot;https://raw.githubusercontent.com/hedge-dev/hson-schema/main/hson.schema.json&amp;quot;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If writing tooling that generates HSON, consider having your tooling write this line to generated files.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
As of the time of writing, the following known implementations exist:&lt;br /&gt;
&lt;br /&gt;
=== C# ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;libHSON:&amp;#039;&amp;#039;&amp;#039; The official C# implementation of HSON. Allows for simple, efficient, feature-complete, two-way serialization of HSON data.&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HedgeLib:&amp;#039;&amp;#039;&amp;#039; Radfordhound&amp;#039;s open-source library and collection of tools that aims to makes modding games in the Sonic the Hedgehog franchise easier. It contains a feature-complete two-way HSON implementation, which is used in its level-editing tooling.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
The following is an example file in the HSON Format, which represents a &amp;quot;project&amp;quot; called &amp;quot;Sample Project&amp;quot; that contains 5 objects.&lt;br /&gt;
&lt;br /&gt;
This example file will be referenced periodically throughout the format specification.&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$schema&amp;quot;: &amp;quot;https://raw.githubusercontent.com/hedge-dev/hson-schema/main/hson.schema.json&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;metadata&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Sample Project&amp;quot;,&lt;br /&gt;
    &amp;quot;author&amp;quot;: &amp;quot;Takashi Iizuka, Morio Kishimoto&amp;quot;,&lt;br /&gt;
    &amp;quot;date&amp;quot;: &amp;quot;2023-02-09T22:38:42Z&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;green hill is looking a lot more like sand hill rn&amp;quot;,&lt;br /&gt;
    &amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
      &amp;quot;viewportTabIndex&amp;quot;: 0&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;objects&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Spring #1&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Spring&amp;quot;,&lt;br /&gt;
      &amp;quot;position&amp;quot;: [ 100.0, 0.0, 0.0 ],&lt;br /&gt;
      &amp;quot;rotation&amp;quot;: [ 0.0, 0.0, 0.0, 1.0 ],&lt;br /&gt;
      &amp;quot;scale&amp;quot;: [ 1.0, 1.0, 1.0 ],&lt;br /&gt;
      &amp;quot;isEditorVisible&amp;quot;: true,&lt;br /&gt;
      &amp;quot;isExcluded&amp;quot;: false,&lt;br /&gt;
      &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
        &amp;quot;tags&amp;quot;: {&lt;br /&gt;
          &amp;quot;RangeSpawning&amp;quot;: {&lt;br /&gt;
            &amp;quot;rangeIn&amp;quot;: 100.0,&lt;br /&gt;
            &amp;quot;rangeOut&amp;quot;: 20.0&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;visual&amp;quot;: &amp;quot;Normal&amp;quot;,&lt;br /&gt;
        &amp;quot;firstSpeed&amp;quot;: 420,&lt;br /&gt;
        &amp;quot;outOfControl&amp;quot;: 2.5,&lt;br /&gt;
        &amp;quot;isHorming&amp;quot;: true,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;action&amp;quot;: &amp;quot;On&amp;quot;,&lt;br /&gt;
            &amp;quot;objectIds&amp;quot;: [&lt;br /&gt;
                &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
                &amp;quot;{38285a58-9969-4c5f-a649-b91440962a71}&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;delayTime&amp;quot;: 0.5&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;action&amp;quot;: &amp;quot;Off&amp;quot;,&lt;br /&gt;
            &amp;quot;objectIds&amp;quot;: [],&lt;br /&gt;
            &amp;quot;delayTime&amp;quot;: 0.0&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;action&amp;quot;: &amp;quot;Off&amp;quot;,&lt;br /&gt;
            &amp;quot;objectIds&amp;quot;: [],&lt;br /&gt;
            &amp;quot;delayTime&amp;quot;: 0.0&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Ring&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
      &amp;quot;parentId&amp;quot;: &amp;quot;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Ring&amp;quot;,&lt;br /&gt;
      &amp;quot;position&amp;quot;: [ 0.0, 1.0, 0.0 ],&lt;br /&gt;
      &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
        &amp;quot;visibility&amp;quot;: &amp;quot;Visible&amp;quot;,&lt;br /&gt;
        &amp;quot;respawnTime&amp;quot;: 0.0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;myCustomValue&amp;quot;: 893.5,&lt;br /&gt;
      &amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
        &amp;quot;presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;,&lt;br /&gt;
        &amp;quot;presetPlacementDistance&amp;quot;: 1.0&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;{38285a58-9969-4c5f-a649-b91440962a71}&amp;quot;,&lt;br /&gt;
      &amp;quot;instanceOf&amp;quot;: &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
      &amp;quot;position&amp;quot;: [ 0.0, 2.0, 0.0 ],&lt;br /&gt;
      &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
        &amp;quot;respawnTime&amp;quot;: 0.5&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;{81fdcaff-aa37-4c47-a665-5b6265a6b780}&amp;quot;,&lt;br /&gt;
      &amp;quot;parentId&amp;quot;: &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;DashPanel&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Format Specification ==&lt;br /&gt;
What follows is a specification of all standard properties supported by the HSON Format.&lt;br /&gt;
{{Notice|type=note|content=All of the following properties are &amp;lt;b&amp;gt;OPTIONAL&amp;lt;/b&amp;gt;, unless otherwise specified.}}&lt;br /&gt;
&lt;br /&gt;
=== 1. version ===&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: number&lt;br /&gt;
• &amp;lt;b&amp;gt;Minimum&amp;lt;/b&amp;gt;: 1&lt;br /&gt;
&lt;br /&gt;
This value is &amp;lt;b&amp;gt;REQUIRED&amp;lt;/b&amp;gt; to be present in all HSON files.}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The version of the HSON format being used by this file.&amp;#039;&amp;#039;&amp;#039; It is represented as a number that is restricted in the following ways:&lt;br /&gt;
&lt;br /&gt;
* It must have a zero fractional part (e.g. &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt; would not be allowed, but &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; are).&lt;br /&gt;
* It must be greater than or equal to 1.&lt;br /&gt;
&lt;br /&gt;
Because of these restrictions, it is valid for tooling to parse this value into an &amp;lt;code&amp;gt;unsigned int&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently, version 1 is the latest version.&lt;br /&gt;
&lt;br /&gt;
=== 2. metadata ===&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: object}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Metadata for the project represented by this file.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
It is intended to be used purely for tooling display purposes.&lt;br /&gt;
&lt;br /&gt;
metadata is represented as a JSON &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; consisting of the following properties:&lt;br /&gt;
&lt;br /&gt;
==== 2.1. name ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The name of the project represented by this file.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== 2.2. author ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The author(s) of the project represented by this file.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the project has multiple authors, we recommend writing each author&amp;#039;s name with a comma and space separating them, like so:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;author&amp;quot;: &amp;quot;Me, Myself, I&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2.3. date ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The date/time the project was created at&amp;#039;&amp;#039;&amp;#039;, represented as a string in the RFC 3339 format (a similar standard to ISO 8601).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;It is invalid to represent the date using any other format.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This limitation makes parsing dates in tooling a lot easier.&lt;br /&gt;
{{Notice|type=example|content=Feel free to copy-paste any of these code snippets and do what you want with them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;C#&amp;lt;/b&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static string GetRFC3339Time()&lt;br /&gt;
{&lt;br /&gt;
    return DateTime.UtcNow.ToString(&amp;quot;yyyy-MM-ddTHH:mm:ssK&amp;quot;,&lt;br /&gt;
        CultureInfo.InvariantCulture);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;C++11&amp;lt;/b&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
#include &amp;lt;ctime&amp;gt;&lt;br /&gt;
&lt;br /&gt;
std::string getRFC3339Time()&lt;br /&gt;
{&lt;br /&gt;
    char buf[32]; // This is a few extra characters than should be necessary, just to be safe.&lt;br /&gt;
    const auto time = std::time(nullptr);&lt;br /&gt;
    const auto len = std::strftime(buf, sizeof(buf), &amp;quot;%FT%TZ&amp;quot;, std::gmtime(&amp;amp;time));&lt;br /&gt;
&lt;br /&gt;
    if (!len)&lt;br /&gt;
    {&lt;br /&gt;
        throw std::runtime_error(&amp;quot;Failed to get RFC 3339 format time&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return std::string(buf, len);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;C&amp;lt;/b&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
    Returns 0 on failure, or the number of bytes written&lt;br /&gt;
    into buf (not including the null terminator) on success.&lt;br /&gt;
*/&lt;br /&gt;
int getRFC3339Time(size_t bufSize, char* buf)&lt;br /&gt;
{&lt;br /&gt;
    const time_t time = time(NULL);&lt;br /&gt;
    return strftime(buf, bufSize, &amp;quot;%FT%TZ&amp;quot;, gmtime(&amp;amp;time));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== 2.4. version ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The version number of the project&amp;#039;&amp;#039;&amp;#039;, represented as a string.&lt;br /&gt;
&lt;br /&gt;
How you want to version your project is up to you; these are all valid:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;&lt;br /&gt;
&amp;quot;version&amp;quot;: &amp;quot;1&amp;quot;&lt;br /&gt;
&amp;quot;version&amp;quot;: &amp;quot;beta release&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tooling should treat this as an arbitrary string in no particular format.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== 2.5. description ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The description of the project represented by this file.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== 3. objects ===&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: array}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;An array containing all of the objects contained within the project.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Each object is represented as a JSON &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; consisting of the following properties:&lt;br /&gt;
&lt;br /&gt;
==== 3.1. id ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The UUID (aka GUID) of the object&amp;#039;&amp;#039;&amp;#039;, represented as a case-insensitive string formatted like this: &amp;lt;code&amp;gt;{11111111-2222-3333-4444-555555555555}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that it is enclosed in curly brackets; this is to make it clear that it is supposed to be parsed as a UUID, and &amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039; as a number.&lt;br /&gt;
&lt;br /&gt;
The object&amp;#039;s UUID is used to reference the object throughout the project.&lt;br /&gt;
&lt;br /&gt;
It must be unique throughout the project; that is, &amp;#039;&amp;#039;&amp;#039;no two objects within the same project are allowed to have the same UUID.&amp;#039;&amp;#039;&amp;#039; That&amp;#039;s what makes them &amp;#039;&amp;#039;UUIDs&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
It also &amp;#039;&amp;#039;&amp;#039;cannot be set to the following value&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;{00000000-0000-0000-0000-000000000000}&amp;lt;/code&amp;gt;, as this value is reserved for &amp;quot;null&amp;quot; object references.&lt;br /&gt;
&lt;br /&gt;
This property can be omitted (leaving the object without a specified UUID) if the object never needs to be referenced. This helps to save some space.&lt;br /&gt;
&lt;br /&gt;
Tools are free to generate their own UUIDs for objects without a specified UUID, or to just think of the object as not having a UUID. Whichever is more convenient.&lt;br /&gt;
{{Notice|type=example|content=&amp;lt;b&amp;gt;Valid UUID&amp;lt;/b&amp;gt; (lowercase):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Valid UUID&amp;lt;/b&amp;gt; (uppercase):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;{FD3E6BC9-5D2D-4DA8-A22D-F88E709B3E48}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Invalid UUID&amp;lt;/b&amp;gt; (no enclosing curly brackets):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Invalid UUID&amp;lt;/b&amp;gt; (not a UUID):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;{2}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Invalid UUID&amp;lt;/b&amp;gt; (the special &amp;quot;null&amp;quot; UUID value is not valid to use as the object&amp;#039;s id):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Valid object references&amp;lt;/b&amp;gt; (the special &amp;quot;null&amp;quot; UUID value is valid to use in object references):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;parentId&amp;quot;: &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;,&lt;br /&gt;
    &amp;quot;instanceOf&amp;quot;: &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== 3.2. name ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The name of the object.&amp;#039;&amp;#039;&amp;#039; This is an arbitrary string that can be anything you want.&lt;br /&gt;
&lt;br /&gt;
It is intended to be used purely for tooling display purposes.&lt;br /&gt;
&lt;br /&gt;
==== 3.3. parentId ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The id of this object&amp;#039;s parent object&amp;#039;&amp;#039;&amp;#039;, or a null UUID.&lt;br /&gt;
&lt;br /&gt;
If specified as a valid, non-null UUID, this object is a child of the object with the given UUID, meaning that the object&amp;#039;s transform (represented via &amp;lt;code&amp;gt;position&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rotation&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;scale&amp;lt;/code&amp;gt;) is relative to the parent&amp;#039;s transform (which is relative to its parent&amp;#039;s transform, and so on).&lt;br /&gt;
&lt;br /&gt;
Otherwise, if it is not specified, or is specified as a null UUID, this object has no parent object, and the transform is global.&lt;br /&gt;
{{Notice|type=example|content=&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
  &amp;quot;parentId&amp;quot;: &amp;quot;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;Ring&amp;quot;,&lt;br /&gt;
  &amp;quot;position&amp;quot;: [ 0.0, 1.0, 0.0 ],&lt;br /&gt;
  &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
    &amp;quot;visibility&amp;quot;: &amp;quot;Visible&amp;quot;,&lt;br /&gt;
    &amp;quot;respawnTime&amp;quot;: 0.0&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;myCustomValue&amp;quot;: 893.5,&lt;br /&gt;
  &amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
    &amp;quot;presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;,&lt;br /&gt;
    &amp;quot;presetPlacementDistance&amp;quot;: 1.0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this snippet from the example file, the object has specified a position of &amp;lt;code&amp;gt;[ 0.0, 1.0, 0.0 ]&amp;lt;/code&amp;gt;, and a parentId of &amp;lt;code&amp;gt;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;lt;/code&amp;gt;, which means that its transform is local to the transform of the object which uses that UUID (not included in this snippet).&lt;br /&gt;
&lt;br /&gt;
This parent object has a position of &amp;lt;code&amp;gt;[ 100.0, 0.0, 0.0 ]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, the above object&amp;#039;s global position is &amp;lt;code&amp;gt;[ 100.0, 1.0, 0.0 ]&amp;lt;/code&amp;gt;.}}{{Notice|type=example|content=&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;{81fdcaff-aa37-4c47-a665-5b6265a6b780}&amp;quot;,&lt;br /&gt;
  &amp;quot;parentId&amp;quot;: &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;DashPanel&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this snippet from the example file, the object has specified a parentId of &amp;lt;code&amp;gt;{00000000-0000-0000-0000-000000000000}&amp;lt;/code&amp;gt; (the special UUID null value), which is equivalent to not specifying a parentId. This means that this object has no parent.}}&lt;br /&gt;
&lt;br /&gt;
==== 3.4. instanceOf ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The id of the object to be instanced&amp;#039;&amp;#039;&amp;#039;, or a null UUID.&lt;br /&gt;
&lt;br /&gt;
If specified as a valid, non-null UUID, this object is an instance of the object with the given UUID, meaning that it will inherit &amp;#039;&amp;#039;&amp;#039;ALL&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;unspecified properties&amp;#039;&amp;#039; from the instanced object, &amp;#039;&amp;#039;&amp;#039;with the notable exception of the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; property&amp;#039;&amp;#039;&amp;#039;, instead of falling back to the usual defaults.&lt;br /&gt;
&lt;br /&gt;
Note that it will &amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039; affect the object&amp;#039;s &amp;#039;&amp;#039;specified properties&amp;#039;&amp;#039;; these will effectively &amp;quot;override&amp;quot; any properties taken from the instanced object.&lt;br /&gt;
&lt;br /&gt;
Otherwise, if it is not specified, or is specified as a null UUID, this object is not an instance.&lt;br /&gt;
{{Notice|type=example|content=&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
  &amp;quot;parentId&amp;quot;: &amp;quot;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;Ring&amp;quot;,&lt;br /&gt;
  &amp;quot;position&amp;quot;: [ 0.0, 1.0, 0.0 ],&lt;br /&gt;
  &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
    &amp;quot;visibility&amp;quot;: &amp;quot;Visible&amp;quot;,&lt;br /&gt;
    &amp;quot;respawnTime&amp;quot;: 0.0&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;myCustomValue&amp;quot;: 893.5,&lt;br /&gt;
  &amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
    &amp;quot;presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;,&lt;br /&gt;
    &amp;quot;presetPlacementDistance&amp;quot;: 1.0&lt;br /&gt;
  }&lt;br /&gt;
},&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;{38285a58-9969-4c5f-a649-b91440962a71}&amp;quot;,&lt;br /&gt;
  &amp;quot;instanceOf&amp;quot;: &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
  &amp;quot;position&amp;quot;: [ 0.0, 2.0, 0.0 ],&lt;br /&gt;
  &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
    &amp;quot;respawnTime&amp;quot;: 0.5&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this snippet from the example file, the second listed object (UUID: &amp;lt;code&amp;gt;38285a58-9969-4c5f-a649-b91440962a71&amp;lt;/code&amp;gt;) is an instance of the first listed object (UUID: &amp;lt;code&amp;gt;2737e92f-4842-46cb-a590-e074f7b882f0&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
As such, it will inherit all of the unspecified properties from the first object, including the &amp;lt;code&amp;gt;parentId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt;, and &amp;lt;codemyCustomEditor&amp;lt;/code&amp;gt; properties, as well as the visibility parameter.&lt;br /&gt;
&lt;br /&gt;
It will &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt;, however, inherit the specified properties, including the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;instanceOf&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;position&amp;lt;/code&amp;gt; properties, as well as the &amp;lt;code&amp;gt;respawnTime&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
This means that the second object in the above snippet will be equivalent to the following object:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;{38285a58-9969-4c5f-a649-b91440962a71}&amp;quot;,&lt;br /&gt;
  &amp;quot;parentId&amp;quot;: &amp;quot;{fd3e6bc9-5d2d-4da8-a22d-f88e709b3e48}&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;Ring&amp;quot;,&lt;br /&gt;
  &amp;quot;instanceOf&amp;quot;: &amp;quot;{2737e92f-4842-46cb-a590-e074f7b882f0}&amp;quot;,&lt;br /&gt;
  &amp;quot;position&amp;quot;: [ 0.0, 2.0, 0.0 ],&lt;br /&gt;
  &amp;quot;parameters&amp;quot;: {&lt;br /&gt;
    &amp;quot;visibility&amp;quot;: &amp;quot;Visible&amp;quot;,&lt;br /&gt;
    &amp;quot;respawnTime&amp;quot;: 0.5&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;myCustomValue&amp;quot;: 893.5,&lt;br /&gt;
  &amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
    &amp;quot;presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;,&lt;br /&gt;
    &amp;quot;presetPlacementDistance&amp;quot;: 1.0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As you can see, this is a simple, yet powerful system that allows for many possibilities.}}{{Notice|type=note|content=UUIDs have a special exception; they &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; get inherited from the instanced object.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;Ring&amp;quot;&lt;br /&gt;
},&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instanceOf&amp;quot;: &amp;quot;{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The second object listed in the above example will inherit all properties from the first object, &amp;lt;i&amp;gt;except&amp;lt;/i&amp;gt; for the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This is due to the fact that every valid object must have its own unique UUID.}}&lt;br /&gt;
&lt;br /&gt;
==== 3.5. type ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: string&lt;br /&gt;
&lt;br /&gt;
This value is &amp;lt;b&amp;gt;REQUIRED&amp;lt;/b&amp;gt; to be present, &amp;lt;b&amp;gt;unless this object is an instance of another object&amp;lt;/b&amp;gt;, in which case, it is optional, as the type will just be taken from the instanced object.}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The type of the object&amp;#039;&amp;#039;&amp;#039; (e.g. &amp;quot;Spring&amp;quot;, &amp;quot;Ring&amp;quot;, etc.).&lt;br /&gt;
&lt;br /&gt;
Note that this value is not game-specific and can be set to anything, with one exception: &amp;#039;&amp;#039;&amp;#039;it is not valid for type to be an empty string&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==== 3.6. position ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: array&lt;br /&gt;
• &amp;lt;b&amp;gt;Default&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;[ 0.0, 0.0, 0.0 ]&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The position of the object within 3D space.&amp;#039;&amp;#039;&amp;#039; Represented as a three-dimensional array of &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;s, representing a vector3 using Y-Up right-handed coordinates (X-right, Y-up, and Z-backwards), and meters as its units.&lt;br /&gt;
&lt;br /&gt;
If this object is a child of another object, this position value is local to the transform of the parent object (which is local to the transform of its parent, and so on).&lt;br /&gt;
&lt;br /&gt;
Otherwise, this position value is global.&lt;br /&gt;
&lt;br /&gt;
If this property is not specified, the value &amp;lt;code&amp;gt;[ 0.0, 0.0, 0.0 ]&amp;lt;/code&amp;gt; will be used as a fallback.&lt;br /&gt;
&lt;br /&gt;
==== 3.7. rotation ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: array&lt;br /&gt;
• &amp;lt;b&amp;gt;Default&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;[ 0.0, 0.0, 0.0, 1.0 ]&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The rotation of the object within 3D space.&amp;#039;&amp;#039;&amp;#039; Represented as a four-dimensional array of &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;s, representing a quaternion using Y-up right-handed coordinates.&lt;br /&gt;
&lt;br /&gt;
If this object is a child of another object, this rotation value is local to the transform of the parent object (which is local to the transform of its parent, and so on).&lt;br /&gt;
&lt;br /&gt;
Otherwise, this rotation value is global.&lt;br /&gt;
&lt;br /&gt;
If this property is not specified, the value &amp;lt;code&amp;gt;[ 0.0, 0.0, 0.0, 1.0 ]&amp;lt;/code&amp;gt; will be used as a fallback.&lt;br /&gt;
{{Notice|type=note|content=Rotation values &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be represented as a four-dimensional array representing a quaternion.&lt;br /&gt;
&lt;br /&gt;
It is not valid to represent rotation values using other methods, such as by using three-dimensional arrays representing euler angles or binary angle measurement (BAMS).&lt;br /&gt;
&lt;br /&gt;
When dealing with formats that utilize these (or other) methods, tooling must convert to/from quaternions as necessary.}}&lt;br /&gt;
&lt;br /&gt;
==== 3.8. scale ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: array&lt;br /&gt;
• &amp;lt;b&amp;gt;Default&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;[ 1.0, 1.0, 1.0 ]&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The scale of the object within 3D space.&amp;#039;&amp;#039;&amp;#039; Represented as a three-dimensional array of &amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;s, representing a vector3 using Y-up right-handed coordinates (X-right, Y-up, and Z-backwards), and meters as its units.&lt;br /&gt;
&lt;br /&gt;
If this object is a child of another object, this scale value is local to the transform of the parent object (which is local to the transform of its parent, and so on).&lt;br /&gt;
&lt;br /&gt;
Otherwise, this scale value is global.&lt;br /&gt;
&lt;br /&gt;
If this property is not specified, the value &amp;lt;code&amp;gt;[ 1.0, 1.0, 1.0 ]&amp;lt;/code&amp;gt; will be used as a fallback.&lt;br /&gt;
&lt;br /&gt;
==== 3.9. isEditorVisible ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: boolean&lt;br /&gt;
• &amp;lt;b&amp;gt;Default&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Whether the object should be visible in the editor&amp;#039;s 3D display&amp;#039;&amp;#039;&amp;#039; (as applicable). Note that this is purely for editors, and has no effect on whether the object is visible in-game.&lt;br /&gt;
&lt;br /&gt;
When converting from HSON to game-specific file(s), tooling should ignore this value.&lt;br /&gt;
&lt;br /&gt;
If this property is not specified, the value &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be used as a fallback.&lt;br /&gt;
&lt;br /&gt;
==== 3.10. isExcluded ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: boolean&lt;br /&gt;
• &amp;lt;b&amp;gt;Default&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Whether the object should be excluded from game data.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If specified as &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, editors should (as applicable) hide the object from 3D display, but still show it in the object hierarchy as a disabled object, and provide a mechanism for users to un-exclude it.&lt;br /&gt;
&lt;br /&gt;
When converting from HSON to a game format, tooling should treat excluded objects as if they do not exist, by simply not writing them to the resulting game-specific file(s).&lt;br /&gt;
&lt;br /&gt;
If this property is not specified, the value &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; will be used as a fallback.&lt;br /&gt;
&lt;br /&gt;
==== 3.11. parameters ====&lt;br /&gt;
{{Notice|type=info|content=• &amp;lt;b&amp;gt;Type&amp;lt;/b&amp;gt;: object}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;All named parameters specific to this object type and/or game.&amp;#039;&amp;#039;&amp;#039; For example, the &amp;lt;code&amp;gt;firstSpeed&amp;lt;/code&amp;gt; parameter for objects of the &amp;lt;code&amp;gt;Spring&amp;lt;/code&amp;gt; type in Sonic Frontiers, which specifies the speed the object will launch the player off with.&lt;br /&gt;
&lt;br /&gt;
This is the place to put all parameters that are specific to objects of the specified &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. It&amp;#039;s also a great place to put game-specific parameters, such as object visibility ranges.&lt;br /&gt;
&lt;br /&gt;
Any number of properties of any JSON type are allowed here, all of which are always entirely optional.&lt;br /&gt;
&lt;br /&gt;
Tooling should treat this as an arbitrary list of key-value pairs, and provide some mechanism that allows the user to modify &amp;#039;&amp;#039;&amp;#039;ALL&amp;#039;&amp;#039;&amp;#039; of them as they please. It does not, however, have to provide a mechanism to add, remove, or edit the type of these parameters, as this may be undesirable depending on your use-case.&lt;br /&gt;
&lt;br /&gt;
Tooling should not require any of these parameters to be present. When converting, tooling should, instead, lookup each parameter by its name as needed, and either error-out or fallback to a default value if a required parameter is not present.&lt;br /&gt;
{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as parameter names:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
• Empty strings.&lt;br /&gt;
• Strings which contain forward slashes.}}{{Notice|type=info|content=The &amp;quot;no forward slash&amp;quot; rule allows tooling to access parameters by &amp;quot;path&amp;quot;, like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;parameters&amp;quot;: {&lt;br /&gt;
  &amp;quot;tags&amp;quot;: {&lt;br /&gt;
    &amp;quot;RangeSpawning&amp;quot;: {&lt;br /&gt;
      &amp;quot;rangeIn&amp;quot;: 100.0,&lt;br /&gt;
      &amp;quot;rangeOut&amp;quot;: 20.0&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
• &amp;lt;code&amp;gt;&amp;quot;tags/RangeSpawning/rangeIn&amp;quot;: 100.0&amp;lt;/code&amp;gt;&lt;br /&gt;
• &amp;lt;code&amp;gt;&amp;quot;tags/RangeSpawning/rangeIn&amp;quot;: 20.0&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Custom Properties ==&lt;br /&gt;
In addition to all of the standard properties listed in the above specification, it is also completely valid to have your own custom properties which are not part of the specification, as demonstrated with the &amp;lt;code&amp;gt;myCustomEditor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt; properties shown in the example file.&lt;br /&gt;
&lt;br /&gt;
If you use custom properties, it&amp;#039;s highly recommended to place them in a property named after your tooling, as demonstrated with the &amp;lt;code&amp;gt;myCustomEditor&amp;lt;/code&amp;gt; properties in the example.&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
  &amp;quot;presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;,&lt;br /&gt;
  &amp;quot;presetPlacementDistance&amp;quot;: 1.0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Doing this helps to reduce potential name collisions with custom properties from other tools, which might end up sharing the same name(s).&lt;br /&gt;
&lt;br /&gt;
If your custom property is intended to be used across multiple tools (e.g. an unofficial &amp;quot;extension&amp;quot; to the HSON format), then it&amp;#039;s recommended to ignore the above advice and just use the custom property directly instead, as demonstrated with the &amp;lt;code&amp;gt;myCustomValue&amp;lt;/code&amp;gt; property in the example.&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;myCustomValue&amp;quot;: 893.5,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Notice|type=note|content=&amp;lt;b&amp;gt;Note that the following are not allowed to be used as custom property names:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
• Names which directly collide with properties that are part of the HSON specification (e.g. you can have a custom property called &amp;quot;position&amp;quot;, but it has to be placed such that it does not collide with HSON&amp;#039;s position property).&lt;br /&gt;
• Empty strings&lt;br /&gt;
• Strings which contain forward slashes.}}{{Notice|type=info|content=The &amp;quot;no forward slash&amp;quot; rule allows tooling to access custom properties by &amp;quot;path&amp;quot;, like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;myCustomEditor&amp;quot;: {&lt;br /&gt;
  &amp;quot;presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;,&lt;br /&gt;
  &amp;quot;presetPlacementDistance&amp;quot;: 1.0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
• &amp;lt;code&amp;gt;&amp;quot;myCustomEditor/presetPlacementType&amp;quot;: &amp;quot;LINE&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
• &amp;lt;code&amp;gt;&amp;quot;myCustomEditor/presetPlacementDistance&amp;quot;: 1.0&amp;lt;/code&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>PTKay</name></author>
	</entry>
</feed>