namespace Age.Engine.Model; public sealed class Script { public string Name { get; init; } = ""; public required ScriptHeader Header { get; init; } public required IReadOnlyList Instructions { get; init; } public required IReadOnlyDictionary IndexByOffset { get; init; } public required IReadOnlyDictionary Strings { get; init; } /// Unmodified SYS4 body dwords, retained for inline data operands such as opcode 0x64. public IReadOnlyList BodyDwords { get; init; } = Array.Empty(); public string GetString(int offset) => Strings.TryGetValue(offset, out var s) ? s : ""; }