Table of Contents

Implementation Status

Concord isn't a stable end-user package yet. The docs are written toward the intended user experience, while this page tracks what's actually in the repo today.

If you're a mod author

The easy Patcher API is still on the way. You can read the examples to understand the shape of the API, but don't expect the public mod-author workflow to be complete yet.

If you're a contributor

The low-level emit and detour pieces are built and tested.

What works today:

  • MonoMod.Core-backed detour backend abstraction
  • Pristine dynamic-method cloning
  • Wrapper composition for head and return injections
  • Callback marker lowering for Cancel() and ReturnValue
  • Non-void cancel guard with CONC012
  • Call-site wrapping through At.Invoke and Operation<T>
  • Around injection splicing for one around body
  • Async and iterator entry resolution to generated MoveNext
  • Struct receiver handling through by-ref this wrapper signatures
  • Shadow field remapping with CONC001 and CONC002
  • Reverse patch delegate binding
  • Zero-allocation warm-call tests for several emitted wrapper paths

What's still ahead:

  • Public Patcher facade
  • Patch registry and owner-keyed unpatch lifecycle
  • Source generator and analyzer
  • Final public attribute syntax for At.Head, At.Return, At.Around, and At.Invoke
  • Non-extendable target fallback surface
  • Harmony compatibility shim
  • The Phase 2 AddProperty feature
  • Phase 2 advanced IL targeting for return instructions, local variables, branches, and constants

Why the docs show future API

Concord's value is the easy authoring model. It's worth designing and documenting that model early, even while the low-level runtime is still being built. When implementation catches up, these pages become direct user docs instead of design-target docs.