1     Definition 2     Functional Requirements 3     Syntax
4     Semantics 5    Conformance Testing 6     Performance Assessment

1      Definition

The Object Affordance Data Type declares what interactions are feasible for objects in a scene, under stated roles, policies, constraints, and contexts. It references baseline scene descriptors (visual and/or audio), specifies the scope (global / object / zone), and annotates objects with Visual, Audio, and Haptic Affordances, accompanied by confidence, compliance, and optional fallback strategies.

2      Functional Requirements

  • Base Descriptor Binding – The Data Type shall reference Visual and/or Audio scene descriptors
    (by ID or by embedded descriptor) and the time expression to which the enhancers apply.
  • Scoped Enhancement – Affordances shall be applicable at global, object, or zone scope. If object, an ObjectID is required; if zone, a ZoneID inside DomainContext is required.
  • Roles & Policies – The Data Type shall encode roles (Visual/Audio), Rights and Rules (MMM4), and compliance status, enabling policy‑constrained interaction.
  • Affordance Families – The Data Type shall support VisualAffordances, AudioAffordances, and HapticAffordances, each with tag, feasibility, confidence, constraints (with reason & severity), optional referent(s), and fallback.
  • Constraints & Context – The Data Type shall provide geometric and semantic constraints (e.g., ReachableFrom, VisibleFrom, AudibleFrom, exclude occlusion, distance/sound limits) and domain context (location semantic, activity phase, zone).
  • Events & Resolution Hints – The Data Type shall encode event types (gesture, alarm, etc.) and optional hints to guide system resolution (prioritise gaze, proximity, etc.).
  • Confidence & Traceability – Affordances shall carry confidence values. The Data Type shall include DataExchangeMetadata, Trace (AIF V3.0), and DescrMetadata.
  • Extensibility – The representation shall allow future addition of affordance tags, roles, domains, and constraints without breaking compatibility.

3      Syntax

https://schemas.mpai.community/OSD/V1.5/data/ObjectAffordance.json

4      Semantics

Table 1 provides the semantics of the components of Object Affordance.

Table 1 – Semantics of the Object Affordance

Label Description
Header Object Affordance Header – Standard “OSD-OAF-Vx,y”.
MInstanceID ID of Virtual Space the Object Affordance refers to.
ObjectAffordanceID Identifier of Object Affordance entry.
BasicDescriptors References to basic scene descriptors and the time interval of enhancer validity.
– BVSIDOrBVS Either an ID (string) or an embedded BasicVisualSceneDescriptors object.
– BASDIDOrBAS Either an ID (string) or an embedded BasicAudioSceneDescriptors object.
– EnhancersTime Time Expression specifying the interval when the Scene Enhancer is applicable.
SceneEnhancerData Affordance enhancer data applied to the scene at a declared scope and context.
– Scope Enhancer scope: one of global, object, zone.
– ObjectID Identifier of the target object (required when Scope = object).
– LocIDOrLoc Array of ID (string) or embedded LocationObject entries for object referencing.
– Roles List of role entries defining actor/viewpoint and authority context for the enhancer.
  – VisualRole Primary visual role (e.g., system, service, narrator, player, etc.).
  – AudioRole Primary audio role (e.g., voice, narration, music, effects, ambient, etc.).
  – AuthorityLevel Role authority tier/level (string, free text or controlled by policy).
  – Affiliation Role affiliation (e.g., team, organisation, group, or platform).
  – RoleConfidence Confidence (0..1) associated with the role attribution.
– Rights Rights relevant to the enhancer context.
– Rule Reference to MMM4 Rule specifying behaviour/policy constraints.
– ComplianceStatus Compliance evaluation result: one of compliant, violating, unknown.
– RequiredDelegation Boolean indicating if delegation is required for the enhancer to be effective.
– Events List of event descriptors that may trigger or qualify the enhancer.
  – EventType Event category (e.g., gesture, display_change, notification, alarm, animation, object_motion, occlusion_change, lighting_change, countdown).
  – EventSubType Event subtype/refinement (string).
  – Urgency Severity hint for event handling: low, medium, or high.
  – Channel Named channel/stream/context to which the event relates (string).
  – Intensity Normalised intensity (0..1) for event significance.
– DomainContext Scene/domain settings constraining applicability.
  – LocationSemantic Semantic label for the location (free text or controlled vocabulary).
  – ActivityPhase Lifecycle phase (e.g., lobby, warm-up, match, quest, intermission, ceremony, marketplace, maintenance).
  – ZoneID Zone identifier (required when Scope = zone).
– Constraints Geometric/sensory constraints restricting enhancer applicability.
  – ReachableFrom Point of View from which the target must be reachable.
  – VisibleFrom Point of View from which the target must be visible.
  – AudibleFrom Point of View from which the target must be audible.
  – ExcludeOccluded If true, enhancer is inapplicable when the target is occluded.
  – DistanceLimitM Maximum allowed distance (metres) for enhancer validity.
  – SoundPressureLimitDB Maximum allowed sound pressure level (dB) for enhancer validity.
– ResolutionHints List of hints guiding system resolution/prioritisation.
  – HintType Hint category (e.g., prioritise_gaze, prioritise_proximity, prefer_affordance, exclude_background).
  – HintValue Hint parameter/value (string) associated with the HintType.
– VisualAffordances List of visual affordances applicable at the declared scope.
  – Tag Affordance tag (e.g., Graspable, Pushable, Openable, Rotatable, Liftable, Insertable, Selectable).
  – Feasible Boolean indicating whether the interaction is feasible.
  – Constraints (inner) Reasons and severities restricting this specific affordance.
    – Reason Specific cause limiting feasibility (e.g., locked, occluded, out_of_reach, safety_violation, domain_rule).
    – Severity Impact level of the reason: info, warning, or error.
  – Referent Optional identifier of an object or resource to which the affordance refers.
  – Confidence Confidence (0..1) that the interaction is feasible.
  – Compliance Affordance compliance result: compliant, violating, or unknown.
  – FallbackApplied True if a fallback strategy has been applied for this affordance.
  – FallbackTag Affordance tag to use when fallback is applied (e.g., Selectable).
– AudioAffordances List of audio affordances applicable at the declared scope.
  – Tag Audio affordance tag: AttentionCue, Notification, UrgencySignal, InteractionPrompt.
  – Feasible Whether the audio interaction can be performed under current conditions.
  – Constraints Reasons/severity entries limiting feasibility for this audio affordance instance.
    – Reasons Cause limiting feasibility: muted, out_of_range, domain_rule, safety_violation.
    – Severity Impact level of the reason: info, warning, error.
  – Referent Optional ID of an object/resource to which this audio affordance refers.
  – Audio Referent Object linking the affordance to a specific audio entity.
  – AudioReferent Identifier of the referenced audio object (inside AudioReferent).
    – AudioObjectID Identifier of the audio scene descriptor set (inside AudioReferent).
    – SceneDescriptorsID Identifier of the audio scene descriptor set used.
  – ChannelPolicy Channel selection policy: all, music_only, voice_only, effects_only, selected_channels.
    – Confidence Confidence (0..1) that the audio interaction is feasible.
    – Compliance Compliance evaluation for the audio affordance: compliant, violating, unknown.
    – FallbackApplied True if an audio fallback strategy was applied.
    – FallbackTag Audio affordance tag to use as fallback (e.g., Notification).
– HapticAffordances List of haptic interaction affordances applicable at the declared scope.
  – Tag Haptic affordance tag: Touchable, Tappable, Draggable, PressureSensitive, VibratoryCue.
  – Feasible Whether the haptic interaction can be performed under current conditions.
  – Constraints Reasons/severity entries limiting feasibility for this haptic affordance instance.
    – Reason Cause limiting feasibility: out_of_reach, disabled, domain_rule.
    – Severity Impact level of the reason: info, warning, error.
  – Reference Optional ID of an object/resource to which this haptic affordance refers.
  – Confidence Confidence (0..1) that the haptic interaction is feasible.
  – Compliance Compliance evaluation for the haptic affordance: compliant, violating, unknown.
  – FallbackApplied True if a haptic fallback strategy was applied.
  – FallbackTag Haptic affordance tag to use as fallback (e.g., Touchable).
– Confidence (global) Overall enhancer confidence (0..1) for the SceneEnhancerData block.
– Justifications Array of URIs pointing to evidence, rationales, or audit material that justify the enhancer settings.
DataExchangeMetadata Metadata optionally used for regulated exchange of Object Affordance information.
Trace Provenance trace including Source and Time per AIF V3.0 rules.
DescrMetadata Descriptive Metadata (max 2048 characters).

5     Conformance Testing

A Data instance Conforms with V1.5 Spatial Cue (OSD-OAF) if:

  1. Its JSON Object validates against its JSON Schema.
  2. Any included  JSON Object validates against its JSON Schema.
  3. All Data in the JSON Object:
    1. Have the specified Data Types.
    2. Conform with the Qualifiers signaled in their JSON Schemas.

6     Performance Assessment