<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://edfieldmanual.com/index.php?action=history&amp;feed=atom&amp;title=Elite_Dangerous_Field_Manual%3AAdding_Structured_Data</id>
	<title>Elite Dangerous Field Manual:Adding Structured Data - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://edfieldmanual.com/index.php?action=history&amp;feed=atom&amp;title=Elite_Dangerous_Field_Manual%3AAdding_Structured_Data"/>
	<link rel="alternate" type="text/html" href="https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Adding_Structured_Data&amp;action=history"/>
	<updated>2026-08-25T11:38:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Adding_Structured_Data&amp;diff=309&amp;oldid=prev</id>
		<title>Sythan: New: editor documentation, content architecture phase</title>
		<link rel="alternate" type="text/html" href="https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Adding_Structured_Data&amp;diff=309&amp;oldid=prev"/>
		<updated>2026-08-07T22:18:25Z</updated>

		<summary type="html">&lt;p&gt;New: editor documentation, content architecture phase&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;How EDFM&amp;#039;s structured game data works, and how to add to it without writing Lua.&lt;br /&gt;
&lt;br /&gt;
== The idea ==&lt;br /&gt;
For data genuinely reused in more than one place (an Engineer&amp;#039;s own infobox, [[List of Engineers]], and [[Engineer Capability Comparison]] all need the same facts about that Engineer), EDFM stores the canonical value &amp;#039;&amp;#039;&amp;#039;once&amp;#039;&amp;#039;&amp;#039;, as a JSON page, and lets a small Scribunto (Lua) module read and format it everywhere it&amp;#039;s needed. This means an Engineer&amp;#039;s infobox and the list/comparison pages can never quietly drift out of sync — there&amp;#039;s only one place the fact actually lives.&lt;br /&gt;
&lt;br /&gt;
This is deliberately &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; used for everything — most of an article (its prose, its walkthrough steps, its sourcing) stays as normal wikitext. Structured data is specifically for facts that get reused across multiple pages. See [[Elite Dangerous Field Manual:Content Style Guide]] and the project&amp;#039;s general preference for plain templates over Lua wherever plain templates are enough.&lt;br /&gt;
&lt;br /&gt;
== Adding a new Engineer&amp;#039;s data record ==&lt;br /&gt;
This is the only structured-data type live so far (Engineers) — the same pattern will extend to other entity types later.&lt;br /&gt;
# Create a new page named &amp;lt;code&amp;gt;Module:Data/Engineers/&amp;amp;lt;Engineer name&amp;amp;gt;&amp;lt;/code&amp;gt; (matching the Engineer&amp;#039;s own Main-namespace article title exactly), with content model &amp;#039;&amp;#039;&amp;#039;JSON&amp;#039;&amp;#039;&amp;#039;. The &amp;lt;code&amp;gt;Module:&amp;lt;/code&amp;gt; namespace defaults to Lua/Scribunto, not JSON, so you&amp;#039;ll need to set the content model explicitly — either via &amp;lt;code&amp;gt;Special:ChangeContentModel&amp;lt;/code&amp;gt; right after creating the page, or by appending &amp;lt;code&amp;gt;&amp;amp;amp;contentmodel=json&amp;lt;/code&amp;gt; to the edit URL before your first save.&lt;br /&gt;
# Copy the shape of an existing record — e.g. &amp;lt;code&amp;gt;Module:Data/Engineers/Broo Tarquin&amp;lt;/code&amp;gt; — field for field. Fields: &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engineer_type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;facility&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;specialties&amp;lt;/code&amp;gt; (a list), &amp;lt;code&amp;gt;max_grade&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;prerequisite_engineer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;prerequisite_engineer_note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;discovery_requirement&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;invitation_requirement&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unlock_requirement&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;colonia&amp;lt;/code&amp;gt; (true/false). Use &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for anything genuinely not yet confirmed — never invent a value just to fill the field.&lt;br /&gt;
# Add the Engineer&amp;#039;s name to the list in &amp;lt;code&amp;gt;Module:Data/Engineers/index&amp;lt;/code&amp;gt;.&lt;br /&gt;
# On the Engineer&amp;#039;s own article, replace a bare {{tl|Infobox}} call with {{tl|Engineer infobox|name=Engineer name}} — it will automatically pick up the new JSON record.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Don&amp;#039;t edit &amp;lt;code&amp;gt;Module:Engineers&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (the Lua module itself) unless you&amp;#039;re changing the schema everyone&amp;#039;s data depends on — adding a record is a JSON-only, no-Lua-required task.&lt;br /&gt;
&lt;br /&gt;
== Checking your work ==&lt;br /&gt;
After saving, revisit the Engineer&amp;#039;s own page and confirm the infobox still looks right, then check [[List of Engineers]] and [[Engineer Capability Comparison]] picked up the new row automatically. If a Lua error appears instead, the JSON is probably malformed (check for a missing comma or unescaped quote) — Special:ChangeContentModel can confirm the page actually saved as JSON rather than plain wikitext.&lt;br /&gt;
&lt;br /&gt;
{{Related articles|[[List of Engineers]] [[Engineer Capability Comparison]] [[Elite Dangerous Field Manual:Editorial Policy]]}}&lt;/div&gt;</summary>
		<author><name>Sythan</name></author>
	</entry>
</feed>