//
// Regenerate with the 2026-07-29 enum verification campaign tooling; see
// docs/research/2026-07-29-enum-verification-campaign.md for the oracle set,
// the extraction method, and the open-question ledger.
// Hand edits are pinned by PropertyEnumConformanceTests — change the oracle,
// not the enum.
//
namespace AcDream.Core.Properties;
///
/// AC's PropertyInstanceId property table — the numeric keys the server sends in
/// PrivateUpdatePropertyInstanceId (0x02E5) / PublicUpdatePropertyInstanceId (0x02E6)
/// and in the property bundles carried by CreateObject / PlayerDescription /
/// IdentifyResponse. The CLR payload for this table is uint (object guid).
///
/// Verified 2026-07-29 against two independent oracles: the vendored
/// client-side enum catalog (references/acclientlib/UtilityBelt.Common/Enums/Enums.cs,
/// which names this table InstanceId) and the 38,985-file ACE weenie export corpus
/// (references/weenies/), whose per-stat _comment carries the enum member
/// name beside the numeric key. 2 of these 46 members are attested by BOTH
/// oracles with zero value conflicts; the remainder are single-sourced from the
/// catalog because no weenie in the corpus sets them.
///
/// This enum is a vocabulary, not a parser contract: the wire carries a raw
/// uint and unknown keys must still round-trip untouched, so never assume a
/// received key is a defined member.
///
public enum PropertyInstanceId : uint
{
Undef = 0,
Owner = 1,
Container = 2,
Wielder = 3,
Freezer = 4,
Viewer = 5,
Generator = 6,
Scribe = 7,
CurrentCombatTarget = 8,
CurrentEnemy = 9,
ProjectileLauncher = 10,
CurrentAttacker = 11,
CurrentDamager = 12,
CurrentFollowTarget = 13,
CurrentAppraisalTarget = 14,
CurrentFellowshipAppraisalTarget = 15,
/// 130 weenie attestations.
ActivationTarget = 16,
Creator = 17,
Victim = 18,
Killer = 19,
Vendor = 20,
Customer = 21,
Bonded = 22,
Wounder = 23,
Allegiance = 24,
Patron = 25,
Monarch = 26,
CombatTarget = 27,
HealthQueryTarget = 28,
LastUnlocker = 29,
CrashAndTurnTarget = 30,
AllowedActivator = 31,
HouseOwner = 32,
House = 33,
Slumlord = 34,
ManaQueryTarget = 35,
CurrentGame = 36,
RequestedAppraisalTarget = 37,
/// 2 weenie attestations.
AllowedWielder = 38,
AssignedTarget = 39,
LimboSource = 40,
Snooper = 41,
TeleportedCharacter = 42,
Pet = 43,
PetOwner = 44,
PetDevice = 45,
}