| 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
ObjectIDis required; if zone, aZoneIDinsideDomainContextis 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:
- Its JSON Object validates against its JSON Schema.
- Any included JSON Object validates against its JSON Schema.
- All Data in the JSON Object:
- Have the specified Data Types.
- Conform with the Qualifiers signaled in their JSON Schemas.