Documentation namespace cleanup (issue #38). Audit outcome: - `date` vs `datetime` are NOT duplicates — `Date` is calendar days since the epoch, `DateTime` is instants (seconds); distinct runtime namespaces. Kept both. - `network` vs `networking` WAS a real duplicate. Every other stdlib area documents only its namespace (`World.*`, `Screen.*`, …), never the bare builtins it lowers to. Networking alone also documented the low-level `net_*`/builtin forms under `networking/`, duplicating the `Network.*` pages under `network/`. Removed `networking/`; `network/` (the `Network` namespace, which the compiler and LSP both expose) is canonical. Folded the `@Sync`/`@Owned` framing into `network/_section.md` so no context is lost. - Dropped the `networking` key from docgen inventory.json. Guard (AC3): `tools/docgen/check.py` now fails if any `ns:` is documented from more than one directory, or if two sections share an id or (case-folded) title — so a duplicate-namespace split cannot silently reappear. `gen.py` + `check.py` pass (34 sections, 365 symbols). Closes #38 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
525 B
525 B
| id | title | order |
|---|---|---|
| network | Network | 6 |
The low-level networking seam — send and poll datagrams, serialize and apply entity state, and read ownership and role. Multiplayer is normally a compile-time property of the ECS, not glue you thread by hand: mark fields @Sync and models @Owned and the compiler generates the replication. These Network.* primitives are what that sugar lowers to, for when you drive the transport yourself. Offline they collapse to single-player defaults.