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()andReturnValue - Non-void cancel guard with
CONC012 - Call-site wrapping through
At.InvokeandOperation<T> - Around injection splicing for one around body
- Async and iterator entry resolution to generated
MoveNext - Struct receiver handling through by-ref
thiswrapper signatures - Shadow field remapping with
CONC001andCONC002 - Reverse patch delegate binding
- Zero-allocation warm-call tests for several emitted wrapper paths
What's still ahead:
- Public
Patcherfacade - Patch registry and owner-keyed unpatch lifecycle
- Source generator and analyzer
- Final public attribute syntax for
At.Head,At.Return,At.Around, andAt.Invoke - Non-extendable target fallback surface
- Harmony compatibility shim
- The Phase 2
AddPropertyfeature - 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.