{"label":"complete-edition-v2","description":"Preserved synthetic showcase edition with exact media references.","published_at_unix_micros":1793344789253432,"canonical_path":"/blog/m7-after-complete-technical-feature-guide/versions/complete-edition-v2","snapshot":{"body":"\nThis is the complete, section-by-section Stage feature inspection specimen. Each numbered feature starts with H1 and describes its supported forms, example and inspection action. Both technical and academic editions share this exact body.\n\n# Feature 01: Page Identity, Cover, and Metadata\n\nBoth editions use the same body, cover, SEO overrides, tags, and feature examples. Only editorial identity, classification, and academic-only publication metadata differ. The cover is an exact image-version pin, not an external image URL. The visible title and supplied SEO title are separate fields.\n\n| Field | What this example supplies |\n| --- | --- |\n| Cover | Original local synthetic PNG with alternative text |\n| Summary | An explicit short introduction |\n| SEO | A supplied title and description |\n| Classification | Technical or academic |\n| Tags | Three shared inspection tags |\n\n**Inspect:** Compare the page title, cover, summary, browser-tab title and classification between the two editions. Metadata fallback is an omission case and cannot coexist with an explicit override in the same field; compare the separate fallback article linked later.\n\n# Feature 02: H1 Sections and Heading Hierarchy\n\nEvery feature starts with a level-one heading, as requested. Markdown also supports heading levels two through six. This section intentionally demonstrates the remaining levels inside one feature.\n\n## Level Two\n\nA subsection paragraph.\n\n### Level Three\n\nA smaller topic.\n\n#### Level Four\n\nA detailed note.\n\n##### Level Five\n\nA deeply nested note.\n\n###### Level Six\n\nThe final supported heading level.\n\n**Inspect:** Compare visual hierarchy and heading anchors. Every following Feature heading returns to H1.\n\n# Feature 03: Text Formatting and Inline Code\n\nSafe document nodes support ordinary text, emphasis, strong text, strikethrough, inline code and paragraphs. Raw authored HTML and arbitrary trusted-page JavaScript are not supported.\n\nThis is ordinary text, *emphasized text*, **strong text**, and ~~superseded text~~. An identifier such as `publication_revision_id` is inline code.\n\nA separate paragraph checks vertical rhythm. Symbols such as < and > remain ordinary readable text when they are not authored HTML.\n\n**Inspect:** Compare contrast, spacing, wrapping and light/dark appearance.\n\n# Feature 04: Ordered, Nested, and Unordered Lists\n\nLists support ordered and unordered forms with nesting. A nested explanation is content structure, not an interactive tree widget.\n\n1. Read the feature explanation.\n   - Inspect the first example.\n   - Compare its alternative representation.\n2. Record an observation.\n   1. Identify the section.\n   2. Describe the behavior.\n3. Continue to the next feature.\n\n**Inspect:** Inspect indentation, numbering and narrow-width wrapping.\n\n# Feature 05: Task Lists\n\nTask-list items retain checked or unchecked state as read-only authored content. They are not a persisted personal to-do application.\n\n- [x] Example content was authored.\n- [x] The feature is present in this article.\n- [ ] Owner inspection is complete.\n- [ ] Reported application issues have been resolved.\n\n**Inspect:** The checkboxes should represent the source state; their presence does not claim that your review passed.\n\n# Feature 06: Blockquotes, Separators, and Footnotes\n\nBlockquotes, thematic breaks, footnote references and footnote definitions are supported document structures. References remain local to the article.\n\n> A feature specimen is useful when its purpose and limitations are visible.\n\n---\n\nThe first supporting note describes the data.[^synthetic] The second distinguishes saved outputs from execution.[^saved]\n\n**Inspect:** Follow both footnote references and compare quote styling with ordinary paragraphs.\n\n# Feature 07: Links and Navigation\n\nThe allowed source link forms include relative links, HTTP(S) links and mailto. External destinations are not fetched by the backend merely because a link exists. A mailto example does not provision an inbox.\n\n[Return to the blog](/blog) · [Browse M7 After](/blog?tag=m7-after) · [Reserved example website](https://example.org/) · [Reserved email example](mailto:showcase@example.invalid)\n\n[Jump to the image feature](#feature-10-inline-images-and-captions).\n\n[Compare explicit SEO fallback](/blog/m7-after-useful-defaults-without-a-cover).\n\n**Inspect:** Use normal navigation and the browser Back control. External links are references, not imported content.\n\n# Feature 08: Markdown Tables\n\nTables retain headers and rows. A wide table should be inspectable on a narrow screen without discarding its cells.\n\n| Format | Source | Activation | Download | Authority |\n| --- | --- | --- | --- | --- |\n| Chart | Pinned CSV/JSON | Explicit | Dataset retained | Public media only |\n| Notebook | Pinned notebook | Explicit | Source retained | Saved outputs only |\n| PDF | Pinned PDF | Explicit | File retained | Static pages |\n| Model | Closed GLB | Explicit | File retained | No external resources |\n\n**Inspect:** Compare header styling, column alignment, scrolling and text wrapping.\n\n# Feature 09: Fenced Code and Language Labels\n\nCode blocks are inert source text. Language-labelled code is not an executable playground, and a Mermaid fence is not the Mermaid component.\n\n```python\nvalues = [2, 4, 6, 8]\nprint(sum(values))\n```\n\n```rust\npub fn answer() -> i32 { 42 }\n```\n\n```javascript\nconsole.log(\"Inert source example\");\n```\n\n```mermaid\nflowchart TD\nA[Source] --> B[Still source text]\n```\n\n**Inspect:** Inspect preservation of newlines, indentation, language presentation and long-line behavior. No code above should run.\n\n# Feature 10: Inline Images and Captions\n\nImage supports an exact media identity and file version, meaningful alternative text, an optional caption and explicit loading. These original PNGs are local synthetic materials. The cover and inline image are different presentation surfaces.\n\n<Image mediaId=\"0b95ff56-9893-4e17-99c5-b1cea90c33ee\" version={1} altText=\"Three inspection stages: Read, Activate, Compare.\" caption=\"Original synthetic inspection illustration.\" />\n\n<Image mediaId=\"8339b7a5-bbd7-4780-a7fb-de1ba7971e69\" version={1} altText=\"Three distinct release concepts: Source, Candidate, Evidence.\" caption=\"A second image with an independent description.\" />\n\n**Inspect:** Load both images, compare captions and use the exact public-image download.\n\n# Feature 11: Decorative Images\n\nA decorative image explicitly opts out of conveying essential information through alternative text. It still uses a pinned ready media version; decorative status is not permission for missing meaningful text on other images.\n\n<Image mediaId=\"06549937-fcba-47f7-abb5-b4264f8c72bb\" version={1} decorative={true} caption=\"Decorative visual pause. No instructions depend on its content.\" />\n\n**Inspect:** Compare the authored decorative state with the meaningful alt text in Feature 10.\n\n# Feature 12: Immutable Media Versions\n\nOne asset identity can have multiple immutable file versions. These two examples share an identity but intentionally select versions one and two. Loading the newer file must not overwrite an older pinned reference.\n\n<Image mediaId=\"8e4825ec-e05a-473b-a6c6-52f607ee61c7\" version={1} altText=\"Original stages: Prepare, Verify, Observe.\" caption=\"Version one of the shared image identity.\" />\n\n<Image mediaId=\"8e4825ec-e05a-473b-a6c6-52f607ee61c7\" version={2} altText=\"Revised stages: Prepare, Inspect, Retain.\" caption=\"Version two of the same image identity.\" />\n\n**Inspect:** Compare the two illustrations and their download paths. No existing article was repinned by creating these guides.\n\n# Feature 13: Local Video, Poster, Captions, and Transcript\n\nVideo supports pinned local media, native playback controls, a poster pin, a caption pin and a separate transcript pin. The six-second H264/AAC material is an original still-image video with silent audio. A known ingestion gap remains: .vtt uploads are rejected, so WebVTT bytes are currently stored as supported plain-text source. Caption display is not claimed to work around that MIME gap.\n\n<Video mediaId=\"16762195-ded7-403d-b3f3-aeb23190ae96\" version={1} posterMediaId=\"0b95ff56-9893-4e17-99c5-b1cea90c33ee\" posterVersion={1} captionMediaId=\"668a7c3a-1574-4ea7-a31e-038273a4aab4\" captionVersion={1} transcriptMediaId=\"801ff3d7-b42f-4c73-ad18-c3537582a918\" transcriptVersion={1} description=\"Synthetic six-second walkthrough with explicit poster, caption source, and transcript pins.\" />\n\n**Inspect:** Load video, inspect native controls and poster, try captions, and open the transcript. Report the caption result rather than treating the pin as proof of browser compatibility.\n\n# Feature 14: Mermaid Top-to-Bottom Flowchart\n\nThe closed Mermaid profile supports graph/flowchart in TD or LR direction, basic labelled nodes and arrow connections. It is not unrestricted Mermaid: themes, directives, styles, click handlers and external resources are excluded.\n\n<Mermaid source=\"flowchart TD\\nA[Read source] --> B[Activate diagram]\\nB[Activate diagram] --> C[Inspect result]\" caption=\"Top-to-bottom closed-profile flowchart.\" />\n\n**Inspect:** Render the diagram, inspect its source fallback and close it.\n\n# Feature 15: Mermaid Left-to-Right Flowchart\n\nThe same closed profile also supports horizontal layout. This second example separates layout inspection from top-to-bottom rendering.\n\n<Mermaid source=\"graph LR\\nA[Input] ==> B[Validation]\\nB[Validation] --> C[Output]\" caption=\"Left-to-right graph with the supported arrow forms.\" />\n\n**Inspect:** Compare narrow-screen overflow, node labels and closing behavior with Feature 14.\n\n# Feature 16: Inline and Display Mathematics\n\nMathematics appears as inline Markdown math, display Markdown math and the explicit Math component. Rendering is bounded and retains complete readable source fallback. This does not enable arbitrary TeX packages, HTML commands or network includes.\n\nInline Markdown: $a^2 + b^2 = c^2$.\n\n$$\n\\bar{x} = \\frac{1}{n}\\sum_{i=1}^{n} x_i\n$$\n\n<Math expression=\"115 - 72 = 43\" display={false} />\n\n<Math expression=\"\\\\int_0^1 x^2\\\\,dx = \\\\frac{1}{3}\" display={true} />\n\n**Inspect:** Compare inline baseline, display spacing, symbols and source fallback. The formula examples are not real research results.\n\n# Feature 17: Line Chart\n\nLine charts compare ordered observations with connected values. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"55117cf9-231f-4d59-bbf0-cdff5e42a659\" dataVersion={1} chartType=\"line\" description=\"Synthetic line chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 18: Area Chart\n\nArea charts add filled regions to connected observations. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"55117cf9-231f-4d59-bbf0-cdff5e42a659\" dataVersion={1} chartType=\"area\" description=\"Synthetic area chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 19: Bar Chart\n\nBar charts compare values using horizontal bars. The source is a pinned CSV dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"baac8f3d-96dc-4cd6-b7f2-4c7083ce0d00\" dataVersion={1} chartType=\"bar\" description=\"Synthetic bar chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 20: Column Chart\n\nColumn charts compare values using vertical columns. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"55117cf9-231f-4d59-bbf0-cdff5e42a659\" dataVersion={1} chartType=\"column\" description=\"Synthetic column chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 21: Scatter Chart\n\nScatter plots use a numeric x column and numeric selected y series. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"a98a1a3b-86d5-482f-948f-bcfc7e6864e3\" dataVersion={1} chartType=\"scatter\" description=\"Synthetic scatter chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"x\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 22: Histogram Chart\n\nHistograms group numeric observations into distribution bins; the selected series can be changed. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"d78592d4-2ed8-496f-ba6d-68143b8b15d4\" dataVersion={1} chartType=\"histogram\" description=\"Synthetic histogram chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"sample\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 23: Pie Chart\n\nPie charts show nonnegative values as portions of a total; select one numeric series. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"55117cf9-231f-4d59-bbf0-cdff5e42a659\" dataVersion={1} chartType=\"pie\" description=\"Synthetic pie chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 24: Donut Chart\n\nDonut charts show the same whole/part relationship with a hollow center. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"55117cf9-231f-4d59-bbf0-cdff5e42a659\" dataVersion={1} chartType=\"donut\" description=\"Synthetic donut chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 25: Heatmap Chart\n\nHeatmaps map selected numeric columns and observations to relative color intensity. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test.\n\n<Chart dataMediaId=\"55117cf9-231f-4d59-bbf0-cdff5e42a659\" dataVersion={1} chartType=\"heatmap\" description=\"Synthetic heatmap chart: alpha and beta series with explicit source data.\" series=\"alpha,beta\" xAxis=\"period\" unit=\"synthetic units\" />\n\n**Inspect:** Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture.\n\n# Feature 26: CSV and JSON Dataset Downloads\n\nCharts accept structured CSV with headers or JSON with columns and same-order rows. Downloads are exact public media versions, not a query against external analytics. Numeric columns must contain usable finite numeric values.\n\n[Download CSV](/api/v1/media/baac8f3d-96dc-4cd6-b7f2-4c7083ce0d00/versions/1) · [Download JSON](/api/v1/media/55117cf9-231f-4d59-bbf0-cdff5e42a659/versions/1)\n\n| period | alpha | beta | gamma |\n| --- | --- | --- | --- |\n| A | 12 | 8 | 4 |\n| B | 18 | 11 | 6 |\n| C | 15 | 10 | 7 |\n\n**Inspect:** Compare the raw formats with the chart tables. A data download is usable without activating a chart.\n\n# Feature 27: Notebook Source and Saved Outputs\n\nNotebook supports a pinned Jupyter v4 document with Markdown, raw and code cells, saved text output and safe precomputed PNG output. It does not execute cells, connect to a kernel or activate notebook widgets.\n\n<Notebook mediaId=\"e8987328-5d99-4a1e-bc3d-6bb2f54ee14e\" version={1} title=\"Synthetic notebook: Markdown, source, text output, PNG output, and raw note\" />\n\n**Inspect:** Load the notebook, inspect every cell and saved output, then compare the source download. The saved PNG is not generated by executing its cell in this page.\n\n# Feature 28: Pinned Code Diff\n\nCodeDiff compares two pinned UTF-8 text files with independent before/after labels and source downloads. It does not fetch a live repository or apply a patch.\n\n<CodeDiff beforeMediaId=\"305db961-d7b2-4553-99ce-b15908b986c4\" beforeVersion={1} afterMediaId=\"cc8f5e8a-458a-4c0f-a902-6fd06a5d8849\" afterVersion={1} beforeLabel=\"Direct dictionary lookup\" afterLabel=\"Default and positive-value validation\" />\n\n**Inspect:** Compare the source columns, changed lines, labels and both downloads.\n\n# Feature 29: Python Standard-Library Playground\n\nPython executes only after Run in an isolated surface with output bounds, Stop and the existing ten-second total runtime guard. Standard-library examples can print small results; an inert code fence is not execution.\n\n<CodePlayground language=\"python\" source=\"from statistics import mean\\nvalues = [2, 4, 6, 8]\\nprint('sum:', sum(values))\\nprint('mean:', mean(values))\\nprint('squares:', [value * value for value in values])\" />\n\n**Inspect:** Run, compare output and Stop. Start again to inspect reset behavior. Do not run every playground simultaneously; the existing shared execution admission remains.\n\n# Feature 30: NumPy, pandas, and Matplotlib Playground\n\nThe approved pinned Python package closure includes NumPy, pandas and Matplotlib. Matplotlib uses Agg; the playground exposes text output, not a dedicated inline plotting output channel. The separate charts above are independent components.\n\n<CodePlayground language=\"python\" source=\"import numpy as np\\nimport pandas as pd\\nimport matplotlib\\nmatplotlib.use('Agg')\\nfrom matplotlib import pyplot as plt\\nvalues = np.array([2, 4, 6, 8])\\nframe = pd.DataFrame({'value': values})\\nprint('NumPy sum:', int(values.sum()))\\nprint('pandas mean:', float(frame['value'].mean()))\\nfig, ax = plt.subplots()\\nax.plot(values)\\nfig.canvas.draw()\\nprint('Matplotlib backend:', matplotlib.get_backend())\\nprint('canvas size:', fig.canvas.get_width_height())\\nplt.close(fig)\" />\n\n**Inspect:** Run and confirm the three named packages produce output. The ten-second guard is unchanged; startup success is not claimed for arbitrary code or every device.\n\n# Feature 31: Prepared Rust WASM Playground\n\nRust examples use a prepared pinned no-import WASM module. Displayed Rust is an explanatory equivalent of the prepared fixture; no browser-side Rust compiler is provided. The sample exported run function returns 42.\n\n<CodePlayground language=\"rust\" wasmMediaId=\"eed52faa-0030-423b-a426-077a52f2b5dd\" wasmVersion={1} displaySource=\"pub fn run() -> i32 { 42 }\" />\n\n**Inspect:** Run the prepared module, inspect output 42, Stop, and compare the displayed source.\n\n# Feature 32: Interactive Color Demo\n\nThe owned HTML/CSS/JavaScript ZIP has a root demo.json and local entry file. Move the hue slider; no external resource is needed. Demo Stop removes the surface. The Python/WASM ten-second rule is not a hard post-start compute or memory quota for packaged demos.\n\n<InteractiveDemo demoId=\"091b1361-76dd-4eeb-9f49-4920b8d6c8c0\" version={1} description=\"Interactive Color Demo\" />\n\n**Inspect:** Run, interact, Stop, and reopen to inspect reset. Do not infer full network denial: owner-authored execution network access is an intentional existing permission, although these examples do not use it.\n\n# Feature 33: Interactive Sorting Demo\n\nThe owned sorting package supports bounded step and reset controls. Its code executes only in the activated isolated demo surface. Demo Stop removes the surface. The Python/WASM ten-second rule is not a hard post-start compute or memory quota for packaged demos.\n\n<InteractiveDemo demoId=\"ad2d441b-5ebd-46d3-9a46-0ad3b296cd0a\" version={1} description=\"Interactive Sorting Demo\" />\n\n**Inspect:** Run, interact, Stop, and reopen to inspect reset. Do not infer full network denial: owner-authored execution network access is an intentional existing permission, although these examples do not use it.\n\n# Feature 34: Interactive Simulation Demo\n\nThe owned deterministic sample package changes its sample count with a slider. It has no application credentials or persisted state. Demo Stop removes the surface. The Python/WASM ten-second rule is not a hard post-start compute or memory quota for packaged demos.\n\n<InteractiveDemo demoId=\"8e10b4d7-71e7-4806-8b13-6cf2c7e6d56c\" version={1} description=\"Interactive Simulation Demo\" />\n\n**Inspect:** Run, interact, Stop, and reopen to inspect reset. Do not infer full network denial: owner-authored execution network access is an intentional existing permission, although these examples do not use it.\n\n# Feature 35: Static Multipage PDF\n\nPDFViewer uses the isolated locally pinned PDF.js profile. The three-page document is static: no scripts, forms, top navigation or attachment launch behavior. Page controls and the public download are separate from the article.\n\n<PDFViewer mediaId=\"95fbefa8-842d-4ba6-8f73-32d09d754c1c\" version={1} title=\"Three-page synthetic field notes\" />\n\n**Inspect:** Open the viewer, load the PDF, visit all three pages, return to page one, close and reopen. A downloadable file is retained if viewing is unavailable.\n\n# Feature 36: Self-Contained GLB Model\n\nModel3D uses the isolated Three.js GLB profile. The model contains a colored triangle and embedded position data; it does not select external buffers, textures or decoders. WebGL performance-caveat refusal retains a download fallback.\n\n<Model3D mediaId=\"86e9abc3-e367-4e45-b843-6008011c2924\" version={1} description=\"Self-contained coral triangle for 3D inspection\" altText=\"One coral triangle in a neutral 3D scene.\" />\n\n**Inspect:** Activate, inspect the model/camera controls, close and compare the download. Browser refusal is distinct from a missing file; no GPU or universal-device guarantee is made.\n\n# Feature 37: YouTube Embed\n\nYouTube uses a closed video identifier, explicit activation and unload controls. The known public reference is Me at the zoo. No copy of the third-party video is uploaded into our media library.\n\n<YouTubeEmbed videoId=\"jNQXAC9IVRw\" title=\"Public provider reference: Me at the zoo\" />\n\n**Inspect:** Load and unload explicitly. Provider requests may disclose the visitor's network address and are subject to provider/browser restrictions.\n\n# Feature 38: GitHub Gist Embed\n\nGitHubGistEmbed takes a path-safe gist identifier and optional file selection. The reference is the public bling.js gist. The provider script stays inside the opaque embed surface, not the trusted article origin.\n\n<GitHubGistEmbed gistId=\"12fb951a8b893a454b32\" file=\"bling.js\" />\n\n**Inspect:** Load the selected file and unload. The public provider content is not copied into our source tree or granted application credentials.\n\n# Feature 39: CodePen Embed\n\nCodePenEmbed uses a closed username and pen identifier, with explicit load/unload. The existing public reference is retained for inspection. Preparation-time requests returned HTTP 403; a successful embed is not claimed and no isolation setting was relaxed.\n\n<CodePenEmbed username=\"chriscoyier\" penId=\"gfdDu\" />\n\n**Inspect:** Try activation, note the provider result, and unload. Distinguish provider refusal from a local article-rendering failure.\n\n# Feature 40: StackBlitz Embed\n\nStackBlitzEmbed uses a closed public project identifier. The existing vitejs-vite reference is optional and subject to provider/browser behavior in the isolated frame. No external project or account was created.\n\n<StackBlitzEmbed projectId=\"vitejs-vite\" />\n\n**Inspect:** Load/unload independently of other providers. A fetched provider page is not proof that its full IDE works in every sandbox.\n\n# Feature 41: Publication Snapshots and Revision History\n\nEach guide has an immutable named publication snapshot called complete-edition-v2. Ordinary persisted revision history is owner-only and is not embedded into public detail. Snapshot access is through the existing public API, not an invented HTML version route.\n\n[Technical snapshot JSON](/api/v1/posts/m7-after-complete-technical-feature-guide/versions/complete-edition-v2)\n\n[Academic snapshot JSON](/api/v1/posts/m7-after-complete-academic-feature-guide/versions/complete-edition-v2)\n\n| Surface | Available behavior |\n| --- | --- |\n| Current public article | Read the currently published body |\n| Named public version | Read a retained immutable API snapshot |\n| Owner revisions | Authenticated paged history and restore operations |\n\n**Inspect:** Open both JSON snapshots and compare their same body. Destructive lifecycle, revocation and owner-only restore are not performed merely to show a public specimen.\n\n# Feature 42: Academic and Technical Classification\n\nThe two guides use identical body content. Technical posts cannot carry the academicPublication object; academic posts can supply an external HTTPS publication URL, title, authors, venue and ISO date. This is the only type-specific metadata difference, besides the unique titles/slugs required to identify two posts.\n\n| Classification | Metadata specimen |\n| --- | --- |\n| Technical | No academicPublication object |\n| Academic | Fictional publication title, author label, venue, date and reserved example URL |\n\nNo DOI-specific field, citation import, BibTeX renderer or real research claim is implied.\n\n**Inspect:** Compare the two article headers and public detail metadata. All fifteen content components and nine chart types appear in both editions.\n\n# Feature 43: Search, Tags, and Listing Filters\n\nThe two guides share three tags rather than dozens of feature labels. Existing discovery supports type selection, text/phrase search, repeated tags with any/all semantics, ordering and cursor pagination. This article is a specimen to find, not a search UI embedded into its body.\n\n[Both complete guides](/blog?tag=complete-feature-guide)\n\n[Technical guide filter](/blog?tag=complete-feature-guide&type=technical)\n\n[Academic guide filter](/blog?tag=complete-feature-guide&type=academic)\n\nSearch samples: C, C++, C#, .NET, and the phrase \"complete feature inspection\".\n\n[Search for C++](/blog?q=C%2B%2B&tag=complete-feature-guide).\n\n**Inspect:** Compare list summaries, filters, empty results and sort order. Type, sort and pagination are site-level controls, not inline content components.\n\n# Feature 44: Site-Level Delivery and Appearance\n\nSSR article delivery, canonical/social metadata, RSS/Atom, sitemap/robots, responsive layout and theme selection belong to the site rather than executable body components. A readable article cannot simultaneously demonstrate every contradictory state, such as both present and omitted cover metadata.\n\n[RSS feed](/feed.xml) · [Atom feed](/atom.xml) · [Sitemap](/sitemap.xml) · [Robots](/robots.txt)\n\n[Fallback-only article](/blog/m7-after-useful-defaults-without-a-cover)\n\n- [ ] Compare wide, medium and narrow layouts.\n- [ ] Inspect light and dark themes.\n- [ ] Navigate with the keyboard.\n- [ ] Reload the direct article URL.\n- [ ] Inspect visible source/download alternatives.\n\n**Inspect:** Use the site controls and browser tools. No failed/withdrawn/private state is manufactured on these guides; those mutually exclusive and owner-only cases need separate controlled checks.\n\n# Feature 45: Footnote Definitions and Inspection Record\n\nKeep observations grouped by the numbered feature heading. This article deliberately exposes capabilities without treating their presence as a defect-free acceptance result.\n\n[^synthetic]: All local numbers, files, notebooks, models and diagrams are synthetic showcase materials. External embeds are existing public references, not owned uploads.\n\n[^saved]: Saved notebook output, inert source code, activated Python/WASM and packaged demos are distinct capabilities with distinct execution behavior.\n\n| Feature number | Observed behavior | Requested behavior |\n| --- | --- | --- |\n| Example: 13 | Record what the video/captions actually do | Describe the expected result |\n| Example: 39 | Record the provider response | Distinguish local UI from provider policy |\n\n**Inspect:** The owner will provide a consolidated issue list later. No application patch, commit or release is part of creating these two data specimens.\n","schema_version":1,"seo":{"description":"A section-by-section synthetic guide to every delivered blog content component and its supported forms.","title":"Complete Feature Inspection | M7 After"},"slug":"m7-after-complete-technical-feature-guide","summary":"One article containing all fifteen content components, nine chart types, and numbered H1 inspection sections.","tags":[{"id":"a57e5f7e-77b3-4248-9312-8c682b30ba7b","name":"Complete Feature Guide","slug":"complete-feature-guide"},{"id":"aa005612-4135-483b-8051-dc205f338b35","name":"M7 After","slug":"m7-after"},{"id":"467d89a6-81b0-4e0d-ac6c-464c1b81d90a","name":"Manual Inspection","slug":"manual-inspection"}],"title":"Complete Feature Inspection Guide - Technical","type":"technical"},"document":{"schema_version":1,"nodes":[{"type":"paragraph","children":[{"type":"text","value":"This is the complete, section-by-section Stage feature inspection specimen. Each numbered feature starts with H1 and describes its supported forms, example and inspection action. Both technical and academic editions share this exact body."}]},{"type":"heading","level":1,"anchor":"feature-01-page-identity-cover-and-metadata","children":[{"type":"text","value":"Feature 01: Page Identity, Cover, and Metadata"}]},{"type":"paragraph","children":[{"type":"text","value":"Both editions use the same body, cover, SEO overrides, tags, and feature examples. Only editorial identity, classification, and academic-only publication metadata differ. The cover is an exact image-version pin, not an external image URL. The visible title and supplied SEO title are separate fields."}]},{"type":"table","alignment":["none","none"],"header":[{"type":"table_cell","children":[{"type":"text","value":"Field"}]},{"type":"table_cell","children":[{"type":"text","value":"What this example supplies"}]}],"rows":[[{"type":"table_cell","children":[{"type":"text","value":"Cover"}]},{"type":"table_cell","children":[{"type":"text","value":"Original local synthetic PNG with alternative text"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Summary"}]},{"type":"table_cell","children":[{"type":"text","value":"An explicit short introduction"}]}],[{"type":"table_cell","children":[{"type":"text","value":"SEO"}]},{"type":"table_cell","children":[{"type":"text","value":"A supplied title and description"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Classification"}]},{"type":"table_cell","children":[{"type":"text","value":"Technical or academic"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Tags"}]},{"type":"table_cell","children":[{"type":"text","value":"Three shared inspection tags"}]}]]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare the page title, cover, summary, browser-tab title and classification between the two editions. Metadata fallback is an omission case and cannot coexist with an explicit override in the same field; compare the separate fallback article linked later."}]},{"type":"heading","level":1,"anchor":"feature-02-h1-sections-and-heading-hierarchy","children":[{"type":"text","value":"Feature 02: H1 Sections and Heading Hierarchy"}]},{"type":"paragraph","children":[{"type":"text","value":"Every feature starts with a level-one heading, as requested. Markdown also supports heading levels two through six. This section intentionally demonstrates the remaining levels inside one feature."}]},{"type":"heading","level":2,"anchor":"level-two","children":[{"type":"text","value":"Level Two"}]},{"type":"paragraph","children":[{"type":"text","value":"A subsection paragraph."}]},{"type":"heading","level":3,"anchor":"level-three","children":[{"type":"text","value":"Level Three"}]},{"type":"paragraph","children":[{"type":"text","value":"A smaller topic."}]},{"type":"heading","level":4,"anchor":"level-four","children":[{"type":"text","value":"Level Four"}]},{"type":"paragraph","children":[{"type":"text","value":"A detailed note."}]},{"type":"heading","level":5,"anchor":"level-five","children":[{"type":"text","value":"Level Five"}]},{"type":"paragraph","children":[{"type":"text","value":"A deeply nested note."}]},{"type":"heading","level":6,"anchor":"level-six","children":[{"type":"text","value":"Level Six"}]},{"type":"paragraph","children":[{"type":"text","value":"The final supported heading level."}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare visual hierarchy and heading anchors. Every following Feature heading returns to H1."}]},{"type":"heading","level":1,"anchor":"feature-03-text-formatting-and-inline-code","children":[{"type":"text","value":"Feature 03: Text Formatting and Inline Code"}]},{"type":"paragraph","children":[{"type":"text","value":"Safe document nodes support ordinary text, emphasis, strong text, strikethrough, inline code and paragraphs. Raw authored HTML and arbitrary trusted-page JavaScript are not supported."}]},{"type":"paragraph","children":[{"type":"text","value":"This is ordinary text, "},{"type":"emphasis","children":[{"type":"text","value":"emphasized text"}]},{"type":"text","value":", "},{"type":"strong","children":[{"type":"text","value":"strong text"}]},{"type":"text","value":", and "},{"type":"strikethrough","children":[{"type":"text","value":"superseded text"}]},{"type":"text","value":". An identifier such as "},{"type":"inline_code","value":"publication_revision_id"},{"type":"text","value":" is inline code."}]},{"type":"paragraph","children":[{"type":"text","value":"A separate paragraph checks vertical rhythm. Symbols such as "},{"type":"text","value":"<"},{"type":"text","value":" and > remain ordinary readable text when they are not authored HTML."}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare contrast, spacing, wrapping and light/dark appearance."}]},{"type":"heading","level":1,"anchor":"feature-04-ordered-nested-and-unordered-lists","children":[{"type":"text","value":"Feature 04: Ordered, Nested, and Unordered Lists"}]},{"type":"paragraph","children":[{"type":"text","value":"Lists support ordered and unordered forms with nesting. A nested explanation is content structure, not an interactive tree widget."}]},{"type":"list","ordered":true,"start":1,"children":[{"type":"list_item","children":[{"type":"text","value":"Read the feature explanation."},{"type":"list","ordered":false,"children":[{"type":"list_item","children":[{"type":"text","value":"Inspect the first example."}]},{"type":"list_item","children":[{"type":"text","value":"Compare its alternative representation."}]}]}]},{"type":"list_item","children":[{"type":"text","value":"Record an observation."},{"type":"list","ordered":true,"start":1,"children":[{"type":"list_item","children":[{"type":"text","value":"Identify the section."}]},{"type":"list_item","children":[{"type":"text","value":"Describe the behavior."}]}]}]},{"type":"list_item","children":[{"type":"text","value":"Continue to the next feature."}]}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Inspect indentation, numbering and narrow-width wrapping."}]},{"type":"heading","level":1,"anchor":"feature-05-task-lists","children":[{"type":"text","value":"Feature 05: Task Lists"}]},{"type":"paragraph","children":[{"type":"text","value":"Task-list items retain checked or unchecked state as read-only authored content. They are not a persisted personal to-do application."}]},{"type":"list","ordered":false,"children":[{"type":"list_item","task_state":true,"children":[{"type":"text","value":"Example content was authored."}]},{"type":"list_item","task_state":true,"children":[{"type":"text","value":"The feature is present in this article."}]},{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Owner inspection is complete."}]},{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Reported application issues have been resolved."}]}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" The checkboxes should represent the source state; their presence does not claim that your review passed."}]},{"type":"heading","level":1,"anchor":"feature-06-blockquotes-separators-and-footnotes","children":[{"type":"text","value":"Feature 06: Blockquotes, Separators, and Footnotes"}]},{"type":"paragraph","children":[{"type":"text","value":"Blockquotes, thematic breaks, footnote references and footnote definitions are supported document structures. References remain local to the article."}]},{"type":"blockquote","children":[{"type":"paragraph","children":[{"type":"text","value":"A feature specimen is useful when its purpose and limitations are visible."}]}]},{"type":"thematic_break"},{"type":"paragraph","children":[{"type":"text","value":"The first supporting note describes the data."},{"type":"footnote_reference","id":"synthetic"},{"type":"text","value":" The second distinguishes saved outputs from execution."},{"type":"footnote_reference","id":"saved"}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Follow both footnote references and compare quote styling with ordinary paragraphs."}]},{"type":"heading","level":1,"anchor":"feature-07-links-and-navigation","children":[{"type":"text","value":"Feature 07: Links and Navigation"}]},{"type":"paragraph","children":[{"type":"text","value":"The allowed source link forms include relative links, HTTP(S) links and mailto. External destinations are not fetched by the backend merely because a link exists. A mailto example does not provision an inbox."}]},{"type":"paragraph","children":[{"type":"link","href":"/blog","children":[{"type":"text","value":"Return to the blog"}]},{"type":"text","value":" · "},{"type":"link","href":"/blog?tag=m7-after","children":[{"type":"text","value":"Browse M7 After"}]},{"type":"text","value":" · "},{"type":"link","href":"https://example.org/","children":[{"type":"text","value":"Reserved example website"}]},{"type":"text","value":" · "},{"type":"link","href":"mailto:showcase@example.invalid","children":[{"type":"text","value":"Reserved email example"}]}]},{"type":"paragraph","children":[{"type":"link","href":"#feature-10-inline-images-and-captions","children":[{"type":"text","value":"Jump to the image feature"}]},{"type":"text","value":"."}]},{"type":"paragraph","children":[{"type":"link","href":"/blog/m7-after-useful-defaults-without-a-cover","children":[{"type":"text","value":"Compare explicit SEO fallback"}]},{"type":"text","value":"."}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Use normal navigation and the browser Back control. External links are references, not imported content."}]},{"type":"heading","level":1,"anchor":"feature-08-markdown-tables","children":[{"type":"text","value":"Feature 08: Markdown Tables"}]},{"type":"paragraph","children":[{"type":"text","value":"Tables retain headers and rows. A wide table should be inspectable on a narrow screen without discarding its cells."}]},{"type":"table","alignment":["none","none","none","none","none"],"header":[{"type":"table_cell","children":[{"type":"text","value":"Format"}]},{"type":"table_cell","children":[{"type":"text","value":"Source"}]},{"type":"table_cell","children":[{"type":"text","value":"Activation"}]},{"type":"table_cell","children":[{"type":"text","value":"Download"}]},{"type":"table_cell","children":[{"type":"text","value":"Authority"}]}],"rows":[[{"type":"table_cell","children":[{"type":"text","value":"Chart"}]},{"type":"table_cell","children":[{"type":"text","value":"Pinned CSV/JSON"}]},{"type":"table_cell","children":[{"type":"text","value":"Explicit"}]},{"type":"table_cell","children":[{"type":"text","value":"Dataset retained"}]},{"type":"table_cell","children":[{"type":"text","value":"Public media only"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Notebook"}]},{"type":"table_cell","children":[{"type":"text","value":"Pinned notebook"}]},{"type":"table_cell","children":[{"type":"text","value":"Explicit"}]},{"type":"table_cell","children":[{"type":"text","value":"Source retained"}]},{"type":"table_cell","children":[{"type":"text","value":"Saved outputs only"}]}],[{"type":"table_cell","children":[{"type":"text","value":"PDF"}]},{"type":"table_cell","children":[{"type":"text","value":"Pinned PDF"}]},{"type":"table_cell","children":[{"type":"text","value":"Explicit"}]},{"type":"table_cell","children":[{"type":"text","value":"File retained"}]},{"type":"table_cell","children":[{"type":"text","value":"Static pages"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Model"}]},{"type":"table_cell","children":[{"type":"text","value":"Closed GLB"}]},{"type":"table_cell","children":[{"type":"text","value":"Explicit"}]},{"type":"table_cell","children":[{"type":"text","value":"File retained"}]},{"type":"table_cell","children":[{"type":"text","value":"No external resources"}]}]]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare header styling, column alignment, scrolling and text wrapping."}]},{"type":"heading","level":1,"anchor":"feature-09-fenced-code-and-language-labels","children":[{"type":"text","value":"Feature 09: Fenced Code and Language Labels"}]},{"type":"paragraph","children":[{"type":"text","value":"Code blocks are inert source text. Language-labelled code is not an executable playground, and a Mermaid fence is not the Mermaid component."}]},{"type":"code_block","language":"python","value":"values = [2, 4, 6, 8]\nprint(sum(values))\n"},{"type":"code_block","language":"rust","value":"pub fn answer() -> i32 { 42 }\n"},{"type":"code_block","language":"javascript","value":"console.log(\"Inert source example\");\n"},{"type":"code_block","language":"mermaid","value":"flowchart TD\nA[Source] --> B[Still source text]\n"},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Inspect preservation of newlines, indentation, language presentation and long-line behavior. No code above should run."}]},{"type":"heading","level":1,"anchor":"feature-10-inline-images-and-captions","children":[{"type":"text","value":"Feature 10: Inline Images and Captions"}]},{"type":"paragraph","children":[{"type":"text","value":"Image supports an exact media identity and file version, meaningful alternative text, an optional caption and explicit loading. These original PNGs are local synthetic materials. The cover and inline image are different presentation surfaces."}]},{"type":"component","name":"Image","version":1,"properties":{"altText":"Three inspection stages: Read, Activate, Compare.","caption":"Original synthetic inspection illustration.","mediaId":"0b95ff56-9893-4e17-99c5-b1cea90c33ee","version":1}},{"type":"component","name":"Image","version":1,"properties":{"altText":"Three distinct release concepts: Source, Candidate, Evidence.","caption":"A second image with an independent description.","mediaId":"8339b7a5-bbd7-4780-a7fb-de1ba7971e69","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load both images, compare captions and use the exact public-image download."}]},{"type":"heading","level":1,"anchor":"feature-11-decorative-images","children":[{"type":"text","value":"Feature 11: Decorative Images"}]},{"type":"paragraph","children":[{"type":"text","value":"A decorative image explicitly opts out of conveying essential information through alternative text. It still uses a pinned ready media version; decorative status is not permission for missing meaningful text on other images."}]},{"type":"component","name":"Image","version":1,"properties":{"caption":"Decorative visual pause. No instructions depend on its content.","decorative":true,"mediaId":"06549937-fcba-47f7-abb5-b4264f8c72bb","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare the authored decorative state with the meaningful alt text in Feature 10."}]},{"type":"heading","level":1,"anchor":"feature-12-immutable-media-versions","children":[{"type":"text","value":"Feature 12: Immutable Media Versions"}]},{"type":"paragraph","children":[{"type":"text","value":"One asset identity can have multiple immutable file versions. These two examples share an identity but intentionally select versions one and two. Loading the newer file must not overwrite an older pinned reference."}]},{"type":"component","name":"Image","version":1,"properties":{"altText":"Original stages: Prepare, Verify, Observe.","caption":"Version one of the shared image identity.","mediaId":"8e4825ec-e05a-473b-a6c6-52f607ee61c7","version":1}},{"type":"component","name":"Image","version":1,"properties":{"altText":"Revised stages: Prepare, Inspect, Retain.","caption":"Version two of the same image identity.","mediaId":"8e4825ec-e05a-473b-a6c6-52f607ee61c7","version":2}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare the two illustrations and their download paths. No existing article was repinned by creating these guides."}]},{"type":"heading","level":1,"anchor":"feature-13-local-video-poster-captions-and-transcript","children":[{"type":"text","value":"Feature 13: Local Video, Poster, Captions, and Transcript"}]},{"type":"paragraph","children":[{"type":"text","value":"Video supports pinned local media, native playback controls, a poster pin, a caption pin and a separate transcript pin. The six-second H264/AAC material is an original still-image video with silent audio. A known ingestion gap remains: .vtt uploads are rejected, so WebVTT bytes are currently stored as supported plain-text source. Caption display is not claimed to work around that MIME gap."}]},{"type":"component","name":"Video","version":1,"properties":{"captionMediaId":"668a7c3a-1574-4ea7-a31e-038273a4aab4","captionVersion":1,"description":"Synthetic six-second walkthrough with explicit poster, caption source, and transcript pins.","mediaId":"16762195-ded7-403d-b3f3-aeb23190ae96","posterMediaId":"0b95ff56-9893-4e17-99c5-b1cea90c33ee","posterVersion":1,"transcriptMediaId":"801ff3d7-b42f-4c73-ad18-c3537582a918","transcriptVersion":1,"version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load video, inspect native controls and poster, try captions, and open the transcript. Report the caption result rather than treating the pin as proof of browser compatibility."}]},{"type":"heading","level":1,"anchor":"feature-14-mermaid-top-to-bottom-flowchart","children":[{"type":"text","value":"Feature 14: Mermaid Top-to-Bottom Flowchart"}]},{"type":"paragraph","children":[{"type":"text","value":"The closed Mermaid profile supports graph/flowchart in TD or LR direction, basic labelled nodes and arrow connections. It is not unrestricted Mermaid: themes, directives, styles, click handlers and external resources are excluded."}]},{"type":"component","name":"Mermaid","version":1,"properties":{"caption":"Top-to-bottom closed-profile flowchart.","source":"flowchart TD\nA[Read source] --> B[Activate diagram]\nB[Activate diagram] --> C[Inspect result]"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Render the diagram, inspect its source fallback and close it."}]},{"type":"heading","level":1,"anchor":"feature-15-mermaid-left-to-right-flowchart","children":[{"type":"text","value":"Feature 15: Mermaid Left-to-Right Flowchart"}]},{"type":"paragraph","children":[{"type":"text","value":"The same closed profile also supports horizontal layout. This second example separates layout inspection from top-to-bottom rendering."}]},{"type":"component","name":"Mermaid","version":1,"properties":{"caption":"Left-to-right graph with the supported arrow forms.","source":"graph LR\nA[Input] ==> B[Validation]\nB[Validation] --> C[Output]"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare narrow-screen overflow, node labels and closing behavior with Feature 14."}]},{"type":"heading","level":1,"anchor":"feature-16-inline-and-display-mathematics","children":[{"type":"text","value":"Feature 16: Inline and Display Mathematics"}]},{"type":"paragraph","children":[{"type":"text","value":"Mathematics appears as inline Markdown math, display Markdown math and the explicit Math component. Rendering is bounded and retains complete readable source fallback. This does not enable arbitrary TeX packages, HTML commands or network includes."}]},{"type":"paragraph","children":[{"type":"text","value":"Inline Markdown: "},{"type":"component","name":"Math","version":1,"properties":{"display":false,"expression":"a^2 + b^2 = c^2"}},{"type":"text","value":"."}]},{"type":"paragraph","children":[{"type":"component","name":"Math","version":1,"properties":{"display":true,"expression":"\n\\bar{x} = \\frac{1}{n}\\sum_{i=1}^{n} x_i\n"}}]},{"type":"component","name":"Math","version":1,"properties":{"display":false,"expression":"115 - 72 = 43"}},{"type":"component","name":"Math","version":1,"properties":{"display":true,"expression":"\\int_0^1 x^2\\,dx = \\frac{1}{3}"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare inline baseline, display spacing, symbols and source fallback. The formula examples are not real research results."}]},{"type":"heading","level":1,"anchor":"feature-17-line-chart","children":[{"type":"text","value":"Feature 17: Line Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Line charts compare ordered observations with connected values. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"line","dataMediaId":"55117cf9-231f-4d59-bbf0-cdff5e42a659","dataVersion":1,"description":"Synthetic line chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-18-area-chart","children":[{"type":"text","value":"Feature 18: Area Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Area charts add filled regions to connected observations. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"area","dataMediaId":"55117cf9-231f-4d59-bbf0-cdff5e42a659","dataVersion":1,"description":"Synthetic area chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-19-bar-chart","children":[{"type":"text","value":"Feature 19: Bar Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Bar charts compare values using horizontal bars. The source is a pinned CSV dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"bar","dataMediaId":"baac8f3d-96dc-4cd6-b7f2-4c7083ce0d00","dataVersion":1,"description":"Synthetic bar chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-20-column-chart","children":[{"type":"text","value":"Feature 20: Column Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Column charts compare values using vertical columns. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"column","dataMediaId":"55117cf9-231f-4d59-bbf0-cdff5e42a659","dataVersion":1,"description":"Synthetic column chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-21-scatter-chart","children":[{"type":"text","value":"Feature 21: Scatter Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Scatter plots use a numeric x column and numeric selected y series. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"scatter","dataMediaId":"a98a1a3b-86d5-482f-948f-bcfc7e6864e3","dataVersion":1,"description":"Synthetic scatter chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"x"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-22-histogram-chart","children":[{"type":"text","value":"Feature 22: Histogram Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Histograms group numeric observations into distribution bins; the selected series can be changed. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"histogram","dataMediaId":"d78592d4-2ed8-496f-ba6d-68143b8b15d4","dataVersion":1,"description":"Synthetic histogram chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"sample"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-23-pie-chart","children":[{"type":"text","value":"Feature 23: Pie Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Pie charts show nonnegative values as portions of a total; select one numeric series. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"pie","dataMediaId":"55117cf9-231f-4d59-bbf0-cdff5e42a659","dataVersion":1,"description":"Synthetic pie chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-24-donut-chart","children":[{"type":"text","value":"Feature 24: Donut Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Donut charts show the same whole/part relationship with a hollow center. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"donut","dataMediaId":"55117cf9-231f-4d59-bbf0-cdff5e42a659","dataVersion":1,"description":"Synthetic donut chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-25-heatmap-chart","children":[{"type":"text","value":"Feature 25: Heatmap Chart"}]},{"type":"paragraph","children":[{"type":"text","value":"Heatmaps map selected numeric columns and observations to relative color intensity. The source is a pinned JSON dataset. Series names and axis selectors refer to actual dataset columns. The implementation retains a complete data table and source download; this small example is not a capacity test."}]},{"type":"component","name":"Chart","version":1,"properties":{"chartType":"heatmap","dataMediaId":"55117cf9-231f-4d59-bbf0-cdff5e42a659","dataVersion":1,"description":"Synthetic heatmap chart: alpha and beta series with explicit source data.","series":["alpha","beta"],"unit":"synthetic units","xAxis":"period"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and close this chart independently. Inspect plotted values, selected-series controls where present, complete data, units and download. Do not infer a universal performance claim from a small fixture."}]},{"type":"heading","level":1,"anchor":"feature-26-csv-and-json-dataset-downloads","children":[{"type":"text","value":"Feature 26: CSV and JSON Dataset Downloads"}]},{"type":"paragraph","children":[{"type":"text","value":"Charts accept structured CSV with headers or JSON with columns and same-order rows. Downloads are exact public media versions, not a query against external analytics. Numeric columns must contain usable finite numeric values."}]},{"type":"paragraph","children":[{"type":"link","href":"/api/v1/media/baac8f3d-96dc-4cd6-b7f2-4c7083ce0d00/versions/1","children":[{"type":"text","value":"Download CSV"}]},{"type":"text","value":" · "},{"type":"link","href":"/api/v1/media/55117cf9-231f-4d59-bbf0-cdff5e42a659/versions/1","children":[{"type":"text","value":"Download JSON"}]}]},{"type":"table","alignment":["none","none","none","none"],"header":[{"type":"table_cell","children":[{"type":"text","value":"period"}]},{"type":"table_cell","children":[{"type":"text","value":"alpha"}]},{"type":"table_cell","children":[{"type":"text","value":"beta"}]},{"type":"table_cell","children":[{"type":"text","value":"gamma"}]}],"rows":[[{"type":"table_cell","children":[{"type":"text","value":"A"}]},{"type":"table_cell","children":[{"type":"text","value":"12"}]},{"type":"table_cell","children":[{"type":"text","value":"8"}]},{"type":"table_cell","children":[{"type":"text","value":"4"}]}],[{"type":"table_cell","children":[{"type":"text","value":"B"}]},{"type":"table_cell","children":[{"type":"text","value":"18"}]},{"type":"table_cell","children":[{"type":"text","value":"11"}]},{"type":"table_cell","children":[{"type":"text","value":"6"}]}],[{"type":"table_cell","children":[{"type":"text","value":"C"}]},{"type":"table_cell","children":[{"type":"text","value":"15"}]},{"type":"table_cell","children":[{"type":"text","value":"10"}]},{"type":"table_cell","children":[{"type":"text","value":"7"}]}]]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare the raw formats with the chart tables. A data download is usable without activating a chart."}]},{"type":"heading","level":1,"anchor":"feature-27-notebook-source-and-saved-outputs","children":[{"type":"text","value":"Feature 27: Notebook Source and Saved Outputs"}]},{"type":"paragraph","children":[{"type":"text","value":"Notebook supports a pinned Jupyter v4 document with Markdown, raw and code cells, saved text output and safe precomputed PNG output. It does not execute cells, connect to a kernel or activate notebook widgets."}]},{"type":"component","name":"Notebook","version":1,"properties":{"mediaId":"e8987328-5d99-4a1e-bc3d-6bb2f54ee14e","title":"Synthetic notebook: Markdown, source, text output, PNG output, and raw note","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load the notebook, inspect every cell and saved output, then compare the source download. The saved PNG is not generated by executing its cell in this page."}]},{"type":"heading","level":1,"anchor":"feature-28-pinned-code-diff","children":[{"type":"text","value":"Feature 28: Pinned Code Diff"}]},{"type":"paragraph","children":[{"type":"text","value":"CodeDiff compares two pinned UTF-8 text files with independent before/after labels and source downloads. It does not fetch a live repository or apply a patch."}]},{"type":"component","name":"CodeDiff","version":1,"properties":{"afterLabel":"Default and positive-value validation","afterMediaId":"cc8f5e8a-458a-4c0f-a902-6fd06a5d8849","afterVersion":1,"beforeLabel":"Direct dictionary lookup","beforeMediaId":"305db961-d7b2-4553-99ce-b15908b986c4","beforeVersion":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare the source columns, changed lines, labels and both downloads."}]},{"type":"heading","level":1,"anchor":"feature-29-python-standard-library-playground","children":[{"type":"text","value":"Feature 29: Python Standard-Library Playground"}]},{"type":"paragraph","children":[{"type":"text","value":"Python executes only after Run in an isolated surface with output bounds, Stop and the existing ten-second total runtime guard. Standard-library examples can print small results; an inert code fence is not execution."}]},{"type":"component","name":"CodePlayground","version":1,"properties":{"language":"python","source":"from statistics import mean\nvalues = [2, 4, 6, 8]\nprint('sum:', sum(values))\nprint('mean:', mean(values))\nprint('squares:', [value * value for value in values])"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Run, compare output and Stop. Start again to inspect reset behavior. Do not run every playground simultaneously; the existing shared execution admission remains."}]},{"type":"heading","level":1,"anchor":"feature-30-numpy-pandas-and-matplotlib-playground","children":[{"type":"text","value":"Feature 30: NumPy, pandas, and Matplotlib Playground"}]},{"type":"paragraph","children":[{"type":"text","value":"The approved pinned Python package closure includes NumPy, pandas and Matplotlib. Matplotlib uses Agg; the playground exposes text output, not a dedicated inline plotting output channel. The separate charts above are independent components."}]},{"type":"component","name":"CodePlayground","version":1,"properties":{"language":"python","source":"import numpy as np\nimport pandas as pd\nimport matplotlib\nmatplotlib.use('Agg')\nfrom matplotlib import pyplot as plt\nvalues = np.array([2, 4, 6, 8])\nframe = pd.DataFrame({'value': values})\nprint('NumPy sum:', int(values.sum()))\nprint('pandas mean:', float(frame['value'].mean()))\nfig, ax = plt.subplots()\nax.plot(values)\nfig.canvas.draw()\nprint('Matplotlib backend:', matplotlib.get_backend())\nprint('canvas size:', fig.canvas.get_width_height())\nplt.close(fig)"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Run and confirm the three named packages produce output. The ten-second guard is unchanged; startup success is not claimed for arbitrary code or every device."}]},{"type":"heading","level":1,"anchor":"feature-31-prepared-rust-wasm-playground","children":[{"type":"text","value":"Feature 31: Prepared Rust WASM Playground"}]},{"type":"paragraph","children":[{"type":"text","value":"Rust examples use a prepared pinned no-import WASM module. Displayed Rust is an explanatory equivalent of the prepared fixture; no browser-side Rust compiler is provided. The sample exported run function returns 42."}]},{"type":"component","name":"CodePlayground","version":1,"properties":{"displaySource":"pub fn run() -> i32 { 42 }","language":"rust","wasmMediaId":"eed52faa-0030-423b-a426-077a52f2b5dd","wasmVersion":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Run the prepared module, inspect output 42, Stop, and compare the displayed source."}]},{"type":"heading","level":1,"anchor":"feature-32-interactive-color-demo","children":[{"type":"text","value":"Feature 32: Interactive Color Demo"}]},{"type":"paragraph","children":[{"type":"text","value":"The owned HTML/CSS/JavaScript ZIP has a root demo.json and local entry file. Move the hue slider; no external resource is needed. Demo Stop removes the surface. The Python/WASM ten-second rule is not a hard post-start compute or memory quota for packaged demos."}]},{"type":"component","name":"InteractiveDemo","version":1,"properties":{"demoId":"091b1361-76dd-4eeb-9f49-4920b8d6c8c0","description":"Interactive Color Demo","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Run, interact, Stop, and reopen to inspect reset. Do not infer full network denial: owner-authored execution network access is an intentional existing permission, although these examples do not use it."}]},{"type":"heading","level":1,"anchor":"feature-33-interactive-sorting-demo","children":[{"type":"text","value":"Feature 33: Interactive Sorting Demo"}]},{"type":"paragraph","children":[{"type":"text","value":"The owned sorting package supports bounded step and reset controls. Its code executes only in the activated isolated demo surface. Demo Stop removes the surface. The Python/WASM ten-second rule is not a hard post-start compute or memory quota for packaged demos."}]},{"type":"component","name":"InteractiveDemo","version":1,"properties":{"demoId":"ad2d441b-5ebd-46d3-9a46-0ad3b296cd0a","description":"Interactive Sorting Demo","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Run, interact, Stop, and reopen to inspect reset. Do not infer full network denial: owner-authored execution network access is an intentional existing permission, although these examples do not use it."}]},{"type":"heading","level":1,"anchor":"feature-34-interactive-simulation-demo","children":[{"type":"text","value":"Feature 34: Interactive Simulation Demo"}]},{"type":"paragraph","children":[{"type":"text","value":"The owned deterministic sample package changes its sample count with a slider. It has no application credentials or persisted state. Demo Stop removes the surface. The Python/WASM ten-second rule is not a hard post-start compute or memory quota for packaged demos."}]},{"type":"component","name":"InteractiveDemo","version":1,"properties":{"demoId":"8e10b4d7-71e7-4806-8b13-6cf2c7e6d56c","description":"Interactive Simulation Demo","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Run, interact, Stop, and reopen to inspect reset. Do not infer full network denial: owner-authored execution network access is an intentional existing permission, although these examples do not use it."}]},{"type":"heading","level":1,"anchor":"feature-35-static-multipage-pdf","children":[{"type":"text","value":"Feature 35: Static Multipage PDF"}]},{"type":"paragraph","children":[{"type":"text","value":"PDFViewer uses the isolated locally pinned PDF.js profile. The three-page document is static: no scripts, forms, top navigation or attachment launch behavior. Page controls and the public download are separate from the article."}]},{"type":"component","name":"PDFViewer","version":1,"properties":{"mediaId":"95fbefa8-842d-4ba6-8f73-32d09d754c1c","title":"Three-page synthetic field notes","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Open the viewer, load the PDF, visit all three pages, return to page one, close and reopen. A downloadable file is retained if viewing is unavailable."}]},{"type":"heading","level":1,"anchor":"feature-36-self-contained-glb-model","children":[{"type":"text","value":"Feature 36: Self-Contained GLB Model"}]},{"type":"paragraph","children":[{"type":"text","value":"Model3D uses the isolated Three.js GLB profile. The model contains a colored triangle and embedded position data; it does not select external buffers, textures or decoders. WebGL performance-caveat refusal retains a download fallback."}]},{"type":"component","name":"Model3D","version":1,"properties":{"altText":"One coral triangle in a neutral 3D scene.","description":"Self-contained coral triangle for 3D inspection","mediaId":"86e9abc3-e367-4e45-b843-6008011c2924","version":1}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Activate, inspect the model/camera controls, close and compare the download. Browser refusal is distinct from a missing file; no GPU or universal-device guarantee is made."}]},{"type":"heading","level":1,"anchor":"feature-37-youtube-embed","children":[{"type":"text","value":"Feature 37: YouTube Embed"}]},{"type":"paragraph","children":[{"type":"text","value":"YouTube uses a closed video identifier, explicit activation and unload controls. The known public reference is Me at the zoo. No copy of the third-party video is uploaded into our media library."}]},{"type":"component","name":"YouTubeEmbed","version":1,"properties":{"title":"Public provider reference: Me at the zoo","videoId":"jNQXAC9IVRw"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load and unload explicitly. Provider requests may disclose the visitor's network address and are subject to provider/browser restrictions."}]},{"type":"heading","level":1,"anchor":"feature-38-github-gist-embed","children":[{"type":"text","value":"Feature 38: GitHub Gist Embed"}]},{"type":"paragraph","children":[{"type":"text","value":"GitHubGistEmbed takes a path-safe gist identifier and optional file selection. The reference is the public bling.js gist. The provider script stays inside the opaque embed surface, not the trusted article origin."}]},{"type":"component","name":"GitHubGistEmbed","version":1,"properties":{"file":"bling.js","gistId":"12fb951a8b893a454b32"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load the selected file and unload. The public provider content is not copied into our source tree or granted application credentials."}]},{"type":"heading","level":1,"anchor":"feature-39-codepen-embed","children":[{"type":"text","value":"Feature 39: CodePen Embed"}]},{"type":"paragraph","children":[{"type":"text","value":"CodePenEmbed uses a closed username and pen identifier, with explicit load/unload. The existing public reference is retained for inspection. Preparation-time requests returned HTTP 403; a successful embed is not claimed and no isolation setting was relaxed."}]},{"type":"component","name":"CodePenEmbed","version":1,"properties":{"penId":"gfdDu","username":"chriscoyier"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Try activation, note the provider result, and unload. Distinguish provider refusal from a local article-rendering failure."}]},{"type":"heading","level":1,"anchor":"feature-40-stackblitz-embed","children":[{"type":"text","value":"Feature 40: StackBlitz Embed"}]},{"type":"paragraph","children":[{"type":"text","value":"StackBlitzEmbed uses a closed public project identifier. The existing vitejs-vite reference is optional and subject to provider/browser behavior in the isolated frame. No external project or account was created."}]},{"type":"component","name":"StackBlitzEmbed","version":1,"properties":{"projectId":"vitejs-vite"}},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Load/unload independently of other providers. A fetched provider page is not proof that its full IDE works in every sandbox."}]},{"type":"heading","level":1,"anchor":"feature-41-publication-snapshots-and-revision-history","children":[{"type":"text","value":"Feature 41: Publication Snapshots and Revision History"}]},{"type":"paragraph","children":[{"type":"text","value":"Each guide has an immutable named publication snapshot called complete-edition-v2. Ordinary persisted revision history is owner-only and is not embedded into public detail. Snapshot access is through the existing public API, not an invented HTML version route."}]},{"type":"paragraph","children":[{"type":"link","href":"/api/v1/posts/m7-after-complete-technical-feature-guide/versions/complete-edition-v2","children":[{"type":"text","value":"Technical snapshot JSON"}]}]},{"type":"paragraph","children":[{"type":"link","href":"/api/v1/posts/m7-after-complete-academic-feature-guide/versions/complete-edition-v2","children":[{"type":"text","value":"Academic snapshot JSON"}]}]},{"type":"table","alignment":["none","none"],"header":[{"type":"table_cell","children":[{"type":"text","value":"Surface"}]},{"type":"table_cell","children":[{"type":"text","value":"Available behavior"}]}],"rows":[[{"type":"table_cell","children":[{"type":"text","value":"Current public article"}]},{"type":"table_cell","children":[{"type":"text","value":"Read the currently published body"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Named public version"}]},{"type":"table_cell","children":[{"type":"text","value":"Read a retained immutable API snapshot"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Owner revisions"}]},{"type":"table_cell","children":[{"type":"text","value":"Authenticated paged history and restore operations"}]}]]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Open both JSON snapshots and compare their same body. Destructive lifecycle, revocation and owner-only restore are not performed merely to show a public specimen."}]},{"type":"heading","level":1,"anchor":"feature-42-academic-and-technical-classification","children":[{"type":"text","value":"Feature 42: Academic and Technical Classification"}]},{"type":"paragraph","children":[{"type":"text","value":"The two guides use identical body content. Technical posts cannot carry the academicPublication object; academic posts can supply an external HTTPS publication URL, title, authors, venue and ISO date. This is the only type-specific metadata difference, besides the unique titles/slugs required to identify two posts."}]},{"type":"table","alignment":["none","none"],"header":[{"type":"table_cell","children":[{"type":"text","value":"Classification"}]},{"type":"table_cell","children":[{"type":"text","value":"Metadata specimen"}]}],"rows":[[{"type":"table_cell","children":[{"type":"text","value":"Technical"}]},{"type":"table_cell","children":[{"type":"text","value":"No academicPublication object"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Academic"}]},{"type":"table_cell","children":[{"type":"text","value":"Fictional publication title, author label, venue, date and reserved example URL"}]}]]},{"type":"paragraph","children":[{"type":"text","value":"No DOI-specific field, citation import, BibTeX renderer or real research claim is implied."}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare the two article headers and public detail metadata. All fifteen content components and nine chart types appear in both editions."}]},{"type":"heading","level":1,"anchor":"feature-43-search-tags-and-listing-filters","children":[{"type":"text","value":"Feature 43: Search, Tags, and Listing Filters"}]},{"type":"paragraph","children":[{"type":"text","value":"The two guides share three tags rather than dozens of feature labels. Existing discovery supports type selection, text/phrase search, repeated tags with any/all semantics, ordering and cursor pagination. This article is a specimen to find, not a search UI embedded into its body."}]},{"type":"paragraph","children":[{"type":"link","href":"/blog?tag=complete-feature-guide","children":[{"type":"text","value":"Both complete guides"}]}]},{"type":"paragraph","children":[{"type":"link","href":"/blog?tag=complete-feature-guide&type=technical","children":[{"type":"text","value":"Technical guide filter"}]}]},{"type":"paragraph","children":[{"type":"link","href":"/blog?tag=complete-feature-guide&type=academic","children":[{"type":"text","value":"Academic guide filter"}]}]},{"type":"paragraph","children":[{"type":"text","value":"Search samples: C, C++, C#, .NET, and the phrase \"complete feature inspection\"."}]},{"type":"paragraph","children":[{"type":"link","href":"/blog?q=C%2B%2B&tag=complete-feature-guide","children":[{"type":"text","value":"Search for C++"}]},{"type":"text","value":"."}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Compare list summaries, filters, empty results and sort order. Type, sort and pagination are site-level controls, not inline content components."}]},{"type":"heading","level":1,"anchor":"feature-44-site-level-delivery-and-appearance","children":[{"type":"text","value":"Feature 44: Site-Level Delivery and Appearance"}]},{"type":"paragraph","children":[{"type":"text","value":"SSR article delivery, canonical/social metadata, RSS/Atom, sitemap/robots, responsive layout and theme selection belong to the site rather than executable body components. A readable article cannot simultaneously demonstrate every contradictory state, such as both present and omitted cover metadata."}]},{"type":"paragraph","children":[{"type":"link","href":"/feed.xml","children":[{"type":"text","value":"RSS feed"}]},{"type":"text","value":" · "},{"type":"link","href":"/atom.xml","children":[{"type":"text","value":"Atom feed"}]},{"type":"text","value":" · "},{"type":"link","href":"/sitemap.xml","children":[{"type":"text","value":"Sitemap"}]},{"type":"text","value":" · "},{"type":"link","href":"/robots.txt","children":[{"type":"text","value":"Robots"}]}]},{"type":"paragraph","children":[{"type":"link","href":"/blog/m7-after-useful-defaults-without-a-cover","children":[{"type":"text","value":"Fallback-only article"}]}]},{"type":"list","ordered":false,"children":[{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Compare wide, medium and narrow layouts."}]},{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Inspect light and dark themes."}]},{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Navigate with the keyboard."}]},{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Reload the direct article URL."}]},{"type":"list_item","task_state":false,"children":[{"type":"text","value":"Inspect visible source/download alternatives."}]}]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" Use the site controls and browser tools. No failed/withdrawn/private state is manufactured on these guides; those mutually exclusive and owner-only cases need separate controlled checks."}]},{"type":"heading","level":1,"anchor":"feature-45-footnote-definitions-and-inspection-record","children":[{"type":"text","value":"Feature 45: Footnote Definitions and Inspection Record"}]},{"type":"paragraph","children":[{"type":"text","value":"Keep observations grouped by the numbered feature heading. This article deliberately exposes capabilities without treating their presence as a defect-free acceptance result."}]},{"type":"footnote_definition","id":"synthetic","children":[{"type":"paragraph","children":[{"type":"text","value":"All local numbers, files, notebooks, models and diagrams are synthetic showcase materials. External embeds are existing public references, not owned uploads."}]}]},{"type":"footnote_definition","id":"saved","children":[{"type":"paragraph","children":[{"type":"text","value":"Saved notebook output, inert source code, activated Python/WASM and packaged demos are distinct capabilities with distinct execution behavior."}]}]},{"type":"table","alignment":["none","none","none"],"header":[{"type":"table_cell","children":[{"type":"text","value":"Feature number"}]},{"type":"table_cell","children":[{"type":"text","value":"Observed behavior"}]},{"type":"table_cell","children":[{"type":"text","value":"Requested behavior"}]}],"rows":[[{"type":"table_cell","children":[{"type":"text","value":"Example: 13"}]},{"type":"table_cell","children":[{"type":"text","value":"Record what the video/captions actually do"}]},{"type":"table_cell","children":[{"type":"text","value":"Describe the expected result"}]}],[{"type":"table_cell","children":[{"type":"text","value":"Example: 39"}]},{"type":"table_cell","children":[{"type":"text","value":"Record the provider response"}]},{"type":"table_cell","children":[{"type":"text","value":"Distinguish local UI from provider policy"}]}]]},{"type":"paragraph","children":[{"type":"strong","children":[{"type":"text","value":"Inspect:"}]},{"type":"text","value":" The owner will provide a consolidated issue list later. No application patch, commit or release is part of creating these two data specimens."}]}]}}