chore(Data model): #3585298 Add dataDependencies.entityFields to JavaScriptComponent
Add a new optional entityFields key to the dataDependencies mapping
on JavaScriptComponent config entities, enabling code components to
declare entity field data dependencies keyed by prop name. This is the
first foundational step toward #3573831 (entity reference prop type).
Schema: entityFields is a sequence keyed by prop name, where each
value is an array of field prop expressions (FieldPropExpression,
FieldObjectPropsExpression, ReferenceFieldPropExpression).
Validation:
SequenceKeysMustMatchis extended with amatchTypeoption (same-set— the existing default — orsubset) so thatentityFieldskeys can be validated as a subset of the component's props, reusing the existing constraint rather than adding a new one.EntityFieldExpressionsSameTarget(new): ensures all expressions within a single prop target the same entity type and bundle.ExpressionTargetEntityBundleExists(new): validates that each expression's target entity type and bundle actually exist.JsComponentHasValidAndSupportedSdcMetadatanow also enforces that a prop declared underentityFieldscannot be marked as required (referenced entities may disappear; the component must tolerate NULL).
Dependency tracking: JavaScriptComponent::calculateDependencies()
now walks every expression under dataDependencies.entityFields and
adds the resulting field/bundle/module config dependencies, so that
cascading deletes, config export/import order and cache invalidation
work correctly.
OpenAPI schema updated to document entityFields on CodeComponent.
@todo Allow filtering SequenceKeysMustMatch in subset mode to only
the subset of props that are actually entity reference props, once the
entity reference prop type exists (#3573831).
Closes #3585298