1{{define "title"}}Packed data{{end}}2{{define "content"}}3<section class="page-head inspector-head">4 <p class="eyebrow">Compiled artifact · native semantic truth</p>5 <h1>{{.Descriptor.Title}} <span class="dim">{{.Descriptor.Slug}}</span></h1>6 <p><code>{{.File}}</code></p>7 <div class="artifact-facts">8 <span><b>validated</b><small>all native entries</small></span>9 <span><b>{{short .Descriptor.Stamp}}</b><small>content stamp</small></span>10 <span><b>{{.Descriptor.Size}}</b><small>bytes</small></span>11 <span><b>{{.Descriptor.Revision}}</b><small>revision</small></span>12 <span><b>{{.Descriptor.CreatedAt}}</b><small>newest capture</small></span>13 </div>14</section>1516<section class="native-rail" aria-label="Native file decoding">17 <span><b>bootstrap</b><small>framing</small></span><i>→</i>18 <span><b>embedded schema</b><small>{{len .Schema}} types</small></span><i>→</i>19 <span><b>runtime union</b><small>{{.RuntimeTypes}} known types</small></span><i>→</i>20 <span><b>typed tables</b><small>{{.TableCount}} tables</small></span><i>+</i>21 <span><b>opaque blobs</b><small>{{.BlobCount}} blobs</small></span>22</section>2324{{range .Worlds}}25{{$world := .}}26<section class="card inspected-world">27 <header class="inspector-section-head">28 <div><p class="eyebrow">World</p><h2>{{.Title}}</h2><code>{{.ID}}</code></div>29 <p><b>{{len .FeatureSets}}</b> FeatureSets · <b>{{.Features}}</b> features · <b>{{len .Rasters}}</b> rasters · <b>{{len .Presentation.Layers}}</b> layers</p>30 </header>3132 <div class="world-foundation">33 <article class="inspect-node coordinate-node">34 <span class="node-kind">CoordinateSpace</span>35 <b>{{.CoordinateSpace.ID}}</b>36 <dl class="mini-terms">37 <div><dt>frame</dt><dd>{{.CoordinateSpace.Kind}} · {{.CoordinateSpace.Unit}}</dd></div>38 <div><dt>definition</dt><dd>{{.CoordinateSpace.Definition}}</dd></div>39 <div><dt>extent</dt><dd><code>{{.CoordinateSpace.Extent}}</code></dd></div>40 <div><dt>grid</dt><dd>z{{.CoordinateSpace.SourceZoom}} · first {{.CoordinateSpace.FirstTile}} · tile {{.CoordinateSpace.TileSize}} · size {{.CoordinateSpace.Size}}</dd></div>41 </dl>42 </article>43 <article class="inspect-node presentation-node">44 <span class="node-kind">Presentation</span>45 <b>{{.Presentation.Title}}</b>46 <p>{{len .Presentation.Layers}} layers · {{len .Presentation.Styles}} styles · {{len .Presentation.Legend}} legend entries</p>47 <details><summary>Layers, styles and legend</summary>48 <table><thead><tr><th>layer</th><th>FeatureSet</th><th>style</th><th>visibility</th><th>zoom</th></tr></thead><tbody>49 {{range .Presentation.Layers}}<tr><td>{{.ID}}</td><td><code>{{.FeatureSet}}</code></td><td>{{.Style}}</td><td>{{if .Visible}}visible{{else}}hidden{{end}} · {{.LabelPolicy}}</td><td>{{.MinZoom}}–{{.MaxZoom}}</td></tr>{{end}}50 </tbody></table>51 <h3>Styles</h3>52 {{range .Presentation.Styles}}<p><b>{{.ID}}</b> · {{.RenderAs}}{{if .Symbol}} · {{.Symbol}}{{end}}{{if .Stroke}} · stroke <code>{{.Stroke}}</code>{{end}}{{if .Fill}} · fill <code>{{.Fill}}</code>{{end}}{{if .IconAsset}} · asset {{.IconAsset}}{{end}}</p>{{end}}53 <h3>Legend</h3>54 {{range .Presentation.Legend}}<p><b>{{.Label}}</b> → {{.Layer}} · order {{.Order}}</p>{{end}}55 </details>56 </article>57 </div>5859 {{if .Rasters}}<div class="raster-strip">60 {{range .Rasters}}<article class="inspect-node raster-node">61 <span class="node-kind">RasterPyramid</span><b>{{.Name}}</b><br><code>{{.ID}}</code>62 <p>z{{.MinZoom}}–{{.MaxZoom}} · full z{{.FullZoom}} · {{.TileSize}}px · {{.Codec}}</p>63 <p class="dim">{{.TileBlobs}} packed tiles · formats {{.Formats}} · {{.Coverage}} coverage windows · {{if .Interpolate}}interpolated{{else}}nearest{{end}}{{if .Background}} · {{.Background}}{{end}}</p>64 <code>{{.Template}}</code>65 </article>{{end}}66 </div>{{end}}6768 <div class="inspected-sets">69 {{range .FeatureSets}}70 {{$set := .}}71 <article class="inspect-node inspected-set">72 <header><span class="node-kind">FeatureSet</span><h3>{{.Title}}</h3><code>{{.ID}}</code></header>73 <p><span class="status-chip semantic">{{.SemanticType}}</span><span class="status-chip geometry">{{.Geometry}}</span><b>{{.FeatureCount}}</b> features</p>74 <details><summary>{{len .Properties}} typed contract fields</summary>75 <table><thead><tr><th>name</th><th>kind</th><th>identity</th></tr></thead><tbody>76 {{range .Properties}}<tr><td>{{.Name}}{{if .Optional}} <span class="dim">optional</span>{{end}}</td><td><code>{{.Kind}}</code></td><td><code>{{.ID}}</code></td></tr>{{end}}77 </tbody></table>78 </details>79 <details open><summary>Features {{if .FeatureCount}}({{.Offset}}–{{if .HasNext}}{{.Next}}{{else}}{{.FeatureCount}}{{end}} of {{.FeatureCount}}){{end}}</summary>80 <div class="feature-summaries">81 {{range .Features}}<a href="/project/inspect?set={{$set.ID}}&feature={{.ID}}&offset={{$set.Offset}}"><b>{{.Title}}</b><small>{{.Geometry.Kind}} · {{.Geometry.Vertices}} positions</small></a>{{else}}<span class="dim">No compiled features.</span>{{end}}82 </div>83 {{if or .HasPrevious .HasNext}}<nav class="feature-pages">{{if .HasPrevious}}<a href="/project/inspect?set={{.ID}}&offset={{.Previous}}">Previous</a>{{end}}{{if .HasNext}}<a href="/project/inspect?set={{.ID}}&offset={{.Next}}">Next</a>{{end}}</nav>{{end}}84 </details>85 {{with .Selected}}86 <section class="feature-facts">87 <header><span class="node-kind">Feature facts</span><h3>{{.Title}}</h3><code>{{.ID}}</code></header>88 {{if .Subtitle}}<p>{{.Subtitle}}</p>{{end}}{{if .Description}}<p>{{.Description}}</p>{{end}}89 <div class="geometry-fact" data-geometry="{{.Geometry.Kind}}"><b>{{.Geometry.Kind}}</b><span>{{.Geometry.Parts}} parts · {{.Geometry.Rings}} rings · {{.Geometry.Vertices}} positions</span>{{if .Geometry.HasData}}<code>bounds {{.Geometry.Bounds}}</code>{{end}}</div>90 <details open><summary>{{len .Properties}} typed values</summary>91 <table><thead><tr><th>field</th><th>kind</th><th>value</th></tr></thead><tbody>92 {{range .Properties}}<tr><td>{{.Name}}<br><code>{{.ID}}</code></td><td>{{.Kind}}</td><td><code>{{.Value}}</code></td></tr>{{end}}93 </tbody></table>94 </details>95 <details open><summary>{{len .Relationships}} observed relationships</summary>96 {{range .Relationships}}<p><b>{{.Predicate}}</b> → {{if .Title}}{{.Title}}{{else}}<span class="warn-inline">unresolved</span>{{end}} <code>{{.Target}}</code></p>{{else}}<p class="dim">No relationship edges.</p>{{end}}97 </details>98 <details open><summary>{{len .Provenance}} provenance records</summary>99 {{range .Provenance}}<p><b>{{.Source}}</b> · native {{.NativeID}} · {{.CapturedAt}}</p>{{else}}<p class="dim">No provenance.</p>{{end}}100 </details>101 </section>102 {{end}}103 </article>104 {{end}}105 </div>106</section>107{{end}}108109<div class="inspector-lower-grid">110<section class="card">111 <h2>Assets and evidence receipt</h2>112 {{range .Assets}}<p><b>{{.ID}}</b> · {{.MediaType}} · {{.Bytes}} bytes{{if .Provenance}}<br><span class="dim">{{.Provenance}}</span>{{end}}</p>{{end}}113 {{with .Receipt}}<details open><summary>Executable replay receipt · {{len .Captures}} captures</summary>114 <p><b>{{.Project}}</b> · project digest <code>{{short .ProjectDigest}}</code></p>115 <table><thead><tr><th>source</th><th>adapter</th><th>capture</th><th>obligation</th><th>media / bytes</th><th>captured</th></tr></thead><tbody>116 {{range .Captures}}<tr><td>{{.Source}}</td><td>{{.Adapter}}<br><span class="dim">{{.AdapterVersion}}</span></td><td><code>{{short .SHA256}}</code><br><span class="dim">acq {{short .Acquisition}}</span></td><td>{{.License}}<br><span class="dim">{{.Attribution}}</span></td><td>{{.MediaType}}<br>{{.Length}} bytes</td><td>{{.CapturedAt}}</td></tr>{{end}}117 </tbody></table>118 </details>{{else}}{{if $.ReceiptErr}}<p class="warn-inline">The embedded receipt is integrity-protected, but its metadata is not valid: {{$.ReceiptErr}}</p>{{else}}<p class="dim">No Atlas authoring receipt is embedded.</p>{{end}}{{end}}119</section>120121<section class="card">122 <h2>Physical native layout</h2>123 <details><summary>{{.TableCount}} typed tables</summary>124 {{range .Tables}}<p><code>{{.Name}}</code> · {{.Rows}} rows · {{.Columns}} columns</p>{{end}}125 </details>126 <details><summary>{{.BlobCount}} opaque blobs{{if gt .BlobCount (len .BlobNames)}} · first {{len .BlobNames}} shown{{end}}</summary>127 {{range .BlobNames}}<p><code>{{.}}</code></p>{{end}}128 </details>129 <details><summary>{{len .Schema}} carried schema types</summary>130 {{range .Schema}}<div class="schema-type"><b>{{.Name}}</b> <code>{{.ID}}</code>{{range .Fields}}<p>{{.Name}} · {{.Kind}}{{if .Optional}} · optional{{end}}<br><code>{{.ID}}</code></p>{{end}}</div>{{end}}131 </details>132</section>133</div>134{{end}}