Goal
Resolve these 53 values the pinned OverPy 9.7.10 accepts: raycastHitNormal, raycastHitPlayer, raycastHitPosition, createWorkshopSettingHero, acos, acosDeg, angleDifference, asin, asinDeg, atan2, atan2Deg, crossProduct, eventDirection, eventWasEnvironment, eventWasHealthPack, getCapturePercentage, getClosestPlayer, getControlScorePercentage, getControlScoringTeam, getCurrentObjective, getDeadPlayers, getFarthestPlayer, getFlagCarrier, getFlagPosition, getLastAssistId, getMatchRound, getNumberOfAssistIds, getNumberOfDamageModificationIds, getNumberOfDeadPlayers, getNumberOfDamageOverTimeIds, getNumberOfEntityIds, getNumberOfHealingModificationIds, getNumberOfHeroes, getNumberOfHealingOverTimeIds, getNumberOfLivingPlayers, getNumberOfPlayersOnObjective, getNumberOfTextIds, getPlayersNotOnObjective, horizontalAngleTowards, isControlPointLocked, isFlagAtBase, isFlagBeingCarried, isInSuddenDeath, isMatchComplete, isObjectiveComplete, isTeamOnDefense, isTeamOnOffense, normalize, strLen, tan, tanDeg, teamScore, verticalAngleTowards.
Context
A probe of every non-operator function in the pinned OverPy 9.7.10 against opy-rs 0.1.58 found calls the reference accepts that opy-rs rejects because the name does not resolve (unknown-action, unknown-value, unknown-member). A project that uses one of them fails to compile or loses the call. Names are checked against the manifest; all 117 already exist in the workshop-rs catalog as native Workshop entries (112 under the same id, 5 under a differently spelled id), so the gap is in the opy-rs source-language surface (manifest entries, aliases and lowering), not in Workshop data.
Special forms to check: eventDirection, eventWasEnvironment and eventWasHealthPack are bare event values (no call parentheses) and currently fail as unknown-identifier; getDeadPlayers and getPlayersNotOnObjective return arrays; createWorkshopSettingHero belongs with the other createWorkshopSetting* declarations.
Scope
Add manifest entries (or aliases to the catalog id), receiver categories, signatures and defaults, and lowering to the canonical Workshop call for each name above. Validate each against the pinned oracle.
Non-goals
- Literal-spelling parity (
False/True/Null versus 0/1) and other default-mode coercions; Wright and workshop-rs canonicalize these and they are semantically equivalent.
- Adding or renaming workshop-rs catalog entries; if a name turns out to have no native catalog entry, route it to workshop-rs instead of adding Workshop data here.
Acceptance criteria
- Each listed name resolves through the manifest and lowers to the canonical Workshop call, with receiver, argument order, defaults and enum domains matching the pinned OverPy.
- Each entry carries a pinned-oracle probe (
manifest/probes), and tools/overpy/probe_builtins.py reports no unexplained difference for it; any remaining difference is recorded in probe-gaps.json with an owner and an approved decision.
docs/language-support/callables-and-domains.md lists the supported forms.
- Standard gates pass: fmt, clippy, workspace tests, the compiler compatibility gate.
Classification
Each name was checked against the pinned OverPy 9.7.10 metadata: it declares the native Workshop en-US name and a Workshop GUID, and that en-US name resolves to an entry in the workshop-rs catalog. None of the 117 is an OverPy-only wrapper, so no new Workshop data and no new workshop-rs entry is needed for this work.
All 53 match a catalog id exactly.
Rule for implementers: opy-rs owns only the OverPy spelling. Where the OverPy name differs from the catalog id, add a manifest alias to the catalog id; do not add or rename catalog entries here. An OverPy-only composite helper, if one turns up, is lowered in opy-rs and never added to the workshop-rs catalog, which holds native Workshop syntax only.
Goal
Resolve these 53 values the pinned OverPy 9.7.10 accepts:
raycastHitNormal,raycastHitPlayer,raycastHitPosition,createWorkshopSettingHero,acos,acosDeg,angleDifference,asin,asinDeg,atan2,atan2Deg,crossProduct,eventDirection,eventWasEnvironment,eventWasHealthPack,getCapturePercentage,getClosestPlayer,getControlScorePercentage,getControlScoringTeam,getCurrentObjective,getDeadPlayers,getFarthestPlayer,getFlagCarrier,getFlagPosition,getLastAssistId,getMatchRound,getNumberOfAssistIds,getNumberOfDamageModificationIds,getNumberOfDeadPlayers,getNumberOfDamageOverTimeIds,getNumberOfEntityIds,getNumberOfHealingModificationIds,getNumberOfHeroes,getNumberOfHealingOverTimeIds,getNumberOfLivingPlayers,getNumberOfPlayersOnObjective,getNumberOfTextIds,getPlayersNotOnObjective,horizontalAngleTowards,isControlPointLocked,isFlagAtBase,isFlagBeingCarried,isInSuddenDeath,isMatchComplete,isObjectiveComplete,isTeamOnDefense,isTeamOnOffense,normalize,strLen,tan,tanDeg,teamScore,verticalAngleTowards.Context
A probe of every non-operator function in the pinned OverPy 9.7.10 against opy-rs 0.1.58 found calls the reference accepts that opy-rs rejects because the name does not resolve (
unknown-action,unknown-value,unknown-member). A project that uses one of them fails to compile or loses the call. Names are checked against the manifest; all 117 already exist in the workshop-rs catalog as native Workshop entries (112 under the same id, 5 under a differently spelled id), so the gap is in the opy-rs source-language surface (manifest entries, aliases and lowering), not in Workshop data.Special forms to check:
eventDirection,eventWasEnvironmentandeventWasHealthPackare bare event values (no call parentheses) and currently fail asunknown-identifier;getDeadPlayersandgetPlayersNotOnObjectivereturn arrays;createWorkshopSettingHerobelongs with the othercreateWorkshopSetting*declarations.Scope
Add manifest entries (or aliases to the catalog id), receiver categories, signatures and defaults, and lowering to the canonical Workshop call for each name above. Validate each against the pinned oracle.
Non-goals
False/True/Nullversus0/1) and other default-mode coercions; Wright and workshop-rs canonicalize these and they are semantically equivalent.Acceptance criteria
manifest/probes), andtools/overpy/probe_builtins.pyreports no unexplained difference for it; any remaining difference is recorded inprobe-gaps.jsonwith an owner and an approved decision.docs/language-support/callables-and-domains.mdlists the supported forms.Classification
Each name was checked against the pinned OverPy 9.7.10 metadata: it declares the native Workshop en-US name and a Workshop GUID, and that en-US name resolves to an entry in the workshop-rs catalog. None of the 117 is an OverPy-only wrapper, so no new Workshop data and no new workshop-rs entry is needed for this work.
All 53 match a catalog id exactly.
Rule for implementers: opy-rs owns only the OverPy spelling. Where the OverPy name differs from the catalog id, add a manifest alias to the catalog id; do not add or rename catalog entries here. An OverPy-only composite helper, if one turns up, is lowered in opy-rs and never added to the workshop-rs catalog, which holds native Workshop syntax only.