Skip to content

Publish replacement-ready compiled content and resource release manifests #44

Description

@zoeyrose

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.

Outcome

Define how mixed-license authored content is validated, compiled, packaged, attributed, and pinned for the Go server, Rust client/editor, renderer, and wrapper.

Scope

  • Use released content-toolkit to validate/compile ABIN/AMAP and action/CEL definitions; source remains canonical and separately licensed.
  • Produce deterministic package manifests with content/toolkit/schema versions, source revision, digests, bounds, required protocol/server/renderer capabilities, resources/sound releases, and complete license/attribution references.
  • Separate server-authoritative compiled data, client-visible catalog/resource manifests, editor source/project metadata, and debug/source maps by disclosure and distribution need.
  • Publish atomically with checksums/SBOM-like content/license inventory and immutable GitHub release coordinates.
  • Support wrapper profile collection without submodules/source-tree runtime assumptions.

Acceptance criteria

  • Repeated clean builds produce byte-identical artifacts/manifests on supported environments or documented allowed variance.
  • Go server and Rust consumers pass released conformance fixtures and reject incompatible/corrupt/oversized packages atomically.
  • Every distributed authored file/asset resolves to actual license/attribution; MIT tooling does not change it.
  • One M3 content slice installs/runs/edits from pinned releases; whole corpus follows M5.
  • Missing license, reference, capability, or digest blocks publication with actionable diagnostics.

Dual release-line discrimination

  • main replacement releases contain the approved replacement source plus ABIN/AMAP/action artifacts and a replacement manifest.
  • 1.x maintenance releases contain classic source/collected inputs plus a classic manifest owned with Establish replacement main and maintained content 1.x release lines #45.
  • Workflows, concurrency groups, tags/channels, and artifacts are branch-qualified. A v1.x maintenance tag targets 1.x; the replacement major line targets main.
  • Every manifest declares protocol family, server compatibility, source/artifact format, toolkit/compiler version, branch, commit, resources/sound coordinates, licenses, and digests.
  • Wrapper resolution rejects the wrong line before build/launch. Publishing one line cannot move or update the other line’s release pointer.
  • The M3 slice consumes a pinned main replacement release; coexistence #278 consumes a compatible pinned 1.x release.

Dependencies and parallelization

Depends on toolkit#6/#7, content#11, resource/sound provenance, and wrapper composition. Packaging can start with a small licensed slice.

Content remains separately and often mixed licensed. Replacement code/tooling may be MIT while preserving every source/asset term and gameplay design choice.

Equivalence coordinates

Publish the immutable baseline identity/transformation ledger and all protocol/server/toolkit/resource compatibility coordinates required by atrinik#279. The M2 harness uses a bounded comparable sample; the M5 atrinik#280 run pins the whole replacement baseline. A manifest that cannot identify its corresponding classic baseline, branch, source revision, transformations, and exact license set is not eligible for an equivalence or cutover run.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions