Status: Design notes; all format-specific behavior requires verification.
- Validate FunctionDescription.
- Resolve symbol identities and signatures.
- Validate variables and arguments.
- Build control-flow labels.
- Construct supported UAssetAPI expression objects.
- Calculate serialized layout where needed.
- Validate expression structure and references.
- Replace the target function in an isolated asset copy.
- Serialize to a new file.
- Re-read and validate the output.
A function reference should carry more than a short name. Prefer package/module path, owner class, function name, signature or signature fingerprint, and any required target-object context.
Ambiguous matches must produce diagnostics instead of silently choosing one.
- Search the current package's Exports and Imports first.
- Deduplicate by full object identity and Outer chain.
- Construct the necessary outer/package/class/function relationships according to the actual target version and fixture evidence.
- Never copy package-local FPackageIndex values from global metadata or another asset.
Jump offset representation and serialization rules are version-sensitive. Never assume an expression list index is a byte offset. Verify the behavior against the actual UAssetAPI implementation and a real serialized fixture. Disable unsupported control-flow generation until this is proven.
A successful serializer call is not sufficient. Re-read the output and check target function identity, supported expression structure, reference validity, and unexpected structural changes. Runtime correctness requires a separate target-engine or target-project validation step.