interface, nel/gui: trim overused em-dashes to natural punctuation
Down from 267 em-dashes across 16 files to 16, all of which are
legitimate structural uses (table n/a markers in the "default" column
of attribute tables). Non-structural em-dashes were converted to:
- colons for term-then-definition patterns and appositives introducing
a list;
- periods for what read as full sentence breaks (a "but" clause, an
amplification, a punchy conclusion);
- semicolons where a run-on tail was really a second independent
clause;
- parentheses where a matched pair of em-dashes wrapped a parenthetical
aside;
- reworded prose where the em-dash was pinning together two ideas that
needed a proper conjunction.
Kept em-dashes where structural: table cells showing "no default"
(| — |). Section headers of the form "# widget — CClass" were rewritten
as "# widget (CClass)" or "# widget: description"; the anchor cross-refs
that pointed at those headings (embedding.md → views#text-cviewtext,
database#link-reactive-rules; embedding.md → widget_sample#emscripten-
webgl-build carried over from the earlier milestone-tag cleanup) were
updated to the new slugs.
Content unchanged — same claims, same code snippets, same warnings; only
the punctuation between them.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
interface, nel/gui: reframe more apologetic wording
More cases of the same pattern: the docs qualify a widget or attribute
by contrasting it with a "production" or "typical" use rather than
saying what it actually does.
- skinning.md + widget_sample.md: "only layer0 renders a visible title
band in production use ... deeper layers' header_h/title_font_size
params are mostly latent" — deeper-layer header_h is not latent; it
sets the collapsed-row height of rollout children (which serve as
those layers' "titlebar"). Reworded to say directly what the params
do at each layer.
- views.md: "these need the application to install a text provider
(client-only in practice)" on text_id/text_id_formated — restated as
a plain contract (server-string id needs an app-installed text
provider; the client wires the network string cache, a standalone
app supplies its own backing).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
interface: don't frame library widgets as "only used by the client"
The client is the sole real consumer of NLGUI right now; "essentially
exercised only by the client's list windows" (on header/header_entry)
and "rarely authored outside the client" (on bitmap_combo) are empty
qualifications that read as apologies for the widget. Restated both as
what the widget is for: header/header_entry are the spreadsheet-style
resizable-column primitive, bitmap_combo is for game-state icon strips
picked from a database leaf. Also softened "rarely needed once
containers exist" on frame to say what frame is actually for (border
art without container decoration).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comprehensive NeL GUI documentation: /interface authoring tree + library pages
/interface rebuilt from stub into the UI-creation root with ten subpages:
first window tutorial, layout (hotspots/posref/sizeref/vector), XML
structure (parse pipeline, defines, templates, styles, options), views,
controls, windows and containers, database/links/expressions, action
handlers and procedures, Lua scripting, HTML groups, and skinning.
Attribute tables and behaviors verified against nel/src/gui source;
31 screenshots captured from the live nl_sample_gui showcase.
/nel/gui rewritten as the library overview (architecture, element
hierarchy, frame flow, widget registry) with a new embedding guide
covering the full host-application contract and pitfalls learned
building the sample. Cross-links and context index updated.