You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Adopt content-toolkit across the authored corpus and retire duplicate parsers #8
Architecture amendment — one authored content source (2026-08-13)
Initiative atrinik/atrinik#357 supersedes every future live-branch instruction below. atrinik/content@main is the sole mutable authored source for replacement and Classic targets. Future authored changes land only on main; supported Classic artifacts are deterministically derived from the same immutable main revision. Do not create, restore, author, backport, validate, or publish through a live 1.x branch.
Exact historical 1.x commits, tags, releases, assets, preserved local snapshots, provenance, parity records, and comparisons remain valid immutable evidence. This amendment changes no other feature, balance, lore, compatibility, licensing, validation, or ownership acceptance criterion.
Important
The gameplay/authored-content decisions in this issue are preserved. This revision changes only the technical implementation path for the fresh MIT Go/Rust replacement program. atrinik/content remains separately/mixed licensed data; MIT engine/tooling code does not relicense the corpus.
Replacement implementation contract
Migrate authored sources and supported workflows to released MIT content-toolkit schemas/model/transactions/compiler. Verified original tools by a listed approved MIT provenance grantor may be copied or translated only through the merged registry and complete-history evidence policy in atrinik/atrinik#275. Retire old Python parsers group-by-group after semantic/whole-corpus parity; Go and Rust production consumers read compiled artifacts.
Common migration gates
Stable authored identities and behavior remain the source of truth; localized/rendered text and filesystem order are never identity.
Content is parsed, validated, transacted, and compiled by released content-toolkit; production Go/Rust consumers do not add private source parsers.
Runtime authority belongs to native Go services and bounded compiled definitions/CEL; Starlark is considered only through the residual go/no-go issue.
Verification uses deterministic compiler/conformance fixtures and wrapper-managed Go-server/Rust-client scenarios.
Verified original past work by an approved MIT provenance grantor may be copied, migrated, translated, or relicensed under MIT only through the merged complete-history provenance directive; all asset/data notices remain exact.
Content release-line contract
This migration applies to content@main and the replacement stack. main may adopt JSONL or another separately approved replacement authoring format.
content@1.x retains classic map/archetype/interface formats and classic collection for its support lifetime.
“Remove legacy formats/parsers” means remove them from replacement main and replacement consumers, never erase them from the intentionally maintained 1.x line.
After formats diverge, never merge branches mechanically. A behavior/content fix required on both lines receives linked, independently validated pull requests preserving the same stable identity and attribution.
Convert the complete authored map/archetype corpus in reviewable groups and move every in-repository content consumer to the common schema/model.
Scope
Provide deterministic convert, format, validate, compile, inspect, semantic-diff, and cache verify/prune commands.
Convert .arc and map sources while preserving comments, attribution, IDs, references, nested inventory, multipart structure, coordinates, custom data, and authored order.
Migrate map checkers, audits, mapset, farming analyzer, bot/navigation tools, worldviewer, collection, and packaging to the common core or versioned JSON API.
Compile the whole world in CI/release packaging and support narrow editor/playtest compilation.
Superseded path / cleanup target
After every current consumer moves, remove the legacy authored-source format and independent partial parsers/writers. Retain only mutable persistence readers still owned by Phase 4.
Acceptance criteria
Every map/archetype converts with zero unexplained fields and semantic diffs are clean.
All current tools consume one model/API and generated artifacts have one authoritative input/check command.
Release packages contain validated compiled content and can omit authored source.
No permanent dual authoring path or duplicated parser remains.
Validation baseline
Before: several tools implement inconsistent grammar subsets and authored files use the legacy line format.
After: one schema-driven source format and content core own all authoring, checking, automation, and compilation.
Run whole-corpus conversion/semantic diff, all migrated tool tests, deterministic formatting/artifact checks, whole-world collection, server checks, and Linux/MinGW builds.
This issue is a bounded child of atrinik/atrinik#166. The parent remains open until every sibling child is complete.
Registered feature-field migrations
Migrate the authoritative metadata and authored inputs introduced by atrinik/server#34, atrinik/server#35, atrinik/server#10, atrinik/server#9, and atrinik/server#6 through #15's shared schema/field source. Remove their superseded Flex-loader, editor XML, documentation-table, and checker/parser duplicates only after the migrated consumers pass parity and reference validation.
Baseline identity and whole-pack gate
Maintain an immutable transformation/identity ledger between the shared classic baseline on content@1.x and its replacement representation on content@main. After formats diverge, equivalence is established by stable authored identity and semantic compiler/runtime evidence, never matching paths or bytes alone. Publish whole-corpus results through atrinik#279; this issue is a native blocker of atrinik#280. Content added only after the branch point remains tested replacement content but is not misreported as a classic parity row.
Architecture amendment — one authored content source (2026-08-13)
Initiative atrinik/atrinik#357 supersedes every future live-branch instruction below.
atrinik/content@mainis the sole mutable authored source for replacement and Classic targets. Future authored changes land only onmain; supported Classic artifacts are deterministically derived from the same immutablemainrevision. Do not create, restore, author, backport, validate, or publish through a live1.xbranch.Exact historical
1.xcommits, tags, releases, assets, preserved local snapshots, provenance, parity records, and comparisons remain valid immutable evidence. This amendment changes no other feature, balance, lore, compatibility, licensing, validation, or ownership acceptance criterion.Important
The gameplay/authored-content decisions in this issue are preserved. This revision changes only the technical implementation path for the fresh MIT Go/Rust replacement program.
atrinik/contentremains separately/mixed licensed data; MIT engine/tooling code does not relicense the corpus.Replacement implementation contract
Migrate authored sources and supported workflows to released MIT
content-toolkitschemas/model/transactions/compiler. Verified original tools by a listed approved MIT provenance grantor may be copied or translated only through the merged registry and complete-history evidence policy in atrinik/atrinik#275. Retire old Python parsers group-by-group after semantic/whole-corpus parity; Go and Rust production consumers read compiled artifacts.Common migration gates
content-toolkit; production Go/Rust consumers do not add private source parsers.Content release-line contract
content@mainand the replacement stack.mainmay adopt JSONL or another separately approved replacement authoring format.content@1.xretains classic map/archetype/interface formats and classic collection for its support lifetime.mainand replacement consumers, never erase them from the intentionally maintained1.xline.main;1.xaccepts only the approved classic maintenance classes in Establish replacement main and maintained content 1.x release lines #45.main, not deletion of the preserved maintenance branch.Preserved product/design specification and historical implementation notes
Parent and roadmap
Outcome
Convert the complete authored map/archetype corpus in reviewable groups and move every in-repository content consumer to the common schema/model.
Scope
.arcand map sources while preserving comments, attribution, IDs, references, nested inventory, multipart structure, coordinates, custom data, and authored order.Superseded path / cleanup target
After every current consumer moves, remove the legacy authored-source format and independent partial parsers/writers. Retain only mutable persistence readers still owned by Phase 4.
Acceptance criteria
Validation baseline
Before: several tools implement inconsistent grammar subsets and authored files use the legacy line format.
After: one schema-driven source format and content core own all authoring, checking, automation, and compilation.
Run whole-corpus conversion/semantic diff, all migrated tool tests, deterministic formatting/artifact checks, whole-world collection, server checks, and Linux/MinGW builds.
This issue is a bounded child of atrinik/atrinik#166. The parent remains open until every sibling child is complete.
Registered feature-field migrations
Migrate the authoritative metadata and authored inputs introduced by atrinik/server#34, atrinik/server#35, atrinik/server#10, atrinik/server#9, and atrinik/server#6 through #15's shared schema/field source. Remove their superseded Flex-loader, editor XML, documentation-table, and checker/parser duplicates only after the migrated consumers pass parity and reference validation.
Baseline identity and whole-pack gate
Maintain an immutable transformation/identity ledger between the shared classic baseline on
content@1.xand its replacement representation oncontent@main. After formats diverge, equivalence is established by stable authored identity and semantic compiler/runtime evidence, never matching paths or bytes alone. Publish whole-corpus results through atrinik#279; this issue is a native blocker of atrinik#280. Content added only after the branch point remains tested replacement content but is not misreported as a classic parity row.